Example #1
0
        public ParseResult CreateObject(ILineAnalyzer la)
        {
            ParseResult result = new ParseResult();
            ICommand    cmd    = (ICommand)Activator.CreateInstance(mCommandType);

            result.Command = cmd;
            foreach (ArgumentBuilder ab in mArgumentBuilders)
            {
                string value = la[ab.Argument.Name];
                if (string.IsNullOrEmpty(value))
                {
                    value = ab.Argument.DefaultValue;
                }
                if (string.IsNullOrEmpty(value) && !ab.Argument.Required)
                {
                    continue;
                }
                if (string.IsNullOrEmpty(value) && ab.Argument.Required)
                {
                    result.Error  = CONST_MESSAGE.WRONG_ARGUMENTS;
                    result.Error += "\r\n " + GetCommand();
                    return(result);
                }
                object data = ab.GetValue(value);
                if (data == null)
                {
                    result.Error = string.Format(CONST_MESSAGE.ARGUMENT_VALUE_NOT_AVAILABLE, ab.Argument.Name, ab.Argument.Description);
                    return(result);
                }
                ab.SetValue(data, cmd);
            }
            try
            {
                result.Command = cmd.Execute();
                result.Error   = cmd.Error;
            }
            catch (Exception e_)
            {
                result.Error = e_.Message;
            }
            return(result);
        }
 void Start()
 {
     lineAnalyzer             = Core.Instance.LineAnalyzer;
     LineDrawer.NewLineEvent += onNewLine;
 }
Example #3
0
 private Core()
 {
     LineAnalyzer = new LineAnalyzerByAngle();
 }