Example #1
0
        private ShoppingBagIndexViewModel ConstructShoppingBagViewModel()
        {
            var shoppingBagViewModel = new ShoppingBagIndexViewModel();

            using (var context = new TTTEntities())
            {
                var salesOrderItems = GetPendingSOItems(context, shoppingBagViewModel);

                if (salesOrderItems.Count > 0)
                {
                    var soItemIDs = salesOrderItems.Select(a => a.ID).ToList();

                    GetNormalModel(shoppingBagViewModel, soItemIDs, context);

                    GetCustomizeModel(shoppingBagViewModel, soItemIDs, context);
                }
            }

            shoppingBagViewModel.ShoppingBagItems.Any(a => string.IsNullOrEmpty(a.CookieID));

            shoppingBagViewModel.ShoppingBagItems = shoppingBagViewModel.ShoppingBagItems.OrderBy(a => a.CookieID).ToList();

            shoppingBagViewModel.GrandTotal = shoppingBagViewModel.ShoppingBagItems.Sum(a => a.Quantity * a.Price);

            return shoppingBagViewModel;
        }
Example #2
0
        private List<lnksalesorder> GetPendingSOItems(TTTEntities context, ShoppingBagIndexViewModel shoppingBagViewModel = null)
        {
            var soItemsA = new List<lnksalesorder>();
            var soItemsB = new List<lnksalesorder>();
            var salesOrderItems = new List<lnksalesorder>();

            var customerEmail = Util.GetCustomerEmail();

            if (!string.IsNullOrEmpty(customerEmail))
            {
                var openStatusID = Util.GetStatusID(Status.Open.ToString());

                var openSalesOrder = context.trnsalesorders.Where(a => a.Email == customerEmail && a.StatusID == openStatusID).SingleOrDefault();

                if (openSalesOrder != null)
                {
                    if (shoppingBagViewModel != null)
                        shoppingBagViewModel.SalesOrderID = openSalesOrder.ID;

                    soItemsA = context.lnksalesorders.Where(a => a.SalesOrderID == openSalesOrder.ID && a.Active).ToList();
                }
            }

            ConstructShoppingBagCookie();

            if (Request.Cookies[Util.GetShoppingBagCookieName()] != null)
            {
                soItemsB = context.lnksalesorders.Where(a => a.CookieID == cookieID && a.SalesOrderID == null && a.Active).ToList();
            }

            salesOrderItems = soItemsA.Union(soItemsB).ToList();

            return salesOrderItems;
        }
Example #3
0
        private void GetNormalModel(ShoppingBagIndexViewModel shoppingBagViewModel, List<int> soItemIDs, TTTEntities context)
        {
            var query = from salesOrderItem in context.lnksalesorders
                        join modelSize in context.lnkmodelsizes on salesOrderItem.ModelSizeID equals modelSize.ID
                        join model in context.refmodels on modelSize.ModelID equals model.ID
                        join colourDesc in context.refcolourdescs on modelSize.ColourDescID equals colourDesc.ID
                        join modelColourDesc in context.lnkmodelcolourdescs on
                            new { ColourDescID = modelSize.ColourDescID, ModelID = modelSize.ModelID } equals
                            new { ColourDescID = modelColourDesc.ColourDescID, ModelID = modelColourDesc.ModelID }
                        join modelImage in context.lnkmodelimages on modelColourDesc.ID equals modelImage.ModelColourDescID
                        join brand in context.refbrands on model.BrandID equals brand.ID
                        join category in context.refcategories on brand.CategoryID equals category.ID
                        where soItemIDs.Contains(salesOrderItem.ID)
                        select new
                        {
                            SalesOrderItemID = salesOrderItem.ID,
                            Image = modelImage.Image,
                            Description = model.Description,
                            ModelName = model.Name,
                            BrandName = brand.Name,
                            Colour = colourDesc.Name,
                            Size = modelSize.Size,
                            AvailableQty = modelSize.Quantity,
                            Quantity = salesOrderItem.Quantity,
                            Price = (model.DiscountPrice.HasValue && model.DiscountPrice.Value > 0) ? model.DiscountPrice.Value : model.Price,
                            Active = salesOrderItem.Active,
                            CategoryName = category.Name,
                            ModelSizeID = modelSize.ID,
                            ModelID = model.ID,
                            ColourDescID = colourDesc.ID,
                            SKU = salesOrderItem.SKU,
                            CookieID = salesOrderItem.CookieID
                        };

            var salesOrderDetails = query.Where(a => a.Active).ToList();

            if (salesOrderDetails.Count > 0)
            {
                var uniqueSOItemIDs = salesOrderDetails.Select(a => a.SalesOrderItemID).Distinct().ToList();

                foreach (var id in uniqueSOItemIDs)
                {
                    var item = salesOrderDetails.Where(a => a.SalesOrderItemID == id).First();

                    shoppingBagViewModel.GrandTotal += item.Price;

                    shoppingBagViewModel.ShoppingBagItems.Add(new ShoppingBagItem()
                    {
                        AvailableQuantity = item.AvailableQty,
                        Availability = item.AvailableQty >= 5 ? string.Format("{0} pairs left", item.AvailableQty) : string.Format("Only {0} pairs left", item.AvailableQty),
                        Brand = item.BrandName,
                        ColourDescName = item.Colour,
                        Image = string.Format("~/Images/{0}/{1}", item.CategoryName.Replace(" ", ""), item.Image),
                        ModelName = item.ModelName,
                        Price = item.Price,
                        Quantity = item.Quantity,
                        //Size = Util.GetSizeText(Convert.ToInt32(item.Size)),
                        Size = item.Size,
                        SalesOrderItemID = item.SalesOrderItemID,
                        ModelSizeID = item.ModelSizeID,
                        ModelID = item.ModelID,
                        ColourDescID = item.ColourDescID,
                        SKU = item.SKU,
                        CookieID = item.CookieID
                    });
                }
            }
            //if (salesOrderDetails.Count > 0)
            //{
            //    shoppingBagViewModel.GrandTotal += salesOrderDetails.Sum(a => a.Price);

            //    foreach (var item in salesOrderDetails)
            //    {
            //        shoppingBagViewModel.ShoppingBagItems.Add(new ShoppingBagItem()
            //        {
            //            AvailableQuantity = item.AvailableQty,
            //            Availability = item.AvailableQty >= 5 ? string.Format("{0} pairs left", item.AvailableQty) : string.Format("Only {0} pairs left", item.AvailableQty),
            //            Brand = item.BrandName,
            //            ColourDescName = item.Colour,
            //            Image = string.Format("~/Images/{0}/{1}", item.CategoryName.Replace(" ",""), item.Image),
            //            ModelName = item.ModelName,
            //            Price = item.Price,
            //            Quantity = item.Quantity,
            //            //Size = Util.GetSizeText(Convert.ToInt32(item.Size)),
            //            Size = item.Size,
            //            SalesOrderItemID = item.SalesOrderItemID,
            //            ModelSizeID = item.ModelSizeID,
            //            ModelID = item.ModelID,
            //            ColourDescID = item.ColourDescID,
            //            SKU = item.SKU,
            //            CookieID = item.CookieID
            //        });
            //    }
            //}
        }
Example #4
0
        private void GetCustomizeModel(ShoppingBagIndexViewModel shoppingBagViewModel, List<int> soItemIDs, TTTEntities context)
        {
            var query = from salesOrderItem in context.lnksalesorders
                        join customizeModelImage in context.lnkcustomizemodelimages on salesOrderItem.SKU equals customizeModelImage.SKU
                        join customizeModel in context.refcustomizemodels on customizeModelImage.CustomizeModelID equals customizeModel.ID
                        where soItemIDs.Contains(salesOrderItem.ID)
                        select new
                        {
                            SalesOrderItemID = salesOrderItem.ID,
                            Image = customizeModel.MainImage,
                            Description = customizeModel.Description,
                            ModelName = customizeModel.Name,
                            BrandName = "",
                            Colour = customizeModelImage.Colour,
                            Size = salesOrderItem.Size,
                            AvailableQty = 0,
                            Quantity = salesOrderItem.Quantity,
                            Price = customizeModel.Price,
                            Active = salesOrderItem.Active,
                            CategoryName = "",
                            SKU = salesOrderItem.SKU,
                            CookieID = salesOrderItem.CookieID
                        };

            var salesOrderDetails = query.Where(a => a.Active).ToList();

            if (salesOrderDetails.Count > 0)
            {
                shoppingBagViewModel.GrandTotal += salesOrderDetails.Sum(a => a.Price);

                foreach (var item in salesOrderDetails)
                {
                    shoppingBagViewModel.ShoppingBagItems.Add(new ShoppingBagItem()
                    {
                        Availability = "Custom Made",
                        Brand = item.BrandName,
                        ColourDescName = item.Colour,
                        Image = string.Format("~/Images/Customize/ShoeStyle/{0}", item.Image),
                        ModelName = item.ModelName,
                        Price = item.Price,
                        Quantity = item.Quantity,
                        Size = item.Size,
                        SalesOrderItemID = item.SalesOrderItemID,
                        SKU = item.SKU,
                        CookieID = item.CookieID
                    });
                }
            }
        }