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(); }
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"); }); }
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"); }