Example #1
0
 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));
        }
Example #3
0
        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);
        }