コード例 #1
0
        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;
        }
コード例 #2
0
        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)
            };
        }
コード例 #3
0
ファイル: CommandsService.cs プロジェクト: wortexx/zaz
        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
                       };
        }
コード例 #4
0
ファイル: CommandsService.cs プロジェクト: wortexx/zaz
 public HttpResponseMessage Post(PostCommandRequest env)
 {
     var cmdKey = env.Key;
     var cmd = _resolver.ResoveCommand(env, cmdKey);
     return _runner.RunCommand(cmdKey, cmd, env.Tags);
 }
コード例 #5
0
ファイル: CommandsController.cs プロジェクト: chaliy/zaz
        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()
            };
        }