public async Task <IActionResult> Create(string jsonModel, CancellationToken cancellationToken) { if (!_permissionService.Authorize(XrmsPermissionProvider.ManageWaiterOrders)) { return(AccessDeniedView()); } if (!String.IsNullOrEmpty(jsonModel)) { try { CreateInStoreOrderModel model = JsonConvert.DeserializeObject <CreateInStoreOrderModel>(jsonModel); // validate model CreateInStoreOrderModelValidator validator = new CreateInStoreOrderModelValidator(this._localizationService); ValidationResult results = validator.Validate(model); if (!results.IsValid) { _logger.InsertLog(LogLevel.Error, "Create Order: Validation Error", results.ToString()); List <string> errorList = new List <string>(); foreach (var failure in results.Errors) { //Console.WriteLine("Property " + failure.PropertyName + " failed validation. Error was: " + failure.ErrorMessage); errorList.Add(failure.ErrorMessage); } return(BadRequest(errorList)); } // no error, send command Guid guid = CompGuid.NewGuid(); await _commandSender.Send(new CreateCmd(guid, model), cancellationToken); return(Ok(guid)); } catch (Exception ex) { _logger.InsertLog(LogLevel.Error, "Create Order: Exception Error", ex.Message); return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } } else { _logger.InsertLog(LogLevel.Error, "Create Order: Empty Object", "Request object is null or empty."); return(BadRequest("Request object is null or empty.")); } }
public CreateCmd(Guid id, CreateInStoreOrderModel model) { Id = id; CommandModel = model ?? throw new ArgumentNullException(); }