public async Task <ParentEditViewModel> GetEditViewModel(string userId) { var parent = await this.data.Users.FirstOrDefaultAsync(u => u.Id == userId); if (parent == null) { throw new Exception("User doesn't exist"); } var parentStudentsIds = await this.data.ParentStudents.Where(ps => ps.ParentId == parent.Id).Select(ps => ps.StudentId).ToListAsync(); var students = await this.data.Users.Where(u => parentStudentsIds.Contains(u.Id)).ToListAsync(); var studentsForSchool = await this.data.Users.Where(u => u.SchoolId == parent.SchoolId && u.Role == "Student").ToListAsync(); var userEditModel = new UserEditModel { UserId = parent.Id, FirstName = parent.FirstName, MiddleName = parent.MiddleName, LastName = parent.LastName }; var model = new ParentEditViewModel { UserEditModel = userEditModel, ParentStudents = students, AllStudents = studentsForSchool }; return(model); }
public async Task <IActionResult> Edit(ParentEditViewModel model) { if (!ModelState.IsValid) { return(View(nameof(Edit), model.UserEditModel.UserId)); } await this.userService.UpdatePersonalData(model.UserEditModel); await this.parentService.EditParentStudents(model.UserEditModel.UserId, model.StudentIds); return(await Index()); }