public BakerProfileViewModel( string bakerId, IScreen hostScreen = null, ICakeModelService cakeModelService = null, IAppUserModelService appUserModelService = null, IBakerModelService bakerModelService = null, IUserApiService userApiService = null, ILogger logger = null, IMapper mapper = null) : base(hostScreen) { _cakeModelService = cakeModelService; _appUserModelService = appUserModelService; _bakerModelService = bakerModelService; _userApiService = userApiService; _logger = logger; _mapper = mapper; _bakerIdSubject = new Subject <string>(); StartChatCommand = ReactiveCommand.CreateFromTask(GoToChat); PrepareCommand = ReactiveCommand.CreateFromTask(async b => await Prepare(bakerId)); Observable.Return(Unit.Default) .InvokeCommand(PrepareCommand); PrepareCommand.Subscribe(); }
private void WritePrepareCommand(PrepareCommand prepareCommand) { StringBuilder prepareCommandBuilder = new StringBuilder("PREPARE\n"); prepareCommandBuilder.AppendFormat("name:{0}\n", prepareCommand.Name); prepareCommandBuilder.Append("\n"); Write(prepareCommandBuilder.ToString()); }
private void Update(EvaluationContext context) { if (PrepareCommand.IsConnected) { PrepareCommand.GetValue(context); } var vertices = Vertices.GetValue(context); var indices = Indices.GetValue(context); if (vertices == null || indices == null) { MeshBuffers.Value = null; return; } _result.VertexBuffer = vertices; _result.IndicesBuffer = indices; MeshBuffers.Value = _result; }
public BakerChatViewModel(string bakerId, IAppUserModelService appUserModelService = null, IBakerModelService bakerModelService = null, IChatModelService chatModelService = null) { _appUserModelService = appUserModelService ?? Locator.Current.GetService <IAppUserModelService>(); _bakerModelService = bakerModelService; _chatModelService = chatModelService; var user = _appUserModelService.User; UserAvatarUrl = user.AvatarUrl; var dynamicFilter = this.WhenValueChanged(vm => vm.BakerId) .Select(CreatePredicate); var chatMessages = _chatModelService .ChatsForUser .Connect() .SubscribeOn(RxApp.TaskpoolScheduler) .Filter(dynamicFilter) .Transform(TransformToListItem) .Publish(); chatMessages .Bind(out _chatMessages) .ObserveOn(RxApp.MainThreadScheduler) .Subscribe() .DisposeWith(CompositeDisposable); chatMessages.Connect(); SendMessageCommand = ReactiveCommand.CreateFromTask(SendMessage); PrepareCommand = ReactiveCommand.CreateFromTask(async b => await Prepare(bakerId)); Observable.Return(Unit.Default) .InvokeCommand(PrepareCommand); PrepareCommand.Subscribe(); }
//发送指令 private string SendCommandAndGetResult() { //获取待发送指令 string cmd = GetSendCommand(); //预处理指令 string ErrorMessage = ""; string precmd = PrepareCommand.DuelCommand(cmd, ref ErrorMessage); if (precmd == "") { if (ErrorMessage != "") { richTextBox1.AppendText("\n" + ErrorMessage); } richTextBox1.AppendText("\n>"); richTextBox1.SelectionStart = richTextBox1.TextLength; } else { string strResult = ""; if (PublicClass.SendCommand(precmd, 1, ref strResult)) { //格式化返回结果(主要处理AVH返回) strResult = PublicClass.FormatResult(precmd, strResult); richTextBox1.AppendText("\n" + strResult + "\n>"); richTextBox1.SelectionStart = richTextBox1.TextLength; //分析返回结果 PrepareCommand.AnalyseCommandResult(precmd, strResult); } else { MessageBox.Show(strResult); } } return(cmd); }
private static List <T> GetData <T>(PrepareCommand PrepareCommand, Get <T> Get) { cn.Open(); List <T> EntryList = new List <T>(); SqlCommand command = new SqlCommand(); command.Connection = cn; command.CommandType = CommandType.Text; PrepareCommand(command); SqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { EntryList.Add(Get(reader)); } } //Конец вытягивания reader.Close(); cn.Close(); return(EntryList); }
private void ParseCommand(string line) { if (string.IsNullOrEmpty(line)) { return; } //NOTE: Parse in ascending length order! if (line.Substring(0, 1).Equals("#")) { return; } if (line.Length < 4) { Warn("invalid command: {0}", line); return; } if (line.Substring(0, 4).ToLower().Equals("quit") || line.Substring(0, 4).ToLower().Equals("exit")) { return; } var idx = line.IndexOf(' '); string cmd; if (idx < 0) { idx = 0; cmd = line; } else { cmd = line.Substring(0, idx).ToLower(); } var args = idx == 0 ? string.Empty : line.Substring(idx + 1).Trim(); if (CR.abort.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new AbortCommand(); c.Execute(context); StopTimer(CR.abort + " " + args); return; } if (CR.addalias.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new AddAliasCommand(); c.Execute(context, args); StopTimer(CR.addalias + " " + args); return; } if (CR.addindex.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new AddIndexCommand(); c.Execute(context, args); StopTimer(CR.addindex + " " + args); return; } if (CR.close.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new CloseCommand(); c.Execute(context, args); StopTimer(CR.close + " " + args); return; } if (CR.commit.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new CommitCommand(); c.Execute(context, args); StopTimer(CR.commit + " " + args); return; } if (CR.compactcontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new CompactContainerCommand(); c.Execute(context, args); StopTimer(CR.compactcontainer + " " + args); return; } if (CR.contextquery.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new ContextQueryCommand(); c.Execute(context, args); StopTimer(CR.contextquery + " " + args); return; } if (CR.cquery.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new CQueryCommand(); c.Execute(context, args); StopTimer(CR.cquery + " " + args); return; } if (CR.createcontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new CreateContainerCommand(); c.Execute(context, args); StopTimer(CR.createcontainer + " " + args); return; } if (CR.delindex.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new DeleteIndexCommand(); c.Execute(context, args); StopTimer(CR.delindex + " " + args); return; } if (CR.echo.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { Msg(args); return; } if (CR.getdocuments.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new GetDocumentsCommand(); c.Execute(context, args); StopTimer(CR.getdocuments + " " + args); return; } if (CR.getmetadata.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new GetMetadataCommand(); c.Execute(context, args); StopTimer(CR.getmetadata + " " + args); return; } if (CR.help.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { var c = new HelpCommand(); c.Execute(args); return; } if (CR.info.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new InfoCommand(); c.Execute(context, args); StopTimer(CR.info + " " + args); return; } if (CR.listindexes.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new ListIndexesCommand(); c.Execute(context, args); StopTimer(CR.listindexes + " " + args); return; } if (CR.lookupedgeindex.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new LookupEdgeIndexCommand(); c.Execute(context, args); StopTimer(CR.lookupedgeindex + " " + args); return; } if (CR.lookupindex.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new LookupIndexCommand(); c.Execute(context, args); StopTimer(CR.lookupindex + " " + args); return; } if (CR.lookupstats.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new LookupStatisticsCommand(); c.Execute(context, args); StopTimer(CR.lookupstats + " " + args); return; } if (CR.opencontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new OpenContainerCommand(); c.Execute(context, args); StopTimer(CR.opencontainer + " " + args); return; } if (CR.preload.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new PreloadCommand(); c.Execute(context, args); StopTimer(CR.preload + " " + args); return; } if (CR.prepare.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new PrepareCommand(); c.Execute(context, args); StopTimer(CR.prepare + " " + args); return; } if (CR.print.IndexOf(cmd, 0, StringComparison.Ordinal) == 0 || cmd.ToLower().Equals("printnames")) { StartTimer(); var c = new PrintCommand(); c.Execute(context, cmd.Equals("printnames") ? "printnames " + args : args); StopTimer(cmd.Equals("printnames") ? "printNames" : CR.print); return; } if (CR.putdocuments.Equals(cmd)) { StartTimer(); var c = new PutDocumentsCommand(); c.Execute(context, args); StopTimer(CR.putdocuments + " " + args); return; } if (CR.putdocument.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new PutDocumentCommand(); c.Execute(context, args); StopTimer(CR.putdocument + " " + args); return; } if (CR.query.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new QueryCommand(); c.Execute(context, args); StopTimer(CR.query + " " + args); return; } if (CR.queryplan.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new QueryPlanCommand(); c.Execute(context, args); StopTimer(CR.queryplan + " " + args); return; } if (CR.reindexcontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new ReindexContainerCommand(); c.Execute(context, args); StopTimer(CR.reindexcontainer + " " + args); return; } if (CR.removealias.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new RemoveAliasCommand(); c.Execute(context, args); StopTimer(CR.removealias + " " + args); return; } if (CR.removecontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new RemoveContainerCommand(); c.Execute(context, args); StopTimer(CR.removecontainer + " " + args); return; } if (CR.removedocument.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new RemoveDocumentCommand(); c.Execute(context, args); StopTimer(CR.removedocument + " " + args); return; } if (CR.run.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { var c = new RunCommand(); c.Execute(context, args); var l2 = new List <string>(originalArgs) { "-s", c.Script }; StartTimer(); Main(l2.ToArray()); StopTimer(CR.run + " " + args); return; } if (CR.setautoindexing.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new SetAutoIndexingCommand(); c.Execute(context, args); StopTimer(CR.setautoindexing + " " + args); return; } if (CR.setbaseuri.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new SetBaseUriCommand(); c.Execute(context, args); StopTimer(CR.setbaseuri + " " + args); return; } if (CR.setignore.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { var c = new SetIgnoreCommand(); c.Execute(context, args); ignoreErrors = c.Ignore; return; } if (CR.setlazy.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new SetLazyCommand(); c.Execute(context, args); StopTimer(CR.setlazy + " " + args); return; } if (CR.setmetadata.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new SetMetadataCommand(); c.Execute(context, args); StopTimer(CR.setmetadata + " " + args); return; } if (CR.setnamespace.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new SetNamespaceCommand(); c.Execute(context, args); StopTimer(CR.setnamespace + " " + args); return; } if (CR.setprojection.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new SetProjectionCommand(); c.Execute(context, args); StopTimer(CR.setprojection + " " + args); return; } if (CR.setquerytimeout.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new SetQueryTimeoutCommand(); c.Execute(context, args); StopTimer(CR.setquerytimeout + " " + args); return; } if (CR.setvariable.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new SetVariableCommand(); c.Execute(context, args); StopTimer(CR.setvariable + " " + args); return; } if (CR.setverbose.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new SetVerboseCommand(); c.Execute(context, args); StopTimer(CR.setverbose + " " + args); return; } if (CR.sync.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); context.Sync(); StopTimer(CR.sync + " " + args); return; } if (CR.time.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { time = true; ParseCommand(args); return; } if (CR.transaction.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new TransactionCommand(); c.Execute(context, args); StopTimer(CR.transaction + " " + args); return; } if (CR.upgradecontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0) { StartTimer(); var c = new UpgradeContainerCommand(); c.Execute(context, args); StopTimer(CR.upgradecontainer + " " + args); return; } Warn("Command not recognized: {0}", cmd); }
public PrepareHandler(ILogger <PrepareHandler> logger, PrepareCommand command) { _logger = logger; _command = command; }
public void Start() { Task.Factory.StartNew(() => { try { _control.Connect(); // Send PREPARE command PrepareCommand prepareCommand = new PrepareCommand { Name = _name }; _control.WriteCommand(prepareCommand); bool abortWritten = false; while (true) { try { CommandEvent commandEvent = _control.ReadEvent(200); switch (commandEvent.EventKind) { case CommandEvent.Kind.PREPARED: _latch.NotifyPrepared(); StartCommand startCommand = new StartCommand { Name = _name }; _control.WriteCommand(startCommand); break; case CommandEvent.Kind.STARTED: _latch.NotifyStartable(); break; case CommandEvent.Kind.ERROR: ErrorEvent errorEvent = (ErrorEvent)commandEvent; throw new Exception(String.Format("{0}:{1}", errorEvent.Summary, errorEvent.Description)); case CommandEvent.Kind.FINISHED: FinishedEvent finishedEvent = commandEvent as FinishedEvent; _expectedScript = finishedEvent.ExpectedScript; _observedScript = finishedEvent.ObservedScript; _latch.NotifyFinished(); return; default: throw new InvalidOperationException("Unsupported event: " + commandEvent.EventKind); } } catch (Exception ex) { if (_abortScheduled && !abortWritten) { abortWritten = true; SendAbortCommand(); } } } } catch (SocketException socketException) { Exception exception = new Exception("Failed to connect. Is the Robot running?", socketException); _latch.NotifyException(exception); } catch (Exception exception) { _latch.NotifyException(exception); } finally { _control.Disconnect(); } }); // Wait until robot server is ready to accept connections _latch.AwaitStartable(); }