Exemplo n.º 1
0
        public void ConfirmOrderDetail_Load()
        {
            // given
            var resources    = new Resources();
            var orderId      = 1234;
            var requestModel = new GetOrderDetailRequestModel {
                OrderId = orderId
            };
            var responseModel = new OrderDetailModel
            {
                OrderId          = orderId,
                OrderNo          = "QUOTE" + orderId.ToString(),
                CreateDate       = DateTime.Now,
                SubTotal         = 222M,
                VatTotal         = 20M,
                Total            = 242M,
                Discount         = 0M,
                OrderLineDetails = new List <OrderLineDetailModel>
                {
                    new OrderLineDetailModel
                    {
                        OrderId         = orderId,
                        ItemDescription = "TestProduct",
                        UnitPrice       = 111M,
                        Quantity        = 2,
                        Discount        = 0M,
                        LineTotal       = 242M
                    }
                }
            };

            resources.MockApiCaller.AddMockResponse("WebApi:Orders:GetOrderDetail", requestModel, responseModel);

            // when
            var result = resources.Controller.ConfirmOrderDetail(orderId) as ViewResult;

            // then
            Assert.IsNotNull(result);
            Assert.AreEqual("ConfirmOrderDetail", result.ViewName);
            var model = (OrderDetailModel)result.Model;

            Assert.AreEqual(1, model.OrderLineDetails.Count);
            Assert.AreEqual(responseModel.OrderId, model.OrderId);
            Assert.AreEqual(responseModel.OrderNo, model.OrderNo);
            Assert.AreEqual(responseModel.SubTotal, model.SubTotal);
            Assert.AreEqual(responseModel.VatTotal, model.VatTotal);
            Assert.AreEqual(responseModel.Discount, model.Discount);
            Assert.AreEqual(responseModel.Total, model.Total);
            Assert.AreEqual(responseModel.OrderLineDetails[0].ItemDescription, model.OrderLineDetails[0].ItemDescription);
            Assert.AreEqual(responseModel.OrderLineDetails[0].Quantity, model.OrderLineDetails[0].Quantity);
            Assert.AreEqual(responseModel.OrderLineDetails[0].UnitPrice, model.OrderLineDetails[0].UnitPrice);
            Assert.AreEqual(responseModel.OrderLineDetails[0].Discount, model.OrderLineDetails[0].Discount);
            Assert.AreEqual(responseModel.OrderLineDetails[0].OrderId, model.OrderLineDetails[0].OrderId);
            Assert.AreEqual(responseModel.OrderLineDetails[0].LineTotal, model.OrderLineDetails[0].LineTotal);
        }
Exemplo n.º 2
0
        public OrderDetailModel GetOrderDetail([FromBody] GetOrderDetailRequestModel requestModel)
        {
            var existingOrder = Context.Orders.Include(o => o.OrderDetails).Single(o => o.OrderId == requestModel.OrderId);

            if (existingOrder == null)
            {
                return(new OrderDetailModel());
            }

            var result = new OrderDetailModel
            {
                OrderId          = existingOrder.OrderId,
                OrderNo          = existingOrder.OrderNo,
                CreateDate       = existingOrder.CreateDate,
                SubTotal         = existingOrder.SubTotal,
                VatTotal         = existingOrder.VatTotal,
                Total            = existingOrder.OrderTotal,
                Discount         = existingOrder.DiscountTotal,
                OrderLineDetails = new List <OrderLineDetailModel>()
            };

            var maxLineNo = existingOrder.OrderDetails.Max(o => o.LineNo);

            foreach (var linedetail in existingOrder.OrderDetails.Where(o => o.LineNo == maxLineNo))
            {
                result.OrderLineDetails.Add(new OrderLineDetailModel
                {
                    OrderId         = linedetail.OrderId,
                    ItemDescription = linedetail.ItemDescription,
                    UnitPrice       = linedetail.UnitPrice,
                    Quantity        = linedetail.Quantity,
                    Discount        = linedetail.Discount,
                    LineTotal       = linedetail.LineTotal
                });
            }

            return(result);
        }