Exemplo n.º 1
0
        public IActionResult Update(CategoriesVariantModel model)
        {
            try
            {
                var optionsData = model.AllOptions.Split(',');
                List <VariantOption> options = new List <VariantOption>();

                var data = db.CategoryVariants.Where(c => c.Id == model.Id).Include(v => v.ProductCategory).Include(c => c.Variant).Include(c => c.Variant.VariantOptions).FirstOrDefault();
                if (data != null)
                {
                    data.ProductCategoryId = model.CategoryId;
                    data.IsSearchOption    = model.IsSearchOption;
                    data.IsMain            = model.IsMain;

                    if (data.Variant != null && data.Variant.Id == model.VariantId)
                    {
                        data.Variant.Name     = model.Name;
                        data.Variant.IsActive = true;
                        db.SaveChanges();

                        if (data.Variant.VariantOptions.Count > 0)
                        {
                            foreach (var item in data.Variant.VariantOptions)
                            {
                                item.IsActive = false;
                            }
                        }

                        if (optionsData.Length > 0)
                        {
                            foreach (var item in optionsData)
                            {
                                VariantOption vop = new VariantOption();
                                if (item != "")
                                {
                                    vop.Name      = item;
                                    vop.IsActive  = true;
                                    vop.VariantId = data.Variant.Id;
                                    options.Add(vop);
                                }
                            }
                            db.VariantOptions.AddRange(options);
                        }
                    }

                    data.ProductCategoryId = model.CategoryId;
                    db.SaveChanges();
                    return(Ok(true));
                }
                else
                {
                    return(Ok(false));
                }
            }
            catch (Exception ex)
            {
                return(Ok(ex));
            }
        }
Exemplo n.º 2
0
        public IActionResult Add(CategoriesVariantModel model)
        {
            try
            {
                if (model != null)
                {
                    var data = db.CategoryVariants.Where(v => v.IsActive == true && v.ProductCategoryId == model.CategoryId).Include(v => v.Variant).ToList();
                    if (data.Any(v => v.Variant.Name.ToLower() == model.Name.ToLower()))
                    {
                        return(Ok("exist"));
                    }

                    //--getting data to string array
                    var optionsData = model.AllOptions.Split(',');
                    List <VariantOption> options = new List <VariantOption>();
                    Variant vari = new Variant();
                    vari.Name     = model.Name;
                    vari.IsActive = true;
                    vari.IsMain   = model.IsMain;
                    db.Variants.Add(vari);
                    db.SaveChanges();
                    if (optionsData.Length > 0)
                    {
                        foreach (var item in optionsData)
                        {
                            VariantOption vop = new VariantOption();
                            if (item != "")
                            {
                                vop.Name      = item;
                                vop.IsActive  = true;
                                vop.VariantId = vari.Id;
                                options.Add(vop);
                            }
                        }
                    }
                    db.VariantOptions.AddRange(options);

                    if (model.CategoryId > 0)
                    {
                        var catData = new CategoryVariant();
                        catData.ProductCategoryId = model.CategoryId;
                        catData.VariantId         = vari.Id;
                        catData.IsActive          = true;
                        catData.IsSearchOption    = model.IsSearchOption;
                        catData.IsMain            = model.IsMain;
                        db.CategoryVariants.Add(catData);
                    }
                    db.SaveChanges();
                }
                return(Ok(true));
            }
            catch (Exception ex)
            {
                return(Ok(ex));
            }
        }
Exemplo n.º 3
0
        public static VariantOption RemoveReference(this VariantOption item)
        {
            var obj = new VariantOption();

            if (item != null)
            {
                obj.Id   = item.Id;
                obj.Name = item.Name;
                obj.ProductVariantOptions = item.ProductVariantOptions;

                obj.VariantId = item.VariantId;
                obj.IsActive  = item.IsActive;
            }
            return(obj);
        }
Exemplo n.º 4
0
        public static VariantOption RemoveReferences(this VariantOption item)
        {
            var obj = new VariantOption();

            obj = item.RemoveReference();
            if (item?.Variant != null)
            {
                obj.Variant = new Variant();
                obj.Variant = item.Variant.RemoveReference();
            }
            if (item?.ProductVariantOptions != null)
            {
                obj.ProductVariantOptions = new List <Models.ProductVariantOption>();
                var templist = item.ProductVariantOptions.Where(x => x.IsActive == true).ToList();
                foreach (var img in templist)
                {
                    obj.ProductVariantOptions.Add(img.RemoveReference());
                }
            }

            return(obj);
        }
Exemplo n.º 5
0
        public List <GetCart> GetCartByCustomerPromo(int CustomerId, string ip)
        {
            var carts   = new List <Cart>();
            var cart    = new Cart();
            var vendors = db.Users.Where(b => b.IsActive == true).ToList();

            if (CustomerId > 0)
            {
                carts = db.Carts.Where(x => x.UserId == CustomerId && x.IsActive == true && x.IsConvertToCheckout == false).Include(x => x.CartItems).ToList();
            }
            //else
            //{
            //    carts = db.Carts.Where(x => x.IpAddress == ip && x.IsActive == true && x.UserId == null && x.IsConvertToCheckout == false).Include(x => x.CartItems).ToList();
            //}
            //to add all cartitems in first cart
            if (carts.Count() > 1)
            {
                cart = carts[0];
                for (int i = 1; i < carts.Count(); i++)
                {
                    var items = db.CartItems.Where(x => x.CartId == carts[i].Id && x.CartId != cart.Id && x.IsActive == true).ToList();
                    foreach (var it in items)
                    {
                        it.CartId = cart.Id;
                    }
                    try
                    {
                        db.Entry(items).State = EntityState.Modified;
                        db.SaveChanges();
                        var allcarts = db.Carts.Where(x => x.IsActive == true && x.CartItems.Count() == 0).Include(x => x.CartItems).ToList();
                        //allcarts.RemoveAll(x => x.Id > 0);
                        db.Entry(allcarts).State = EntityState.Deleted;
                        db.SaveChanges();
                    }
                    catch (Exception ex)
                    { }
                }
            }
            else if (carts.Count() == 1)
            {
                cart = carts[0];
            }


            foreach (var c in cart.CartItems.Where(m => m.IsActive == true))
            {
                c.ProductVariantDetail = db.ProductVariantDetails.Where(x => x.IsActive == true && x.Id == c.ProductVariantDetailId)
                                         .Include(x => x.Product)
                                         .Include(x => x.ProductVariantOptions)
                                         .Include(x => x.ProductImages).FirstOrDefault().RemoveReferences();
            }


            var cartitems = new List <GetCart>();
            var newitems  = cart.CartItems.Where(x => x.IsActive == true).ToList();

            //newitems = DealHelper.calculateDeal(newitems, db);
            foreach (var c in newitems)
            {
                var model = new GetCart();
                model.AdditionalCost = cart.AdditionalCost;
                model.ProductId      = Convert.ToInt32(c.ProductVariantDetail?.ProductId);
                model.Id             = cart.Id;
                if (c.ProductVariantDetail?.ProductImages.Count > 0)
                {
                    model.Image150 = c.ProductVariantDetail?.ProductImages.Where(x => x.IsDefault == true && x.IsActive == true).FirstOrDefault() == null ?
                                     (c.ProductVariantDetail.ProductImages.Where(x => x.IsActive == true).FirstOrDefault().ImagePath150x150 == null? c.ProductVariantDetail.ProductImages.Where(x => x.IsActive == true).FirstOrDefault().ImagePath: c.ProductVariantDetail.ProductImages.Where(x => x.IsActive == true).FirstOrDefault().ImagePath150x150)
                        :(c.ProductVariantDetail.ProductImages.Where(x => x.IsDefault == true && x.IsActive == true).FirstOrDefault().ImagePath150x150 == null? c.ProductVariantDetail.ProductImages.Where(x => x.IsDefault == true && x.IsActive == true).FirstOrDefault().ImagePath: c.ProductVariantDetail.ProductImages.Where(x => x.IsDefault == true && x.IsActive == true).FirstOrDefault().ImagePath150x150);
                }
                model.InStock      = Convert.ToInt32(c.ProductVariantDetail?.InStock);
                model.SellingPrice = Convert.ToInt32(c.ProductVariantDetail.Price);
                var p     = Convert.ToInt32(db.ProductVariantDetails.Where(x => x.Id == c.ProductVariantDetailId).Include(x => x.Product.ProductCategory).FirstOrDefault().Product?.ProductCategory?.ParentId);
                var catid = getparentCat(p);
                model.Commission          = GetCommissionByCategoryId(catid);
                model.Discount            = Convert.ToInt32(c.ProductVariantDetail.Discount);
                model.IpAddress           = cart.IpAddress;
                model.IsConvertToCheckout = cart.IsConvertToCheckout;
                model.Name                   = c.ProductVariantDetail?.Product?.Name;
                model.OrderDate              = cart.OrderDate;
                model.OrderNumber            = cart.OrderNumber;
                model.UserId                 = cart.UserId;
                model.ProductVariantDetailId = c.ProductVariantDetailId;
                if (c.ProductVariantDetail?.ProductVariantOptions != null)
                {
                    foreach (var v in c.ProductVariantDetail?.ProductVariantOptions.Where(x => x.IsActive == true))
                    {
                        var variantid = v.VariantOptionId;
                        var variantop = new VariantOption();
                        variantop = db.VariantOptions.Where(x => x.IsActive == true && x.Id == variantid).Include(x => x.Variant).FirstOrDefault().RemoveReferences();
                        var variantmodel = new VariantOptionModel();
                        variantmodel.Id          = variantop.Id;
                        variantmodel.Name        = variantop.Name;
                        variantmodel.VariantId   = variantop.VariantId;
                        variantmodel.varientName = variantop.Variant?.Name;
                        model.VariantOptions.Add(variantmodel);
                    }
                }
                model.Quantity   = c.Quantity;
                model.CartItemId = c.Id;
                if (c.ProductVariantDetail?.Product.VendorId > 0)
                {
                    var vendor = vendors.Where(v => v.Id == c.ProductVariantDetail?.Product?.VendorId && v.RoleId == (int)RoleType.Vendor).FirstOrDefault();
                    if (vendor != null)
                    {
                        model.VendorName = vendor.DisplayName;
                    }
                }
                cartitems.Add(model);
            }

            cartitems = DealHelper.calculateDeal(cartitems, db);
            cartitems = PriceIncrementHelper.calculatePrice(cartitems, db);
            cartitems = SpinnerPromotion(cartitems, CustomerId);
            return(cartitems);


            var getCart = new List <GetCart>();

            return(getCart);
        }
Exemplo n.º 6
0
        // [Authorize(Roles = "Admin,Customer")]
        public IActionResult CheckOutByCustomer(int CustomerId, string IpAddress, int?orderId = 0)
        {
            var checkouts = new List <Checkout>();

            try
            {
                if (CustomerId > 0)
                {
                    checkouts = db.Checkouts.Where(x => x.UserId == CustomerId && x.IsActive == true)
                                .Include(x => x.CheckoutItems)
                                .Include(x => x.User).ToList();
                }
                //else
                //{
                //    checkouts = db.Checkouts.Where(x => x.IpAddress == IpAddress && x.IsActive == true).Include(x => x.CheckoutItems).OrderByDescending(x=>x.Id).ToList();
                //}
                var productvarientdetails = db.ProductVariantDetails
                                            .Where(x => x.IsActive == true)
                                            .Include(x => x.Product)
                                            .Include(x => x.ProductVariantOptions)
                                            .Include(x => x.ProductImages).ToList();
                if (orderId > 0)
                {
                    checkouts = checkouts.Where(b => b.Id == orderId).ToList();
                }
                foreach (var checkout in checkouts)
                {
                    foreach (var c in checkout?.CheckoutItems.Where(m => m.IsActive == true))
                    {
                        c.ProductVariantDetail = new ProductVariantDetail();
                        if (c.ProductVariantDetailId > 0)
                        {
                            c.ProductVariantDetail = productvarientdetails
                                                     .Where(x => x.Id == c.ProductVariantDetailId).
                                                     FirstOrDefault();
                        }
                    }
                }
                var checkoutitems  = new List <CheckOut>();
                var vendors        = db.Users.Where(b => b.IsActive == true).ToList();
                var trackorders    = db.TrackOrders.ToList();
                var products       = db.Products.Where(x => x.IsActive == true).ToList();
                var varientoptions = db.VariantOptions.Where(x => x.IsActive == true).Include(x => x.Variant).ToList();
                var return1        = db.Return.Where(x => x.IsActive == true).ToList();
                foreach (var checkout in checkouts)
                {
                    foreach (var c in checkout?.CheckoutItems.Where(x => x.IsActive == true))
                    {
                        var model = new CheckOut();
                        if (model.SellerName == null && c?.ProductVariantDetail?.Product?.VendorId > 0)
                        {
                            var vendor = vendors.Where(v => v.Id == c.ProductVariantDetail.Product.VendorId && v.RoleId == (int)RoleType.Vendor).FirstOrDefault();
                            if (vendor != null)
                            {
                                model.SellerName = vendor.FirstName + " " + vendor.LastName;
                            }
                        }
                        model.AdditionalCost = checkout.AdditionalCost;
                        model.Id             = checkout.Id;
                        model.OrderStatus    = trackorders.Where(x => x.OrderId == checkout.Id).FirstOrDefault()?.Status;
                        if (c.ProductVariantDetail?.ProductImages.Count > 0 || c.ProductVariantDetail?.ProductImages != null)
                        {
                            model.Image = c.ProductVariantDetail?.ProductImages
                                          .Where(x => x.IsDefault == true && x.IsActive == true)
                                          .FirstOrDefault() == null?c.ProductVariantDetail?.ProductImages
                                          .Where(x => x.IsActive == true).FirstOrDefault()
                                          .ImagePath : c.ProductVariantDetail?.ProductImages
                                          .Where(x => x.IsDefault == true && x.IsActive == true)
                                          .FirstOrDefault().ImagePath;
                        }
                        model.IpAddress = checkout.IpAddress;
                        if (c.ProductVariantDetail != null)
                        {
                            model.ProductId = products.Where(x => x.Id == c.ProductVariantDetail.ProductId).Select(x => x.Id).FirstOrDefault();
                            //     model.IsConvertToCheckout = checkout.IsConvertToCheckout;
                            if (c.ProductVariantDetail.Product?.Name != null)
                            {
                                model.Name = c.ProductVariantDetail.Product.Name;
                            }
                        }
                        model.OrderDate              = checkout.CheckoutDate;
                        model.OrderNumber            = checkout.InvoiceNumber;
                        model.TotalAmount            = checkout.TotalAmount;
                        model.UserId                 = checkout.UserId;
                        model.ProductVariantDetailId = c.ProductVariantDetailId;
                        if (c.ProductVariantDetail != null)
                        {
                            foreach (var v in c.ProductVariantDetail?.ProductVariantOptions.Where(x => x.IsActive == true))
                            {
                                var variantid = v.VariantOptionId;
                                var variantop = new VariantOption();
                                variantop = varientoptions.Where(x => x.IsActive == true && x.Id == variantid).FirstOrDefault().RemoveReferences();
                                var variantmodel = new VariantOptionModel();
                                variantmodel.Id        = variantop.Id;
                                variantmodel.Name      = variantop.Name;
                                variantmodel.VariantId = variantop.VariantId;
                                if (variantop.Variant?.Name != null)
                                {
                                    variantmodel.varientName = variantop.Variant.Name;
                                }
                                model.VariantOptions.Add(variantmodel);
                            }
                        }
                        model.SellingPrice = c.UnitPrice * c.Quantity;
                        model.Discount     = Convert.ToInt32(c.Discount + c.DealDiscount);
                        // var PriceAfterDiscount = c.UnitPrice - (c.UnitPrice * model.Discount / 100);
                        // model.PriceAfterDiscount = PriceAfterDiscount * c.Quantity;
                        model.PriceAfterDiscount = c.Amount / c.Quantity;
                        model.Quantity           = c.Quantity;
                        model.Amount             = model.PriceAfterDiscount;
                        model.TotalAmount        = checkout.TotalAmount + checkout.ShippingPrice;
                        model.checkoutItemId     = c.Id;
                        var data = return1.Where(x => x.CheckoutItemId == c.Id).FirstOrDefault();
                        if (data != null)
                        {
                            model.IsReturned = true;
                        }
                        else
                        {
                            model.IsReturned = false;
                        }
                        checkoutitems.Add(model);
                    }
                }
                var items = checkoutitems.OrderByDescending(x => x.Id).GroupBy(x => x.OrderNumber).ToList();

                return(Ok(items));
            }
            catch (Exception ex)
            {
                throw ex;
            }

            //  checkoutitems;
        }