Example #1
0
        public static IList<ShoppingCartViewModel> GetCartDetail(ViewModels.ShoppingCart cart)
        {
            //ViewModels.ShoppingCart cart = ViewModels.ShoppingCart.GetCart(this.HttpContext);
            using (MyStoreEntities db = new MyStoreEntities())
            {
                foreach (var item in cart.CartDetails)
                {
                    var query = db.Products.Where(p => p.product_id == item.ProductId).Select(p => new { p.product_description, p.product_image, p.product_name, p.product_price }).Single();
                    if (query != null)
                    {
                        item.ProductDescription = query.product_description;
                        item.ProductImage = query.product_image;
                        item.Price = query.product_price ?? 1;
                        item.ProductName = query.product_name;
                    }
                }
            }

            return cart.CartDetails;
        }
Example #2
0
        public static IList<Menu> BuildMenu()
        {
            using (MyStoreEntities dbContext = new MyStoreEntities())
            {
                var query1 = from parent in dbContext.Ref_Product_Type
                             join child in dbContext.Ref_Product_Type on parent.product_type_id equals child.parent_product_type_id
                             select new
                             {
                                 ParentId = parent.product_type_id,
                                 ParentName = parent.product_type_description_vn,
                                 ChildId = (int?)child.product_type_id,
                                 ChildName = child.product_type_description_vn
                             };
                var query2 = from menu in dbContext.Ref_Product_Type
                             where menu.parent_product_type_id == null
                             select new
                             {
                                 ParentId = menu.product_type_id,
                                 ParentName = menu.product_type_description_vn,
                                 ChildId = menu.parent_product_type_id,
                                 ChildName = menu.product_type_description_vn
                             };
                var queryResult = query1.Union(query2)
                                        .ToList();
                if (queryResult != null && queryResult.Count > 0)
                {
                    IList<Menu> result = new List<Menu>();
                    foreach (var menu in queryResult)
                    {
                        Menu menuItem = null;
                        if (!result.Any(p => p.MenuId == menu.ParentId))
                        {
                            menuItem = new Menu()
                            {
                                MenuId = menu.ParentId,
                                MenuDesc = menu.ParentName
                            };
                            result.Add(menuItem);
                        }
                        else
                        {
                            menuItem = result.Where(p => p.MenuId == menu.ParentId)
                                             .SingleOrDefault();
                        }

                        if (menu.ChildId != null)
                        {
                            if (menuItem.ChildMenu == null)
                                menuItem.ChildMenu = new List<Menu>();
                            if (!menuItem.ChildMenu.Any(p => p.MenuId == (menu.ChildId ?? 0)))
                            {
                                menuItem.ChildMenu.Add(new Menu()
                                {
                                    MenuId = menu.ChildId ?? 0,
                                    MenuDesc = menu.ChildName
                                });
                            }
                        }
                    }
                    return result;
                }
                return null;
            }
        }
Example #3
0
        public ActionResult CreateOrder()
        {
            CheckoutViewModel model = this.Session[CHECKOUT_SESSION_KEY] as CheckoutViewModel;
            if (model == null)
            {
                return RedirectToAction("ShowCart", "Product");
            }
            else
            {
                if (model.CurrentStep != CheckoutStep.PaymentInfo)
                {
                    return Index();
                }
                else
                {
                    using (MyStoreEntities db = new MyStoreEntities())
                    {
                        Order newOrder = new Order();
                        newOrder.Order_Status_Codes = db.Order_Status_Codes.Where(p => p.order_status_description == "New").SingleOrDefault();
                        newOrder.date_order_placed = DateTime.Now;

                        if (model.IsPassword ?? true)
                            newOrder.user_id = WebSecurity.CurrentUserId;
                        else
                            newOrder.email_address = model.UserName;
                        newOrder.receipter_name = model.CustomerName;
                        newOrder.order_address = model.OrderAddress;
                        newOrder.phone_number = model.PhoneNumber;
                        newOrder.order_description = model.OrderDescription;
                        var cartDetailsList = CartHelper.GetCartDetail(this.HttpContext);
                        if (cartDetailsList != null)
                        {
                            foreach (var item in cartDetailsList)
                            {
                                Order_Items newItem = new Order_Items();
                                var inventory = db.Products.Where(p => p.product_id == item.ProductId)
                                                           .Select(p => p.product_quantity)
                                                           .SingleOrDefault();
                                if (inventory < item.TotalQuantity)
                                    newItem.Ref_Order_Item_Status_Codes = db.Ref_Order_Item_Status_Codes.Where(p => p.order_item_status_description == "Out Of Stock")
                                                                                                        .SingleOrDefault();
                                else
                                    newItem.Ref_Order_Item_Status_Codes = db.Ref_Order_Item_Status_Codes.Where(p => p.order_item_status_description == "Normal")
                                                                                                        .SingleOrDefault();
                                newItem.product_id = item.ProductId;
                                newItem.order_item_quantity = item.TotalQuantity;
                                newItem.order_item_amount = item.TotalAmount;
                                newOrder.Order_Items.Add(newItem);
                            }
                        }

                        db.Orders.Add(newOrder);
                        db.SaveChanges();
                    }
                    this.Session[CHECKOUT_SESSION_KEY] = null;
                    Utilities.CartHelper.EmptyCart(this.HttpContext);
                    return RedirectToAction("Index", "Product");
                }
            }
        }