コード例 #1
0
        // GET: ProductManager
        public ActionResult Index()
        {
            string role = CurrentUser.Role;

            if (role != Convert.ToString((byte)UserType.Admin))
            {
                return(RedirectToAction("index", "home"));
            }
            var categories = _categoryService.GetAllCategory();
            PrepareCategoryHash categoryHash = new PrepareCategoryHash(); //kategori ağaç class

            categoryHash.CreateHashTableAndProductTree();                 //kategori ve ürün agacını oluştur
            Hashtable hashTable = categoryHash.GetCategoryTable;
            List <ProductManagmentHomeModel> model = new List <ProductManagmentHomeModel>();

            foreach (var item in categories)                                                 //ürün ağacından verileri modele atama
            {
                ProductGroupTree treeGroup = (ProductGroupTree)hashTable[item.CategoryName]; //product group agacı tipine casting işlemi


                if (treeGroup != null)
                {
                    treeGroup.inOrder(treeGroup.GetRoot());//urun grubu ağacı inorder dolanır
                    var treeNode = treeGroup.ProductNode;
                    model.Add(new ProductManagmentHomeModel {
                        ProductGroupTree = treeNode, CategoryName = item.CategoryName
                    });
                }
            }

            return(View(model));
        }
コード例 #2
0
        public ActionResult TraverByType(string type)
        {
            var categories = _categoryService.GetAllCategory();
            PrepareCategoryHash categoryHash = new PrepareCategoryHash(); //kategori ağaç class

            categoryHash.CreateHashTableAndProductTree();                 //kategori ve ürün agacını oluştur
            Hashtable hashTable = categoryHash.GetCategoryTable;
            List <ProductManagmentHomeModel> model = new List <ProductManagmentHomeModel>();

            ViewBag.type = type;
            List <ProductGroupTreeNode> treeNode1 = new List <ProductGroupTreeNode>();

            foreach (var item in categories)                                                 //ürün ağacından verileri modele atama
            {
                ProductGroupTree treeGroup = (ProductGroupTree)hashTable[item.CategoryName]; //product group agacı tipine casting işlemi


                if (treeGroup != null)
                {
                    if (type == "inorder")
                    {
                        treeGroup.inOrder(treeGroup.GetRoot());
                    }
                    else if (type == "preorder")
                    {
                        treeGroup.preOrder(treeGroup.GetRoot());
                    }
                    else if (type == "postorder")
                    {
                        treeGroup.postOrder(treeGroup.GetRoot());
                    }
                    //urun grubu ağacı inorder dolanır
                    var treeNode = treeGroup.ProductNode;

                    treeNode1.AddRange(treeNode);
                }
            }

            return(View(treeNode1));
        }
コード例 #3
0
        public void CreateHashTableAndProductTree()
        {
            var categories = categoryService.GetAllCategory().Where(x => x.CategoryType == (byte)CategoryType.Category);

            foreach (var item in categories)
            {
                var productGroups            = categoryService.GetCategoriesByCategoryParentId(item.ID);
                ProductGroupTree productTree = new ProductGroupTree();
                foreach (var productGroupItem in productGroups)

                {
                    ProductGroup productGroup = new ProductGroup();
                    var          products     = productGroupItem.CategoryProducts;

                    foreach (var productItem in products)
                    {
                        productGroup.Products.Add(new ProductItemModel {
                            ProductId          = productItem.ID,
                            ProductName        = productItem.ProductName,
                            ModelId            = productItem.ModelId,
                            BrandId            = productItem.BrandId,
                            CategoryId         = productItem.CategoryId,
                            ProductCost        = productItem.ProductCost,
                            ProductPrice       = productItem.ProductPrice,
                            ProductNumber      = productItem.ProductNumber,
                            Status             = productItem.Status,
                            BrandName          = productItem.BrandName,
                            ModelName          = productItem.ModelName,
                            ProductImagePath   = productItem.ProductImagePath,
                            ProductDescription = productItem.ProductDescription
                        });
                    }
                    productGroup.CategoryId       = productGroupItem.ID;
                    productGroup.ProductGroupName = productGroupItem.CategoryName;
                    productTree.insert(productGroup);
                }
                this.GetCategoryTable.Add(item.CategoryName, productTree);
            }
        }
コード例 #4
0
        public ActionResult ProductCategorie(string productGoupName, string PriceBegin, string PriceLast)
        {
            HomeModel1 model = new HomeModel1();

            ViewBag.CategoryName = productGoupName;
            ViewBag.PriceBegin   = PriceBegin;
            ViewBag.PriceLast    = PriceLast;
            var categories = _categoryService.GetAllCategory();
            PrepareCategoryHash categoryHash = new PrepareCategoryHash(); //kategori ağaç class

            categoryHash.CreateHashTableAndProductTree();                 //kategori ve ürün agacını oluştur
            Hashtable hashTable = categoryHash.GetCategoryTable;

            if (string.IsNullOrEmpty(PriceBegin))
            {
                List <ProductItemModel> list = new List <ProductItemModel>();
                var category       = _categoryService.GetAllCategory().Where(x => x.CategoryName == productGoupName).FirstOrDefault();
                var categoryParent = _categoryService.GetCategoryByCategoryId(category.CategoryParentId);

                ProductGroupTree treeGroup = (ProductGroupTree)hashTable[categoryParent.CategoryName]; //product group agacı tipine casting işlemi
                var treeNode = treeGroup.GetProductTreeNodeByProductGroupName(treeGroup.GetRoot(), productGoupName);
                if (treeNode != null)
                {
                    model.Products.AddRange(treeNode.ProductBase.Products);
                }
            }
            else
            {
                decimal priceBegin = Convert.ToDecimal(PriceBegin);
                decimal priceLast  = Convert.ToDecimal(PriceLast);
                if (string.IsNullOrEmpty(productGoupName))
                {
                    var categories1 = _categoryService.GetAllCategory().Where(x => x.CategoryType == (byte)CategoryType.Category);
                    foreach (var item in categories1)
                    {
                        ProductGroupTree treeGroup = (ProductGroupTree)hashTable[item.CategoryName];
                        treeGroup.GetAllProductPriceBetween(treeGroup.GetRoot(), priceBegin, priceLast);
                        model.Products.AddRange(treeGroup.ProductsBetween);
                    }
                }
                else
                {
                    List <ProductItemModel> list = new List <ProductItemModel>();
                    var category       = _categoryService.GetAllCategory().Where(x => x.CategoryName == productGoupName).FirstOrDefault();
                    var categoryParent = _categoryService.GetCategoryByCategoryId(category.CategoryParentId);

                    ProductGroupTree treeGroup = (ProductGroupTree)hashTable[categoryParent.CategoryName];//product group agacı tipine casting işlemi
                    var treeNode = treeGroup.GetProductTreeNodeByProductGroupName(treeGroup.GetRoot(), productGoupName);
                    if (treeNode != null)
                    {
                        foreach (var item in treeNode.ProductBase.Products.ToList())
                        {
                            if (item.ProductPrice > priceBegin && item.ProductPrice < priceLast)
                            {
                                model.Products.AddRange(treeNode.ProductBase.Products);
                            }
                        }
                    }
                }
            }



            return(View(model));
        }