Ejemplo n.º 1
0
        protected override Completion ExecuteImpl(ExecutionEnvironment enviroment)
        {
            if (Step == null || Angle == null || XRadius == null || YRadius == null)
            {
                return(Completion.Exception(Properties.Language.NullException, this));
            }

            var c = Step.Execute(enviroment);

            if (!c.IsValue)
            {
                return(c);
            }
            if (!TypeConverters.IsNumber(c.ReturnValue))
            {
                return(Completion.Exception(Properties.Language.ValueNotNumberException, Step));
            }
            double step = TypeConverters.GetValue <double>(c.ReturnValue);

            var d = Angle.Execute(enviroment);

            if (!d.IsValue)
            {
                return(d);
            }
            if (!TypeConverters.IsNumber(d.ReturnValue))
            {
                return(Completion.Exception(Properties.Language.ValueNotNumberException, Angle));
            }
            double angle = TypeConverters.GetValue <double>(d.ReturnValue);

            var e = XRadius.Execute(enviroment);

            if (!e.IsValue)
            {
                return(e);
            }
            if (!TypeConverters.IsNumber(e.ReturnValue))
            {
                return(Completion.Exception(Properties.Language.ValueNotNumberException, XRadius));
            }
            double x = TypeConverters.GetValue <double>(e.ReturnValue);

            var f = YRadius.Execute(enviroment);

            if (!f.IsValue)
            {
                return(f);
            }
            if (!TypeConverters.IsNumber(f.ReturnValue))
            {
                return(Completion.Exception(Properties.Language.ValueNotNumberException, YRadius));
            }
            double     y   = TypeConverters.GetValue <double>(f.ReturnValue);
            DrawWindow wnd = CanvasEnvironment.GetCanvas(enviroment);

            wnd.Arc(step, angle, x, y);
            return(Completion.Void);
        }