public async Task UpdateCourseDesignAsync(CourseDesignViewModel model) { await UpdateAsync(model.CourseDesign); var courseSeminars = await _context.CourseSeminars.ToListAsync(); model.CheckList.ForEach(async item => { var existingEntry = courseSeminars .FirstOrDefault(x => x.CourseDesignId == model.CourseDesign.CourseDesignId && x.SeminarId == item.Id); if (!item.IsSelected && existingEntry != null) { await RemoveAsync(existingEntry); } if (item.IsSelected && existingEntry == null) { CourseSeminar cs = new CourseSeminar() { CourseDesignId = model.CourseDesign.CourseDesignId, SeminarId = item.Id }; _context.Add(cs); } }); await _context.SaveChangesAsync(); }
public async Task <IActionResult> Edit(int id, CourseDesignViewModel model) { int courseDesignId = model.CourseDesign.CourseDesignId; if (id != courseDesignId) { return(NotFound()); } if (ModelState.IsValid) { if (model.Uid != "") { model.CourseDesign.Name = model.CourseDesign.Name.Prepend(model.Uid); } try { await _db.UpdateCourseDesignAsync(model); } catch (Exception) { return(NotFound()); } return(Redirect(model.LastPage)); } return(View(model)); }
public async Task <IActionResult> DeleteConfirmed(CourseDesignViewModel model) { var courseDesign = await _db.GetAsync <CourseDesign>(model.CourseDesign.CourseDesignId); await _db.RemoveCourseDesignAsync(courseDesign); return(Redirect(model.LastPage)); }
public async Task <IActionResult> Create(CourseDesignViewModel model) { if (ModelState.IsValid) { await _db.AddCourseDesignAsync(model); return(Redirect(model.LastPage)); } return(View(model)); }
public async Task Create_stores_new_CourseDesign() { var courseDesignView = new CourseDesignViewModel(CourseDesign7, "http://www.completevocaltraining.nl") { CheckList = new List <CheckedId>() }; await Controller.Create(courseDesignView); Resultcontext.CourseDesigns.Should().HaveCount(4); }
public async Task Edit_returns_NotFound_if_Id_changes() { var cd = Context.CourseDesigns.FirstOrDefault(x => x.CourseDesignId == 1); var courseDesignView = new CourseDesignViewModel { CourseDesign = cd, CheckList = new List <CheckedId>() }; var result = await Controller.Edit(8, courseDesignView); result.Should().BeOfType <NotFoundResult>(); }
public async Task Create_stores_CourseDesign_with_correct_properties() { var courseDesignView = new CourseDesignViewModel(CourseDesign7, "http://www.completevocaltraining.nl") { CheckList = new List <CheckedId>() }; await Controller.Create(courseDesignView); Resultcontext.CourseDesigns.FirstOrDefault(x => x.CourseDesignId == 7) .Should().BeEquivalentTo(CourseDesign7); }
public async Task Edit_returns_NotFound_if_concurrencyException_occurs() { var cd = await Context.CourseDesigns.FirstOrDefaultAsync(x => x.CourseDesignId == 1); var seminars = await Context.Seminars.ToListAsync(); var courseDesignView = new CourseDesignViewModel(cd, seminars); Context.Remove(cd); await Context.SaveChangesAsync(); var result = await Controller.Edit(1, courseDesignView); result.Should().BeOfType <NotFoundResult>(); }
public async Task Edit_updates_CourseDesign_with_correct_CourseSeminars() { var cd = Context.CourseDesigns.FirstOrDefault(x => x.CourseDesignId == 1); var seminars = await Context.Seminars.ToListAsync(); var courseDesignView = new CourseDesignViewModel(cd, seminars, "", "http://www.completevocaltraining.nl"); courseDesignView.CheckList[2].IsSelected = false; courseDesignView.CheckList[1].IsSelected = false; courseDesignView.CheckList[0].IsSelected = true; await Controller.Edit(1, courseDesignView); Resultcontext.CourseDesigns.FirstOrDefault(x => x.CourseDesignId == 1)?.CourseSeminars.Should() .HaveCount(1).And.Contain(x => x.Seminar.Name == "Seminar3"); }
public async Task Edit_returns_View_if_modelstate_not_valid() { var controller = Controller; controller.ViewData.ModelState.AddModelError("key", "some error"); var courseDesignView = new CourseDesignViewModel { CourseDesign = new CourseDesign() { CourseDesignId = 1 }, CheckList = new List <CheckedId>() }; var result = await controller.Edit(1, courseDesignView); result.Should().BeOfType <ViewResult>(); }
public async Task AddCourseDesignAsync(CourseDesignViewModel model) { await AddAsync(model.CourseDesign); foreach (var item in model.CheckList) { if (item.IsSelected) { CourseSeminar cs = new CourseSeminar() { CourseDesignId = model.CourseDesign.CourseDesignId, SeminarId = item.Id }; _context.Add(cs); } } await _context.SaveChangesAsync(); }
public async Task Edit_updates_CourseDesign_with_correct_properties() { var courseDesign = Context.CourseDesigns.FirstOrDefault(x => x.CourseDesignId == 1); courseDesign.Name = "Effects"; courseDesign.Description = "Learn about effects"; var courseDesignView = new CourseDesignViewModel(courseDesign, "http://www.completevocaltraining.nl") { CheckList = new List <CheckedId>() }; await Controller.Edit(1, courseDesignView); Resultcontext.CourseDesigns.FirstOrDefault(x => x.CourseDesignId == 1) .Should().BeEquivalentTo(courseDesign, options => options .Excluding(cd => cd.CourseSeminars)); }
public async Task Create_stores_CourseDesign_with_correct_CourseSeminars() { var seminars = await Context.Seminars.ToListAsync(); var courseDesignView = new CourseDesignViewModel(seminars, "http://www.completevocaltraining.nl") { CourseDesign = CourseDesign7 }; courseDesignView.CheckList[0].IsSelected = true; courseDesignView.CheckList[2].IsSelected = true; await Controller.Create(courseDesignView); var result = Resultcontext.CourseDesigns.FirstOrDefault(x => x.CourseDesignId == 7); result?.CourseSeminars.Should().HaveCount(2) .And.Contain(x => x.Seminar.Name == "Seminar1") .And.Contain(x => x.Seminar.Name == "Seminar3"); }