public object ResoveCommand(PostCommandRequest env, string cmdKey) { if (String.IsNullOrWhiteSpace(cmdKey)) { throw ExceptionsFactory.CreateApiException("Required value 'Key' was not found."); } var cmdType = ResolveCommandType(cmdKey); var cmd = BuildCommand(env, cmdType); return cmd; }
public HttpResponseMessage Default(PostCommandRequest env) { var cmdKey = env.Key; var cmd = _resolver.ResoveCommand(env, cmdKey); var msg = _runner.RunCommand(cmdKey, cmd, env.Tags); return new HttpResponseMessage { StatusCode = HttpStatusCode.Accepted, Content = new StringContent(msg) }; }
public PostScheduledCommandResponse PostScheduled(PostCommandRequest req) { var cmdKey = req.Key; var cmd = _resolver.ResoveCommand(req, cmdKey); var broker = (_context.Broker ?? Implementations.Broker); var stateProvider = (_context.StateProvider ?? Implementations.StateProvider); var id = Guid.NewGuid().ToString("n"); stateProvider.Start(id, DateTime.UtcNow); var ctx = new CommandHandlingContext(req.Tags ?? new string[0], Thread.CurrentPrincipal); var traceSubscription = ctx.Trace .Subscribe(e => stateProvider.WriteTrace(id, DateTime.UtcNow, e.Serverity, e.Message, e.Tags)); broker.Handle(cmd, ctx) .ContinueWith(t => { traceSubscription.Dispose(); stateProvider.CompleteSuccess(id, DateTime.UtcNow); }); return new PostScheduledCommandResponse { Id = id }; }
public HttpResponseMessage Post(PostCommandRequest env) { var cmdKey = env.Key; var cmd = _resolver.ResoveCommand(env, cmdKey); return _runner.RunCommand(cmdKey, cmd, env.Tags); }
public PostScheduledCommandResponse PostScheduled(PostCommandRequest req) { var cmdKey = req.Key; var cmd = _resolver.ResoveCommand(req, cmdKey); var id = _executor.Submit(cmd, req.Tags, Thread.CurrentPrincipal); return new PostScheduledCommandResponse { Id = id.ToString() }; }