Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }