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)); } }
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)); }
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()); }
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()); }
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)); }
public static DomainUpdateOrderItemRequest MapToDomainRequest( this UpdateOrderItemRequest request, IMapper mapper) { return(mapper.Map <DomainUpdateOrderItemRequest>(request)); }