Пример #1
0
        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);
        }
Пример #2
0
        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());
        }