public async Task <IActionResult> UpdateOrderItems(string hubConnectionId, string jsonModel, CancellationToken cancellationToken)
        {
            if (!_permissionService.Authorize(XrmsPermissionProvider.ManageWaiterOrders))
            {
                return(AccessDeniedView());
            }

            if (!String.IsNullOrEmpty(jsonModel))
            {
                try
                {
                    UpdateInStoreOrderItemsModel model = JsonConvert.DeserializeObject <UpdateInStoreOrderItemsModel>(jsonModel);

                    _logger.InsertLog(LogLevel.Information, "XRMS current in-store order info", String.Format("AggregateId = {0}, Version = {1}", model.AggregateId, model.Version));

                    // validate model

                    // save hub connection into session
                    HttpContext.Session.SetString("HubConnectionId", hubConnectionId);

                    // send command
                    await _commandSender.Send(new UpdateOrderItemsCmd(model.AggregateId, model.Version, model), cancellationToken);

                    return(Ok());
                }
                catch (Exception ex)
                {
                    _logger.InsertLog(LogLevel.Error, "Update Order Items: Exception Error", ex.Message);
                    return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
                }
            }
            else
            {
                _logger.InsertLog(LogLevel.Error, "Update Order Items: Empty Object", "Request object is null or empty.");
                return(BadRequest("Request object is null or empty."));
            }
        }
Exemple #2
0
 public UpdateOrderItemsCmd(Guid id, int originalVersion, UpdateInStoreOrderItemsModel model)
 {
     Id = id;
     ExpectedVersion = originalVersion;
     CommandModel    = model ?? throw new ArgumentNullException();
 }