public Args(string[] args) { ExitParams = Map(args); var exit = ExitParams.Any(); var init = !args.Any(); var port = 0; var connect = args.Length == 1 && int.TryParse(args.First(), out port); if (exit) { State = AppState.Exit; } else if (init) { State = AppState.Init; } else if (connect) { State = AppState.Connect; PortParam = port; } else { throw new InvalidOperationException("Invalid application state"); } }
async Task <Unit> IRequestHandler <ExitParams, Unit> .Handle(ExitParams request, CancellationToken token) { await Task.Yield(); var result = _shutdownRequested ? 0 : 1; _exitSubject.OnNext(result); _exitSubject.OnCompleted(); await _connection.StopAsync().ConfigureAwait(false); return(Unit.Value); }
public ExitCommand(string args) { _exitParams = ParamDeserializer.Deserialize <ExitParams>(args); }
public virtual async Task <Unit> Handle(ExitParams request, CancellationToken cancellationToken) { await Handle(cancellationToken).ConfigureAwait(false); return(Unit.Value); }