示例#1
0
        public virtual ActionResult ShoeDetails(ShoeDetailsViewModel viewModel, FormCollection collection)
        {
            try
            {
                if (collection["submit"].ToString() == "+ ADD TO BAG")
                {
                    #region Add to Cart

                    var salesOrder = new trnsalesorder();

                    using (var context = new TTTEntities())
                    {
                        var query = from customizeModelImage in context.lnkcustomizemodelimages
                                    join customizeModel in context.refcustomizemodels on customizeModelImage.CustomizeModelID equals customizeModel.ID
                                    select new { CustomizeModel = customizeModel, CustomizeModelImage = customizeModelImage };

                        var customizeModelDetails = query.Where(a => a.CustomizeModelImage.SKU == viewModel.ModelImage.SKU).Single();

                        var customerEmail = Util.SessionAccess == null ? "" : Util.SessionAccess.Email;


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

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

                            using (var trans = new TransactionScope())
                            {
                                if (salesOrder == null)
                                {
                                    salesOrder = context.trnsalesorders.Add(new trnsalesorder()
                                    {
                                        StatusID = openStatusID,
                                        Email = customerEmail,
                                        SubTotal = customizeModelDetails.CustomizeModel.Price,
                                        GrandTotal = customizeModelDetails.CustomizeModel.Price,
                                        CreateDT = DateTime.Now
                                    });
                                    context.SaveChanges();

                                    AddSalesOrderItem(salesOrder.ID, viewModel.ModelImage.SKU, viewModel.Size, viewModel.CustomizeModel.Price, context);
                                }
                                else
                                {
                                    var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == salesOrder.ID &&
                                                                                    a.Size == viewModel.Size &&
                                                                                    a.SKU == viewModel.ModelImage.SKU).SingleOrDefault();
                                    if (soItem == null)
                                    {
                                        salesOrder.GrandTotal += customizeModelDetails.CustomizeModel.Price;
                                        salesOrder.UpdateDT = DateTime.Now;

                                        AddSalesOrderItem(salesOrder.ID, viewModel.ModelImage.SKU, viewModel.Size, viewModel.CustomizeModel.Price, context);
                                    }
                                    else
                                    {
                                        soItem.Active = true;
                                        soItem.UpdateDT = DateTime.Now;
                                    }
                                }

                                context.SaveChanges();
                                trans.Complete();
                            }
                        }
                        else // Anonymous user
                        {
                            ConstructShoppingBagCookie();

                            var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == null &&
                                                                            a.Size == viewModel.Size && a.SKU == viewModel.ModelImage.SKU &&
                                                                            a.CookieID == cookieID).SingleOrDefault();
                            if (soItem == null)
                            {
                                AddSalesOrderItem(null, viewModel.ModelImage.SKU, viewModel.Size, viewModel.CustomizeModel.Price, context);
                            }
                            else
                            {
                                soItem.Active = true;
                                soItem.UpdateDT = DateTime.Now;
                            }

                            context.SaveChanges();
                        }
                    }

                    #endregion
                }
                else if (collection["submit"].ToString() == "+ ADD TO WISH LIST")
                {
                    #region Add to Wishlist

                    if (!Request.IsAuthenticated)
                    {
                        return RedirectToAction(MVC.SignIn.Index(Url.Action("ShoeDetails", new { sku = viewModel.ModelImage.SKU })));
                    }

                    AddToWishList(viewModel);

                    #endregion
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            return RedirectToAction("ShoeDetails", new { sku = viewModel.ModelImage.SKU });
        }
示例#2
0
        public virtual ActionResult AddToCartNormal(int modelSizeID, string sku)
        {
            try
            {
                ConstructShoppingBagCookie();

                #region Add to Cart

                var salesOrder = new trnsalesorder();

                using (var context = new TTTEntities())
                {
                    var query = from modelSize in context.lnkmodelsizes
                                join model in context.refmodels on modelSize.ModelID equals model.ID
                                select new { ModelSizeID = modelSize.ID, Model = model };

                    var modelDetails = query.Where(a => a.ModelSizeID == modelSizeID).Single();
                    var modelPrice = (modelDetails.Model.DiscountPrice.HasValue && modelDetails.Model.DiscountPrice.Value > 0) ?
                                    modelDetails.Model.DiscountPrice.Value : modelDetails.Model.Price;

                    var customerEmail = Util.SessionAccess == null ? "" : Util.SessionAccess.Email; ;

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

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

                        using (var trans = new TransactionScope())
                        {
                            if (salesOrder == null)
                            {
                                salesOrder = context.trnsalesorders.Add(new trnsalesorder()
                                {
                                    StatusID = openStatusID,
                                    Email = customerEmail,
                                    SubTotal = modelPrice,
                                    GrandTotal = modelPrice,
                                    CreateDT = DateTime.Now
                                });
                                context.SaveChanges();

                                AddNormalSalesOrderItem(salesOrder.ID, modelSizeID, sku, modelPrice, context);
                            }
                            else
                            {
                                // update sales order grand total
                                salesOrder.GrandTotal += modelPrice;

                                var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == salesOrder.ID &&
                                                                                a.ModelSizeID == modelSizeID).FirstOrDefault();
                                if (soItem == null)
                                {
                                    salesOrder.UpdateDT = DateTime.Now;

                                    AddNormalSalesOrderItem(salesOrder.ID, modelSizeID, sku, modelPrice, context);
                                }
                                else
                                {
                                    soItem.Active = true;
                                    soItem.UpdateDT = DateTime.Now;
                                }
                            }

                            context.SaveChanges();
                            trans.Complete();
                        }
                    }
                    else
                    {
                        ConstructShoppingBagCookie();

                        var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == null &&
                                                                        a.ModelSizeID == modelSizeID &&
                                                                        a.CookieID == cookieID).FirstOrDefault();
                        if (soItem == null)
                        {
                            AddNormalSalesOrderItem(null, modelSizeID, sku, modelPrice, context);
                        }
                        else
                        {
                            soItem.Active = true;
                            soItem.UpdateDT = DateTime.Now;
                        }

                        context.SaveChanges();
                    }
                }

                #endregion
            }
            catch (Exception ex)
            {
                throw;
            }

            return RedirectToAction("Index");
        }
示例#3
0
        public virtual ActionResult AddToCartCustomize(string size, string sku)
        {
            try
            {
                #region Add to Cart

                var salesOrder = new trnsalesorder();

                using (var context = new TTTEntities())
                {
                    var query = from customizeModelImage in context.lnkcustomizemodelimages
                                join customizeModel in context.refcustomizemodels on customizeModelImage.CustomizeModelID equals customizeModel.ID
                                select new { CustomizeModel = customizeModel, CustomizeModelImage = customizeModelImage };

                    var customizeModelDetails = query.Where(a => a.CustomizeModelImage.SKU == sku).Single();

                    var customerEmail = Util.SessionAccess == null ? "" : Util.SessionAccess.Email;


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

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

                        using (var trans = new TransactionScope())
                        {
                            if (salesOrder == null)
                            {
                                salesOrder = context.trnsalesorders.Add(new trnsalesorder()
                                {
                                    StatusID = openStatusID,
                                    Email = customerEmail,
                                    SubTotal = customizeModelDetails.CustomizeModel.Price,
                                    GrandTotal = customizeModelDetails.CustomizeModel.Price,
                                    CreateDT = DateTime.Now
                                });
                                context.SaveChanges();

                                AddCustomizeSalesOrderItem(salesOrder.ID, sku, size, customizeModelDetails.CustomizeModel.Price, context);
                            }
                            else
                            {
                                var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == salesOrder.ID &&
                                                                                a.Size == size &&
                                                                                a.SKU == sku).FirstOrDefault();
                                if (soItem == null)
                                {
                                    salesOrder.GrandTotal += customizeModelDetails.CustomizeModel.Price;
                                    salesOrder.UpdateDT = DateTime.Now;

                                    AddCustomizeSalesOrderItem(salesOrder.ID, sku, size, customizeModelDetails.CustomizeModel.Price, context);
                                }
                                else
                                {
                                    soItem.Active = true;
                                    soItem.UpdateDT = DateTime.Now;
                                }
                            }

                            context.SaveChanges();
                            trans.Complete();
                        }
                    }
                    else // Anonymous user
                    {
                        ConstructShoppingBagCookie();

                        var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == null &&
                                                                        a.Size == size && a.SKU == sku &&
                                                                        a.CookieID == cookieID).FirstOrDefault();
                        if (soItem == null)
                        {
                            AddCustomizeSalesOrderItem(null, sku, size, customizeModelDetails.CustomizeModel.Price, context);
                        }
                        else
                        {
                            soItem.Active = true;
                            soItem.UpdateDT = DateTime.Now;
                        }

                        context.SaveChanges();
                    }
                }

                #endregion

            }
            catch (Exception ex)
            {
                throw;
            }
            return RedirectToAction("Index");
        }
示例#4
0
        public virtual ActionResult Details(ModelDetailsViewModel viewModel, FormCollection collection)
        {
            try
            {
                if (collection["submit"].ToString() == "+ ADD TO BAG")
                {
                    ConstructShoppingBagCookie();

                    #region Add to Cart

                    var salesOrder = new trnsalesorder();

                    using (var context = new TTTEntities())
                    {
                        var query = from modelSize in context.lnkmodelsizes
                                    join model in context.refmodels on modelSize.ModelID equals model.ID
                                    select new { ModelSizeID = modelSize.ID, Model = model };

                        var modelDetails = query.Where(a => a.ModelSizeID == viewModel.ModelSizeID).Single();

                        var discountPrice = modelDetails.Model.DiscountPrice.HasValue ? modelDetails.Model.DiscountPrice.Value : 0;

                        var modelPrice = discountPrice != 0 ? modelDetails.Model.DiscountPrice.Value : modelDetails.Model.Price;

                        var customerEmail = Util.SessionAccess == null ? "" : Util.SessionAccess.Email; ;

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

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

                            using (var trans = new TransactionScope())
                            {
                                if (salesOrder == null)
                                {
                                    salesOrder = context.trnsalesorders.Add(new trnsalesorder()
                                    {
                                        StatusID = openStatusID,
                                        Email = customerEmail,
                                        SubTotal = 0,
                                        GrandTotal = modelPrice,
                                        CreateDT = DateTime.Now
                                    });
                                    context.SaveChanges();

                                    AddSalesOrderItem(salesOrder.ID, viewModel.ModelSizeID, viewModel.SKU, modelPrice, context);
                                }
                                else
                                {
                                    // update sales order grand total
                                    salesOrder.GrandTotal += modelPrice;

                                    var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == salesOrder.ID &&
                                                                                    a.ModelSizeID == viewModel.ModelSizeID).SingleOrDefault();
                                    if (soItem == null)
                                    {
                                        salesOrder.UpdateDT = DateTime.Now;

                                        AddSalesOrderItem(salesOrder.ID, viewModel.ModelSizeID, viewModel.SKU, modelPrice, context);
                                    }
                                    else
                                    {
                                        soItem.Active = true;
                                        soItem.UpdateDT = DateTime.Now;
                                    }
                                }

                                context.SaveChanges();
                                trans.Complete();
                            }
                        }
                        else
                        {
                            ConstructShoppingBagCookie();

                            var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == null &&
                                                                            a.ModelSizeID == viewModel.ModelSizeID &&
                                                                            a.CookieID == cookieID).SingleOrDefault();
                            if (soItem == null)
                            {
                                AddSalesOrderItem(null, viewModel.ModelSizeID, viewModel.SKU, modelPrice, context);
                            }
                            else
                            {
                                soItem.Active = true;
                                soItem.UpdateDT = DateTime.Now;
                            }

                            context.SaveChanges();
                        }
                    }

                    #endregion
                }
                else if (collection["submit"].ToString() == "+ ADD TO WISH LIST")
                {
                    #region Add to Wishlist

                    if (!Request.IsAuthenticated)
                    {
                        return RedirectToAction(MVC.SignIn.Index(Url.Action("Details", new { modelID = viewModel.ModelID, colourDescID = viewModel.ColourDescID })));
                    }

                    AddToWishList(viewModel);

                    #endregion
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            return RedirectToAction("Details", new { modelID = viewModel.ModelID, colourDescID = viewModel.ColourDescID });
        }