Example #1
0
        private void SeedRootCategory()
        {
            int      id           = dataContainer.NextCategoryId();
            Category rootCategory = new Category
            {
                Id             = id,
                Name           = Category.RootName,
                NameNormalized = Normalizer.Normalize(Category.RootName),
                Title          = "Корень",
                SortNumber     = id
            };

            dataContainer.RootCategory = rootCategory;
            dataContainer.Categories.Add(rootCategory);
        }
Example #2
0
        private void SeedCategory(
            Category parent, JToken categoryToken, IList <int> numbers,
            string instanceTitle = null)
        {
            int repeatCount = 1;
            var repeat      = categoryToken["Repeat"];

            if (repeat != null)
            {
                repeatCount = (int)repeat;
            }

            for (int j = 0; j < repeatCount; j++)
            {
                int    id   = dataContainer.NextCategoryId();
                string name = PrepareText((string)categoryToken["Name"], numbers);
                string thisMaterialTypeTitle = (string)categoryToken["MaterialTypeTitle"] ?? instanceTitle;

                Category category = new Category
                {
                    Id                = id,
                    ParentId          = parent?.Id,
                    Name              = name,
                    NameNormalized    = Normalizer.Normalize(name),
                    Title             = PrepareText((string)categoryToken["Title"], numbers),
                    Header            = PrepareText((string)categoryToken["Header"], numbers),
                    MaterialTypeTitle = thisMaterialTypeTitle,
                    SortNumber        = id
                };

                if (categoryToken["IsMaterialsContainer"] != null)
                {
                    category.IsMaterialsContainer = (bool)categoryToken["IsMaterialsContainer"];
                }

                if (categoryToken["LayoutName"] != null)
                {
                    category.LayoutName = (string)categoryToken["LayoutName"];
                }

                var sectionTypeName = categoryToken["SectionType"];
                if (sectionTypeName != null)
                {
                    var sectionType =
                        dataContainer.SectionTypes.FirstOrDefault(x => x.Name == (string)sectionTypeName);
                    category.SectionTypeId = sectionType.Id;
                    category.SectionType   = sectionType;
                }


                dataContainer.Categories.Add(category);

                if (categoryToken["SubCategories"] != null)
                {
                    var numbers1 = new List <int> {
                        1
                    };
                    numbers1.AddRange(numbers);

                    foreach (JToken subCategoryToken in (JArray)categoryToken["SubCategories"])
                    {
                        SeedCategory(category, subCategoryToken, numbers1, thisMaterialTypeTitle);
                    }
                }

                numbers[0]++;
            }
        }
Example #3
0
        private void SeedCategory(
            Category parent, JToken categoryToken, IList <int> numbers,
            string instanceTitle = null)
        {
            int repeatCount = 1;
            var repeat      = categoryToken["Repeat"];

            if (repeat != null)
            {
                repeatCount = (int)repeat;
            }

            for (int j = 0; j < repeatCount; j++)
            {
                int    id   = dataContainer.NextCategoryId();
                string name = PrepareText((string)categoryToken["Name"], numbers);
                string thisMaterialTypeTitle = (string)categoryToken["MaterialTypeTitle"] ?? instanceTitle;

                Category category = new Category
                {
                    Id                = id,
                    ParentId          = parent?.Id,
                    Name              = name,
                    NameNormalized    = Normalizer.Normalize(name),
                    Title             = PrepareText((string)categoryToken["Title"], numbers),
                    Header            = PrepareText((string)categoryToken["Header"], numbers),
                    MaterialTypeTitle = thisMaterialTypeTitle,
                    SortNumber        = id
                };

                if (categoryToken["IsMaterialsContainer"] != null)
                {
                    category.IsMaterialsContainer = (bool)categoryToken["IsMaterialsContainer"];
                }

                if (categoryToken["LayoutName"] != null)
                {
                    category.LayoutName = (string)categoryToken["LayoutName"];
                }

                if (categoryToken["IsMaterialsNameEditable"] != null)
                {
                    category.IsMaterialsNameEditable = (bool)categoryToken["IsMaterialsNameEditable"];
                }

                if (categoryToken["MaterialsPreviewGeneratorName"] != null)
                {
                    category.MaterialsPreviewGeneratorName = (string)categoryToken["MaterialsPreviewGeneratorName"];
                }

                if (categoryToken["MaterialsSubTitleCreateType"] != null)
                {
                    if (Enum.TryParse((string)categoryToken["MaterialsSubTitleCreateType"],
                                      out MaterialsSubTitleInputType materialsSubTitleCreateType))
                    {
                        category.MaterialsSubTitleInputType = materialsSubTitleCreateType;
                    }
                }


                dataContainer.Categories.Add(category);

                if (categoryToken["SubCategories"] != null)
                {
                    var numbers1 = new List <int> {
                        1
                    };
                    numbers1.AddRange(numbers);

                    foreach (JToken subCategoryToken in (JArray)categoryToken["SubCategories"])
                    {
                        SeedCategory(category, subCategoryToken, numbers1, thisMaterialTypeTitle);
                    }
                }

                numbers[0]++;
            }
        }
Example #4
0
        private void SeedCategory(
            Category parent, JToken categoryToken, IList <int> numbers,
            string instanceTitle = null)
        {
            int repeatCount = 1;
            var repeat      = categoryToken["Repeat"];

            if (repeat != null)
            {
                repeatCount = (int)repeat;
            }

            for (int j = 0; j < repeatCount; j++)
            {
                int    id   = dataContainer.NextCategoryId();
                string name = PrepareText((string)categoryToken["Name"], numbers);

                string thisMaterialTypeTitle = (string)categoryToken["MaterialTypeTitle"] ?? instanceTitle;

                Category category = new Category
                {
                    Id                = id,
                    ParentId          = parent?.Id,
                    Name              = name,
                    NameNormalized    = Normalizer.Normalize(name),
                    Title             = PrepareText((string)categoryToken["Title"], numbers),
                    Header            = PrepareText((string)categoryToken["Header"], numbers),
                    MaterialTypeTitle = thisMaterialTypeTitle,
                    SortNumber        = id
                };

                if (categoryToken["IsMaterialsContainer"] != null)
                {
                    category.IsMaterialsContainer = (bool)categoryToken["IsMaterialsContainer"];
                }


                if (categoryToken["LayoutName"] != null)
                {
                    category.LayoutName = (string)categoryToken["LayoutName"];
                }

                if (categoryToken["Token"] != null)
                {
                    category.Token = (string)categoryToken["Token"];
                }

                if (categoryToken["IsMaterialsNameEditable"] != null)
                {
                    category.IsMaterialsNameEditable = (bool)categoryToken["IsMaterialsNameEditable"];
                }

                if (categoryToken["AppendTokenToSubCatsPath"] != null)
                {
                    category.AppendTokenToSubCatsPath = (bool)categoryToken["AppendTokenToSubCatsPath"];
                }

                if (categoryToken["ShowInBreadcrumbs"] != null)
                {
                    category.ShowInBreadcrumbs = (bool)categoryToken["ShowInBreadcrumbs"];
                }
                else
                {
                    category.ShowInBreadcrumbs = true;
                }

                dataContainer.Categories.Add(category);

                if (categoryToken["SubCategories"] != null)
                {
                    var numbers1 = new List <int> {
                        1
                    };
                    numbers1.AddRange(numbers);

                    foreach (JToken subCategoryToken in (JArray)categoryToken["SubCategories"])
                    {
                        SeedCategory(category, subCategoryToken, numbers1, thisMaterialTypeTitle);
                    }
                }

                numbers[0]++;
            }
        }