コード例 #1
0
        public async Task <Response> Update(int id, UpdateOrderItemRequest request)
        {
            try
            {
                var item = await _repository.GetById(id);

                item.Type  = request.Type;
                item.Color = request.Color;
                item.Value = request.Value;

                _repository.Update(item);

                if (await _repository.SaveChangesAsync())
                {
                    var response = _mapper.Map <OrderItemResponse>(item);
                    return(OkResponse(null, response));
                }

                return(BadRequestResponse("Erro desconhecido."));
            }
            catch (NullReferenceException)
            {
                return(NotFoundResponse("Item não encontrado."));
            }
            catch (Exception ex)
            {
                return(BadRequestResponse(ex.Message));
            }
        }
コード例 #2
0
        public async Task <IActionResult> Update(int id, UpdateOrderItemRequest request)
        {
            var mapped   = request.MapToDomainRequest(_mapper);
            var response = await _service.Update(id, mapped);

            return(StatusCode(response.Code, response));
        }
コード例 #3
0
        public void Should_Return_NotFound_When_Update_With_An_Incorrect_Id()
        {
            var id             = 0; // Does not exist!
            var fakeRepository = _fakes.FakeOrderItemRepository().Object;

            var request  = new UpdateOrderItemRequest();
            var expected = Responses.NotFoundResponse("Item não encontrado.");

            var service = new OrderItemService(_fakes.Mapper, fakeRepository);
            var actual  = service.Update(id, request).Result;

            Assert.IsType <Response>(actual);
            Assert.Equal(expected, actual, new ResponseComparer());
        }
コード例 #4
0
        public void Should_Return_BadRequest_When_Update_And_Exception_Is_Thrown()
        {
            var id             = 1;
            var fakeRepository = _fakes.FakeOrderItemRepository(true).Object;

            var request  = new UpdateOrderItemRequest();
            var expected = Responses.BadRequestResponse(Fakes.TestException.Message);

            var service = new OrderItemService(_fakes.Mapper, fakeRepository);
            var actual  = service.Update(id, request).Result;

            Assert.ThrowsAnyAsync <Exception>(() => service.Update(id, request));
            Assert.IsType <Response>(actual);
            Assert.Equal(expected, actual, new ResponseComparer());
        }
コード例 #5
0
        public BaseResponse <GetOrderItemResponse, MundipaggErrorsResponse> UpdateOrderItem(string orderId, string itemId, UpdateOrderItemRequest request)
        {
            var method   = HttpMethod.Put;
            var endpoint = $"/orders/{orderId}/items/{itemId}";

            return(this.SendRequest <GetOrderItemResponse>(method, endpoint, request));
        }
コード例 #6
0
 public static DomainUpdateOrderItemRequest MapToDomainRequest(
     this UpdateOrderItemRequest request,
     IMapper mapper)
 {
     return(mapper.Map <DomainUpdateOrderItemRequest>(request));
 }