public void Add_MissingObjectDaysPassed_ReturnsBadRequest()
        {
            // Arrange

            const string testCustomerId = "042f780d-8b17-42f3-8c73-486d63f87e98";

            var testItem = new TransactionDTo()
            {
                TransactionID = 6,
                EquipmentId   = 1,
                Type          = EquipmentType.Heavy.ToString()
            };

            MoqSetupAdd(testItem);

            // Act

            //See how the ValidateViewModel extension method in the Helper class is useful here
            _controller.ValidateViewModel(testItem);
            //I have used the above useful extension method to simulate validation instead of adding customly like below
            //_controller.ModelState.AddModelError("CustomerName", "Required");

            var badResponse = _controller.Post(testCustomerId, testItem);

            // Assert
            Assert.IsType <BadRequestObjectResult>(badResponse);
        }
        public IActionResult Post(string customerId, [FromBody] TransactionDTo dto)
        {
            if (dto == null)
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var result = _transactionProvider.AddTransaction(customerId, dto);

            if (result == null)
            {
                return(StatusCode(500, "A problem occurred while handling your request."));
            }
            return(CreatedAtRoute("GetTransaction", new { id = result.TransactionID }, result));
        }
Пример #3
0
 public TransactionDTo AddTransaction(string customerId, TransactionDTo transaction)
 {
     try
     {
         Enum.TryParse(transaction.Type, out EquipmentType equipmentType);
         transaction.Points = Helper.CalculatePoints(equipmentType);
         transaction.Price  = Helper.CalculatePrice(transaction.Days, equipmentType);
         transaction.TransactionDateTime = DateTime.Now.ToString();
         var itemToCreate = Mapper.Map <Transaction>(transaction);
         itemToCreate.UserId = customerId;
         _rep.Add(itemToCreate);
         if (!_rep.Save())
         {
             return(null);
         }
         var transactionDTo = Mapper.Map <TransactionDTo>(itemToCreate);
         return(transactionDTo);
     }
     catch (Exception e)
     {
         _logger.LogInformation(e.Message);
         throw;
     }
 }