public ICanvas ExecuteCommand(string[] args)
        {
            if (args.Length < 3)
            {
                throw new ArgumentException($"{Constants.Command_Expect_Three_Arguments} {args.Length}");
            }

            if (!uint.TryParse(args[0], out uint x) ||
                !uint.TryParse(args[1], out uint y) ||
                !char.TryParse(args[2], out char colour))
            {
                throw new ArgumentException($"{Constants.Command_Expect_Two_Positive_One_Alphanumeric_Arguments}");
            }

            if (_canvas == null)
            {
                throw new ArgumentException($"{Constants.Command_Canvas_Not_Exists}");
            }

            var adjustedTarget = new Point(x, y);

            _canvas.BucketFill(adjustedTarget, colour);
            return(_canvas);
        }
Exemple #2
0
        public void Execute(ICanvas canvas)
        {
            var bucketFillParameters = new BucketFillParameterParser().Parse(Input);

            canvas.BucketFill(bucketFillParameters);
        }