public async Task <IActionResult> Execute(string orderId, string subject, string commonId, JObject jObj) { if (string.IsNullOrWhiteSpace(orderId)) { throw new ArgumentNullException(nameof(orderId)); } if (string.IsNullOrWhiteSpace(subject)) { throw new ArgumentNullException(nameof(jObj)); } AcceptOrderTransactionCommand command = null; try { command = _requestBuilder.GetAcceptOrderTransactionCommand(jObj); } catch (ArgumentException ex) { var error = _responseBuilder.GetError(ErrorCodes.Request, ex.Message); return(_controllerHelper.BuildResponse(HttpStatusCode.BadRequest, error)); } command.OrderId = orderId; command.CommonId = commonId; var validationResult = await _validator.Validate(command, subject); if (!validationResult.IsValid) { var error = _responseBuilder.GetError(ErrorCodes.Request, validationResult.Message); return(_controllerHelper.BuildResponse(HttpStatusCode.BadRequest, error)); } _commandSender.Send(command); return(new OkResult()); }