示例#1
0
        public List <Product> GetProductWithDetails(int id)

        {
            try
            {
                Product mainProduct = _shoppingCartDbContext.Products.FirstOrDefault(p => p.Id == id);
                List <ProductDetails> subProduct = _shoppingCartDbContext.ProductDetails.Where(p => p.ProductId == id && p.Stock > 0).ToList();

                List <Product> returnProducts = new List <Product>();

                foreach (ProductDetails p in subProduct)
                {
                    Product addProduct = new Product();
                    addProduct.BaseProduct  = mainProduct.Id;
                    addProduct.Id           = p.Id;
                    addProduct.Name         = mainProduct.Name;
                    addProduct.CategoryId   = mainProduct.CategoryId;
                    addProduct.Description  = mainProduct.Description;
                    addProduct.Discount     = mainProduct.Discount;
                    addProduct.Price        = mainProduct.Price;
                    addProduct.DefaultImage = p.Image;
                    addProduct.Size         = ProductSize.GetName(typeof(ProductSize), p.Size);
                    addProduct.Stock        = p.Stock;
                    returnProducts.Add(addProduct);
                }

                return(returnProducts);
            }
            catch
            {
                throw;
            }
        }
示例#2
0
        public List <Product> GetSimilarProducts(int id)
        {
            try
            {
                var            result         = _shoppingCartDbContext.Products.Where(p => p.CategoryId == id).Take(5).ToList();
                List <Product> returnProducts = new List <Product>();

                foreach (Product p in result)
                {
                    Product addProduct = new Product();
                    addProduct = p;
                    var result_ = _shoppingCartDbContext.ProductDetails.FirstOrDefault(pr => pr.ProductId == addProduct.Id && pr.Stock > 0);
                    if (result_ != null)
                    {
                        addProduct.BaseProduct  = p.Id;
                        addProduct.Id           = result_.Id;
                        addProduct.DefaultImage = result_.Image;
                        addProduct.Size         = ProductSize.GetName(typeof(ProductSize), result_.Size);
                        addProduct.Stock        = result_.Stock;
                        returnProducts.Add(addProduct);
                    }
                }
                return(returnProducts);
            }
            catch
            {
                throw;
            }
        }
示例#3
0
        public List <Product> GetNewArrivalProducts(string category)
        {
            try
            {
                if (category == "all")
                {
                    List <Product> products       = _shoppingCartDbContext.Products.OrderByDescending(p => p.Id).Take(5).ToList();
                    List <Product> returnProducts = new List <Product>();

                    foreach (Product p in products)
                    {
                        Product addProduct = new Product();
                        addProduct = p;
                        var result_ = _shoppingCartDbContext.ProductDetails.FirstOrDefault(pr => pr.ProductId == addProduct.Id && pr.Stock > 0);
                        if (result_ != null)
                        {
                            addProduct.BaseProduct  = p.Id;
                            addProduct.Id           = result_.Id;
                            addProduct.DefaultImage = result_.Image;
                            addProduct.Size         = ProductSize.GetName(typeof(ProductSize), result_.Size);
                            addProduct.Stock        = result_.Stock;
                            returnProducts.Add(addProduct);
                        }
                    }
                    return(returnProducts);
                }
                else
                {
                    int[]          categoryId     = _shoppingCartDbContext.Categories.Where(c => c.Title.StartsWith(category)).Select(c => c.Id).ToArray();
                    List <Product> products       = _shoppingCartDbContext.Products.Where(p => categoryId.Contains(p.CategoryId)).OrderByDescending(p => p.Id).Take(5).ToList();
                    List <Product> returnProducts = new List <Product>();

                    foreach (Product p in products)
                    {
                        Product addProduct = new Product();
                        addProduct = p;
                        var result_ = _shoppingCartDbContext.ProductDetails.FirstOrDefault(pr => pr.ProductId == addProduct.Id && pr.Stock > 0);
                        if (result_ != null)
                        {
                            addProduct.BaseProduct  = p.Id;
                            addProduct.Id           = result_.Id;
                            addProduct.DefaultImage = result_.Image;
                            addProduct.Size         = ProductSize.GetName(typeof(ProductSize), result_.Size);
                            addProduct.Stock        = result_.Stock;
                            returnProducts.Add(addProduct);
                        }
                    }
                    return(returnProducts);
                }
            }
            catch
            {
                throw;
            }
        }
示例#4
0
        public ProductList GetProductsBySearch(string searchKey, int pageIndex)
        {
            try
            {
                if (!string.IsNullOrEmpty(searchKey))
                {
                    int skip = (pageIndex - 1) * _productsForPage;

                    int[] categoryIds = _shoppingCartDbContext.Categories.Where(c => c.Title.Contains(searchKey) || c.Description.Contains(searchKey) ||
                                                                                c.Keyword.Contains(searchKey)).Select(c => c.Id).ToArray();

                    int noOfRecords = _shoppingCartDbContext.Products.Where(p => p.Name.Contains(searchKey) || p.Description.Contains(searchKey))
                                      .Union(_shoppingCartDbContext.Products.Where(p => categoryIds.Contains(p.CategoryId))).Count();


                    List <Product> result = _shoppingCartDbContext.Products.Where(p => p.Name.Contains(searchKey) || p.Description.Contains(searchKey))
                                            .Union(_shoppingCartDbContext.Products.Where(p => categoryIds.Contains(p.CategoryId))).Skip(skip).Take(_productsForPage).ToList();

                    List <Product> returnProducts = new List <Product>();

                    foreach (Product p in result)
                    {
                        Product addProduct = new Product();
                        addProduct = p;
                        var result_ = _shoppingCartDbContext.ProductDetails.FirstOrDefault(pr => pr.ProductId == addProduct.Id && pr.Stock > 0);
                        if (result_ != null)
                        {
                            addProduct.BaseProduct  = p.Id;
                            addProduct.Id           = result_.Id;
                            addProduct.DefaultImage = result_.Image;
                            addProduct.Size         = ProductSize.GetName(typeof(ProductSize), result_.Size);
                            addProduct.Stock        = result_.Stock;
                            returnProducts.Add(addProduct);
                        }
                    }

                    return(new ProductList
                    {
                        NoOfProducts = noOfRecords,
                        ListOfProducts = returnProducts
                    });
                }
                return(null);
            }
            catch
            {
                throw;
            }
        }
示例#5
0
        public ProductList GetProductsByCategory(string searchCategory, int pageIndex)
        {
            try
            {
                if (searchCategory != null)
                {
                    int skip  = (pageIndex - 1) * _productsForPage;
                    var query = _shoppingCartDbContext.Categories.Where(c => c.Title.Contains(searchCategory)).FirstOrDefault();
                    if (query != null)
                    {
                        int            categoryId     = query.Id;
                        int            noOfRecords    = _shoppingCartDbContext.Products.Where(p => p.CategoryId == categoryId).Count();
                        var            result         = _shoppingCartDbContext.Products.Where(p => p.CategoryId == categoryId).Skip(skip).Take(_productsForPage).ToList();
                        List <Product> returnProducts = new List <Product>();

                        foreach (Product p in result)
                        {
                            Product addProduct = new Product();
                            addProduct = p;
                            var result_ = _shoppingCartDbContext.ProductDetails.FirstOrDefault(pr => pr.ProductId == addProduct.Id && pr.Stock > 0);
                            if (result_ != null)
                            {
                                addProduct.BaseProduct  = p.Id;
                                addProduct.Id           = result_.Id;
                                addProduct.DefaultImage = result_.Image;
                                addProduct.Size         = ProductSize.GetName(typeof(ProductSize), result_.Size);
                                addProduct.Stock        = result_.Stock;
                                returnProducts.Add(addProduct);
                            }
                        }

                        return(new ProductList
                        {
                            NoOfProducts = noOfRecords,
                            ListOfProducts = result
                        });
                    }
                    return(null);
                }
                return(null);
            }
            catch
            {
                throw;
            }
        }
示例#6
0
        public ProductList GetAllProducts(int pageIndex)
        {
            try
            {
                int            skip           = (pageIndex - 1) * _productsForPage;
                int            noOfRecords    = _shoppingCartDbContext.Products.Count();
                List <Product> products       = _shoppingCartDbContext.Products.Skip(skip).Take(_productsForPage).ToList();
                List <Product> returnProducts = new List <Product>();

                foreach (Product p in products)
                {
                    Product addProduct = new Product();
                    addProduct = p;
                    var result_ = _shoppingCartDbContext.ProductDetails.FirstOrDefault(pr => pr.ProductId == addProduct.Id && pr.Stock > 0);
                    if (result_ != null)
                    {
                        addProduct.BaseProduct  = p.Id;
                        addProduct.Id           = result_.Id;
                        addProduct.DefaultImage = result_.Image;
                        addProduct.Size         = ProductSize.GetName(typeof(ProductSize), result_.Size);
                        addProduct.Stock        = result_.Stock;
                        returnProducts.Add(addProduct);
                    }
                }

                return(new ProductList
                {
                    NoOfProducts = noOfRecords,
                    ListOfProducts = products
                });
            }
            catch
            {
                throw;
            }
        }