public TransactionDto AddTransaction(int customerId, TransactionBaseDto transaction) { try { var itemToCreate = Mapper.Map <TransactionDto>(transaction); itemToCreate.CustomerId = customerId; _rep.Add(itemToCreate); return(!_rep.Save() ? null : itemToCreate); } catch (Exception e) { //Logger.ErrorException(e.Message, e); throw e; } }
public IActionResult Post(int customerId, [FromBody] TransactionBaseDto dto) { if (dto == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = _provider.AddTransaction(customerId, dto); if (result == null) { return(StatusCode(500, "A problem occurred while handling your request.")); } return(CreatedAtRoute("GetTransaction", new { id = result.TransactionId }, result)); }
public void Add_TransactionWithNewlyInvoice_ReturnsOKResult() { // Arrange var theItem = new TransactionBaseDto { Amount = 2, CurrencyCode = "USD", Invoice = "InvoiceTest", Status = Domain.Enums.StatusType.Success }; // Act //See how the ValidateViewModel extension method in the Helper class is useful here _controller.ValidateViewModel(theItem); //I have used the above useful extension method to simulate validation instead of adding customly like below //_controller.ModelState.AddModelError("CustomerName", "Required"); var theResponse = _controller.Post(1, theItem); // Assert Assert.IsType <CreatedAtRouteResult>(theResponse); }