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; }
private Core() { LineAnalyzer = new LineAnalyzerByAngle(); }