public async Task EditIndexPageCategoryAsync(EditIndexCategoryViewModel form, string previousCategoryName)
        {
            var page = await this.context.Pages.FirstOrDefaultAsync(x => x.PageName == "Index");

            foreach (var pc in form.PageCategory)
            {
                var pageCategory = page.Categories.FirstOrDefault(x => x.CategoryName == previousCategoryName);

                pageCategory.AllHref      = pc.AllHref;
                pageCategory.AllName      = pc.AllName;
                pageCategory.CategoryName = pc.CategoryName;

                for (int i = 0; i < pc.ItemCategories.Count; i++)
                {
                    var ic           = pc.ItemCategories[i];
                    var itemCategory = pageCategory.ItemsCategories.ToList()[i];
                    itemCategory.Category = ic.ItemCategory;

                    for (int z = 0; z < itemCategory.Items.Count; z++)
                    {
                        var item = itemCategory.Items.ToList()[z];

                        item.Text = ic.Items[z].Text;

                        item.Href = ic.Items[z].Href;
                    }
                }
            }

            await this.context.SaveChangesAsync();
        }
Esempio n. 2
0
        public async Task <IActionResult> EditIndexCategory(EditIndexCategoryViewModel form)
        {
            if (this.ModelState.IsValid)
            {
                await this.service.EditIndexPageCategoryAsync(form, form.Category);

                return(this.RedirectToAction("Success", "Blacksmith", new { message = "Successfully Edited Index Page Category" }));
            }

            return(this.View("EditIndexCategory", new { category = form.Category }));
        }
        public async Task TestIfEditIndexPageCategoryThrowsError()
        {
            var context = PCHUBDbContextInMemoryInitializer.InitializeContext();

            var adminPageService = new Areas.Administration.Services.AdminIndexPageServices(context);

            var form = new EditIndexCategoryViewModel();

            await Assert.ThrowsAsync <NullReferenceException>(async() =>
            {
                await adminPageService.EditIndexPageCategoryAsync(form, "RandomCategory");
            });
        }
Esempio n. 4
0
        public async Task <IActionResult> EditIndexCategory(string category)
        {
            var model = new EditIndexCategoryViewModel();

            model.Categories = await this.service.GetAllPageCategoryNamesAsync();

            if (category != null)
            {
                var categ = await this.service.GetIndexCategoryAsync(category);

                model.Category = category;
                var itemCategories = new List <EditItemCategoriesViewModel>();

                model.PageCategory = new List <EditCategoryViewModel>();
                foreach (var pc in categ)
                {
                    var pageCategory = new EditCategoryViewModel();
                    pageCategory.AllHref        = pc.AllHref;
                    pageCategory.AllName        = pc.AllName;
                    pageCategory.CategoryName   = pc.CategoryName;
                    pageCategory.ItemCategories = new List <EditItemCategoriesViewModel>();
                    foreach (var ic in pc.ItemsCategories)
                    {
                        var itemCategory = new EditItemCategoriesViewModel {
                            ItemCategory = ic.Category,
                        };

                        itemCategory.Items = new List <IndexPageItemsViewModel>();

                        foreach (var item in ic.Items)
                        {
                            itemCategory.Items.Add(new IndexPageItemsViewModel {
                                Text = item.Text, Href = item.Href
                            });
                        }

                        pageCategory.ItemCategories.Add(itemCategory);
                    }

                    model.PageCategory.Add(pageCategory);
                }

                model.DisplayForm = true;
            }

            return(this.View(model));
        }
        public async Task TestIfEditIndexPageCategoryWorksAccordingly(string text, string href)
        {
            var context = PCHUBDbContextInMemoryInitializer.InitializeContext();

            var adminPageService = new Areas.Administration.Services.AdminIndexPageServices(context);

            await adminPageService.CreateIndexPageAsync("Index");


            var formCategory = new CreatePageCategoryViewModel();

            formCategory.AllHref      = "AllHref";
            formCategory.AllName      = "AllLaptops";
            formCategory.CategoryName = "Category";

            await adminPageService.AddIndexPageCategoryAsync(formCategory, "pictureUrl", "PictureName");

            var form = new IndexItemsCategoryViewModel();

            form.PageCategory = "Category";

            form.ItemCategory = "Price";

            form.Items = new List <IndexPageItemsViewModel>();

            form.Items.Add(new IndexPageItemsViewModel
            {
                Text = text,
                Href = href,
            });

            await adminPageService.AdditemsToCategoryAsync(form);

            var model = new EditIndexCategoryViewModel();

            model.Category     = "Category";
            model.PageCategory = new List <EditCategoryViewModel>();

            var itemCategories = new List <EditItemCategoriesViewModel>();
            var items          = new List <IndexPageItemsViewModel>();

            items.Add(new IndexPageItemsViewModel
            {
                Text = "TextRand",
                Href = "HrefRand",
            });
            itemCategories.Add(new EditItemCategoriesViewModel
            {
                ItemCategory = "Price",
                Items        = items
            });
            model.PageCategory.Add(new EditCategoryViewModel
            {
                CategoryName   = "NewCategory",
                AllHref        = "NewAllHref",
                AllName        = "AllName",
                ItemCategories = itemCategories
            });


            await adminPageService.EditIndexPageCategoryAsync(model, "Category");

            var result = await context.Pages.FirstOrDefaultAsync(x => x.PageName == "Index");

            Assert.NotNull(result);

            Assert.Contains(result.Categories, (pc) => pc.CategoryName == "NewCategory");
            Assert.Contains(result.Categories, (pc) => pc.AllHref == "NewAllHref");
            Assert.Contains(result.Categories, (pc) => pc.AllName == "AllName");
        }