예제 #1
0
        public async Task <IActionResult> AddItemsCategory()
        {
            var model = new IndexItemsCategoryViewModel();

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

            return(this.View(model));
        }
예제 #2
0
        public async Task <IActionResult> AddItemsCategory(IndexItemsCategoryViewModel form)
        {
            form.ExistingCategories = await this.service.GetAllPageCategoryNamesAsync();

            if (this.ModelState.IsValid)
            {
                await this.service.AdditemsToCategoryAsync(form);

                return(this.RedirectToAction("Success", "Blacksmith", new { message = "Successfully Added Items To Category" }));
            }
            return(this.View(form));
        }
        public async Task TestIfAdditemsToCategoryThrowsError()
        {
            var context = PCHUBDbContextInMemoryInitializer.InitializeContext();

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

            var form = new IndexItemsCategoryViewModel();


            await Assert.ThrowsAsync <NullReferenceException>(async() =>
            {
                await adminPageService.AdditemsToCategoryAsync(form);
            });
        }
        public async Task TestIfAdditemsToCategoryWorksAccordingly(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 result = await context.PageCategories.FirstOrDefaultAsync(x => x.CategoryName == "Category");

            Assert.Contains(result.ItemsCategories, (ic) => ic.Category == "Price");
            Assert.Contains(result.ItemsCategories, (ic) => EnumerableExtensions.Any(ic.Items));



            foreach (var ic in result.ItemsCategories)
            {
                foreach (var item in ic.Items)
                {
                    Assert.Equal(text, item.Text);
                    Assert.Equal(href, item.Href);
                }
            }
        }
예제 #5
0
        public async Task AdditemsToCategoryAsync(IndexItemsCategoryViewModel form)
        {
            var page = await this.context.Pages.FirstOrDefaultAsync(x => x.PageName == "Index");

            var category = page.Categories.FirstOrDefault(x => x.CategoryName == form.PageCategory);

            category.ItemsCategories.Add(new ItemsCategory
            {
                Category = form.ItemCategory,
            });

            foreach (var cat in form.Items.Where(x => x.Text != null && x.Href != null))
            {
                category.ItemsCategories.FirstOrDefault(x => x.Category == form.ItemCategory).Items.Add(new PageCategoryItems
                {
                    Href = cat.Href,
                    Text = cat.Text
                });
            }

            await this.context.SaveChangesAsync();
        }
        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");
        }