public async Task <Result <OrderItem> > ChangeOrderItemStatus(CancelOrderItemContext context) { var orderItem = await _dbContext.OrderItems.FindAsync(context.OrderItemId); if (orderItem == null) { _logger.LogInformation($"Order item {context.OrderItemId} could not be found."); return(new Result <OrderItem> { Reason = ReasonType.CourierNotFound, IsSuccessful = false }); } orderItem.Status = (int)context.Status; orderItem.StatusTimestamp = DateTime.Now; _dbContext.Update(orderItem); int changes = await _dbContext.SaveChangesAsync(); if (changes <= 0) { _logger.LogInformation($"Order item {context.OrderItemId} status was not updated."); return(new Result <OrderItem> { Reason = ReasonType.DatabaseError, ChangeCount = changes, IsSuccessful = false }); } _logger.LogInformation($"Order item {context.OrderItemId} status was updated."); return(new Result <OrderItem> { ChangeCount = changes, Value = MapToOrderItem(orderItem), IsSuccessful = true }); }
public async Task <IActionResult> CancelOrderItemRequest(CancelOrderItemContext context) { await _endpoint.Publish <OrderItemCancelRequest>( new() { OrderId = context.OrderId, OrderItemId = context.OrderItemId }); _logger.LogInformation($"Published - {nameof(OrderItemCancelRequest)}"); return(Ok()); }