Exemplo n.º 1
0
        public async Task <GetDetailedOrderResponse> UpdateOrderStatusAsync(Guid id, UpdateOrderStatusRequest request)
        {
            var order = await _unitOfWork.OrderRepository.GetDetailedOrderAsync(id);

            if (order == null)
            {
                throw new OrderNotFoundException($"Order {id} not found");
            }

            _mapper.Map(request, order);

            if (request.RowVersion != null)
            {
                _unitOfWork.OrderRepository.UpdateOriginalInternalRowVersion(order, request.RowVersion);
            }

            _unitOfWork.OrderRepository.Update(order);

            try
            {
                await _unitOfWork.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                throw new ConcurrentEntityUpdateException($"Concurrent update on order {order.Id} was detected");
            }
            catch (DbUpdateException)
            {
                throw new FailedToAddDatabaseResourceException($"Failed to update order {order.Id}");
            }

            var response = _mapper.Map <GetDetailedOrderResponse>(order);

            return(response);
        }
Exemplo n.º 2
0
        public BaseResponse <GetOrderResponse> CloseOrder(string id, UpdateOrderStatusRequest request)
        {
            var method   = new HttpMethod("PATCH");
            var endpoint = $"/orders/{id}/closed";
            var query    = request.ToDictionary();

            return(this.HttpClientUtil.SendRequest <GetOrderResponse>(method, endpoint, request));
        }
        public async Task <IActionResult> UpdateOrderStatusAsync(Guid id,
                                                                 UpdateOrderStatusRequest request,
                                                                 [FromHeader] byte[] etag)
        {
            request.RowVersion = etag;

            var response = await _orderService.UpdateOrderStatusAsync(id, request);

            return(Ok(response));
        }
        public IActionResult UpdateStatus([FromBody] UpdateOrderStatusRequest request)
        {
            if (CheckToken(request, out CourierToken courierToken))
            {
                Order order = _context.Orders.FirstOrDefault(o => o.ID == request.OrderID);
                order.OrderStatus = request.NewStatus;
                _context.Update(order);

                _context.SaveChanges();

                return(Ok(ModelState));
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
Exemplo n.º 5
0
 public void GivenTheUserCreatesARequestToUpdateTheStatusForTheOrderWithId(int orderId)
 {
     updateOrderStatusRequest = new UpdateOrderStatusRequest(request, settings.OrderingApiBaseUrl, orderId);
 }
Exemplo n.º 6
0
 public async Task <IActionResult> UpdateAsync(UpdateOrderStatusRequest request)
 {
     return(await _mediator.Send(request));
 }