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); }
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); }