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); }
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); }