Ejemplo n.º 1
0
        public async Task EditLevelsOfTeacher(EditTeacherLevelsViewModel model)
        {
            var levelsForDeletion = this.db.LevelTeachers.Where(x => x.TeacherId == model.TeacherId).ToList();

            this.db.LevelTeachers.RemoveRange(levelsForDeletion);

            var teacher = await this.db.Teachers
                          .Include(t => t.QualifiedLevels)
                          .FirstOrDefaultAsync(x => x.Id == model.TeacherId);

            var newLevelsIds       = model.Levels.Where(x => x.Selected).Select(x => x.Id).ToArray();
            var newQualifiedLevels = this.db.Levels
                                     .Where(x => newLevelsIds.Contains(x.Id))
                                     .Select(ql => new LevelTeacher {
                Level = ql
            })
                                     .ToArray();

            foreach (var item in newQualifiedLevels)
            {
                teacher.QualifiedLevels.Add(item);
            }

            await this.db.SaveChangesAsync();
        }
        public async Task <IActionResult> EditLevels(EditTeacherLevelsViewModel model)
        {
            int teacherId = await CheckTeacherId(this.TempData["teacherId"]);

            model.TeacherId = teacherId;
            await this.levelsService.EditLevelsOfTeacher(model);

            return(await Task.Run(() => this.RedirectToAction("Details", new { teacherId = model.TeacherId })));
        }
Ejemplo n.º 3
0
        public EditTeacherLevelsViewModel GetLevelsForEdit(int teacherId)
        {
            var allLevelsIds = this.db.LevelTeachers
                               .Where(lt => lt.TeacherId == teacherId)
                               .Select(x => x.LevelId)
                               .ToList();
            var levels = this.db.Levels.Select(l => new LevelSelectionViewModel
            {
                Id       = l.Id,
                Name     = l.Name,
                Selected = allLevelsIds.Contains(l.Id)
            })
                         .OrderBy(x => x.Id)
                         .ToArray();;



            var model = new EditTeacherLevelsViewModel {
                Levels = levels
            };

            return(model);
        }