public void TestCanMapDTOToEntities() { var config = new MapperConfiguration(cfg => cfg.AddProfile(typeof(POSMapperConfiguration))); var mapper = config.CreateMapper(); var odDTO = new OrderDetailForPayDTO() { DiscountType = DiscountTypeDTO.system, DiscountId = 1, ProductId = 1, Quantity = 1, StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(3), CustomDiscountAmount = 400, }; var paymentOrder = new PaymentOrderForPayDTO { Amount = 50, Due = 50, PaymentType = PaymentType.CARD }; var source = new OrderForPayDTO() { OrderDetails = new List <OrderDetailForPayDTO>() { odDTO }, PaymentOrders = new List <PaymentOrderForPayDTO>() { paymentOrder } }; var order = mapper.Map <Order>(source); var orderDetailDTO = order.OrderDetails.First(); var paymentOrderDTO = order.PaymentOrders.First(); Logger.LogMessage("order {0}", JsonConvert.SerializeObject(order, Formatting.Indented)); Logger.LogMessage("order detail DTO {0}", JsonConvert.SerializeObject(odDTO, Formatting.Indented)); Logger.LogMessage("payment order DTO {0}", JsonConvert.SerializeObject(paymentOrderDTO, Formatting.Indented)); Assert.AreEqual(odDTO.ProductId, orderDetailDTO.ProductId); Assert.AreEqual(odDTO.CustomDiscountAmount, orderDetailDTO.CustomDiscountAmount); Assert.AreEqual(odDTO.DiscountId, orderDetailDTO.DiscountId); Assert.AreEqual(odDTO.Quantity, orderDetailDTO.Quantity); Assert.AreEqual(odDTO.StartDate, orderDetailDTO.StartDate); Assert.AreEqual(odDTO.EndDate, orderDetailDTO.EndDate); Assert.AreEqual(paymentOrder.Amount, paymentOrderDTO.Amount); Assert.AreEqual(paymentOrder.Due, paymentOrderDTO.Due); Assert.AreEqual(paymentOrder.PaymentType, paymentOrderDTO.PaymentType); }
public async Task <ActionResult> Pay([FromBody] OrderForPayDTO vm) { //save to order, orderDetail, paymentOrder var order = _mapper.Map <Order>(vm); //check that products are for rent if (TryValidateModel(order)) { _context.Add(order); _context.SaveChanges(); return(Ok()); } return(BadRequest(ModelState)); }