public void Merge(string userId, CartBody tempBody) { if (Order.OrderStatus != "Locked") { using (FreeMarketEntities db = new FreeMarketEntities()) { // Compare the session body with the database foreach (OrderDetail item in tempBody.OrderDetails) { OrderDetail existingItem = Body.OrderDetails .Where(c => c.ProductNumber == item.ProductNumber && c.SupplierNumber == item.SupplierNumber && c.SizeType == item.SizeType) .FirstOrDefault(); // If the item does not exist, add it if (existingItem == null) { Body.OrderDetails.Add(item); } // Otherwise update the quantity only else { Body.OrderDetails.Where(c => c.ProductNumber == item.ProductNumber && c.SupplierNumber == item.SupplierNumber && c.SizeType == item.SizeType) .FirstOrDefault() .Quantity += item.Quantity; } } } UpdateTotal(); } }
public void Save(string userId = null) { if (Order.OrderNumber == 0) { using (FreeMarketEntities db = new FreeMarketEntities()) { db.OrderHeaders.Add(Order); db.SaveChanges(); } } // Compare the Session cart to the database cart and resolve differences Compare(); // Re-initialize the Body Body = CartBody.GetDetailsForShoppingCart(Order.OrderNumber); // Keep the total order value in sync UpdateTotal(); // Save the Order total using (FreeMarketEntities db = new FreeMarketEntities()) { db.Entry(Order).State = EntityState.Modified; db.SaveChanges(); } AuditUser.LogAudit(6, string.Format("Order number: {0}", Order.OrderNumber), userId); }
public ShoppingCart() { Body = new CartBody(); Order = new OrderHeader(); using (FreeMarketEntities db = new FreeMarketEntities()) { Order.VATPercentage = db.VATPercentages.FirstOrDefault().VATPercentage1; } }
public ShoppingCart(int orderNumber) { using (FreeMarketEntities db = new FreeMarketEntities()) { Order = db.OrderHeaders.Find(orderNumber); Order.VATPercentage = db.VATPercentages.FirstOrDefault().VATPercentage1; Body = CartBody.GetDetailsForShoppingCart(Order.OrderNumber); } }
public void Initialize(string userId) { using (FreeMarketEntities db = new FreeMarketEntities()) { // Get the order and body from the database with all joining fields Order = OrderHeader.GetOrderForShoppingCart(userId); Order.VATPercentage = db.VATPercentages.FirstOrDefault().VATPercentage1; Body = CartBody.GetDetailsForShoppingCart(Order.OrderNumber); } }
public static CartBody GetDetailsForShoppingCart(int orderNumber) { CartBody body = new CartBody(); using (FreeMarketEntities db = new FreeMarketEntities()) { body.OrderDetails = db.GetDetailsForShoppingCart(orderNumber) .Select(c => new OrderDetail { CourierName = c.CourierName, CustodianNumber = c.CustodianNumber, ItemNumber = c.ItemNumber, MainImageNumber = 0, OrderItemStatus = c.OrderItemStatus, OrderItemValue = c.OrderItemValue, OrderNumber = c.OrderNumber, PaidCourier = c.PaidCourier, PaidSupplier = c.PaidSupplier, PayCourier = c.PayCourier, PaySupplier = c.PaySupplier, Price = c.PriceOrderDetail, ProductDepartment = c.DepartmentName, ProductDescription = c.Description, ProductNumber = c.OrderDetailProductNumber, ProductPrice = c.PricePerUnit, ProductWeight = c.Weight ?? 0, Quantity = c.Quantity, Settled = false, SupplierName = c.SupplierName, SupplierNumber = c.SupplierNumber, Selected = false, SizeType = c.SizeType } ).ToList(); if (body.OrderDetails != null && body.OrderDetails.Count > 0) { foreach (OrderDetail detail in body.OrderDetails) { int imageNumber = db.ProductPictures .Where(c => c.ProductNumber == detail.ProductNumber && c.Dimensions == PictureSize.Small.ToString()) .Select(c => c.PictureNumber) .FirstOrDefault(); detail.MainImageNumber = imageNumber; } } } Debug.Write(body); return(body); }