示例#1
0
        public static BucketFillModel GetBucketFillModel(string input)
        {
            BucketFillModel model = new BucketFillModel();

            string[] values = input.Split(' ');
            string   code = values[0].ToUpper();
            string   colour = string.Empty;
            uint     x, y;


            if (values.Length != 4 || code != "B")
            {
                throw new ArgumentOutOfRangeException("Fill dimensions are not valid!");
            }

            if (uint.TryParse(values[1], out x) && x > 0 && uint.TryParse(values[2], out y) && y > 0)
            {
                model.Code   = code;
                model.X      = x;
                model.Y      = y;
                model.Colour = !string.IsNullOrWhiteSpace(values[3]) ? values[3] : "c";
            }
            else
            {
                throw new ArgumentException("Fill dimensions must be positive integers!");
            }

            return(model);
        }
示例#2
0
        static void Main(string[] args)
        {
            CanvasAppCommands command     = CanvasAppCommands.OTHER;
            CanvasModel       canvasModel = null;
            BaseCanvas        baseCanvas  = null;
            string            input       = string.Empty;

            do
            {
                try
                {
                    Console.Write("Enter the command: ");
                    input = Console.ReadLine().Trim();
                    if (Helper.IsValidInput(input))
                    {
                        if (Helper.IsExitCommand(input))
                        {
                            break;
                        }

                        command = Helper.GetCommandName(input);
                        if (canvasModel == null)
                        {
                            canvasModel = ModelExtractor.GetCanvasModel(input);

                            baseCanvas = new BaseCanvas();
                            baseCanvas.crateCanvas(canvasModel.Width, canvasModel.Height);
                        }

                        if (canvasModel != null)
                        {
                            if (command == CanvasAppCommands.LINE)
                            {
                                LineModel lineModal = new LineModel();

                                lineModal = ModelExtractor.GetLineModal(input);
                                baseCanvas.addLine(lineModal.X1, lineModal.Y1, lineModal.X2, lineModal.Y2);
                            }

                            if (command == CanvasAppCommands.RECTANGLE)
                            {
                                RectangleModel rectangleModel = new RectangleModel();

                                rectangleModel = ModelExtractor.GetRectangleModel(input);
                                baseCanvas.addRectangle(rectangleModel.X1, rectangleModel.Y1, rectangleModel.X2, rectangleModel.Y2);
                            }

                            if (command == CanvasAppCommands.BUCKET_FILL)
                            {
                                BucketFillModel bucketFillModel = new BucketFillModel();

                                bucketFillModel = ModelExtractor.GetBucketFillModel(input);
                                baseCanvas.fill(bucketFillModel.X, bucketFillModel.Y, Convert.ToChar(bucketFillModel.Colour));
                            }


                            baseCanvas.draw();
                        }
                    }
                    else
                    {
                        Console.WriteLine("Invalid Command!!! Please try again...\n");
                    }
                }
                catch (InvalidCastException ex)
                {
                    Console.WriteLine("ERROR: " + ex.Message);
                }
                catch (ArgumentOutOfRangeException ex)
                {
                    Console.WriteLine("ERROR: " + ex.Message);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine("ERROR: " + ex.Message);
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine("ERROR: " + ex.Message);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Unable to create Canvas!!!");
                    Console.WriteLine("Please try again C 10 4 ==>  C widht height \n");
                }

                input = string.Empty;
            } while (command != CanvasAppCommands.QUIT);
        }