/// <summary> /// Обновляет электронный журнал /// </summary> /// <param name="elGradebook"></param> /// <param name="userName"></param> /// <returns></returns> public async Task UpdateElGradebook(ElGradebook elGradebook, string userName) { var appUser = await GetAppUserAsync(userName); if (appUser == null) { throw new Exception($"Аккаунт пользователя {userName} не найден!"); } var entry = await GetElGradebookAsync(elGradebook.ElGradebookId); if (entry.Course != elGradebook.Course) { entry.Course = elGradebook.Course; } if (entry.Department != elGradebook.Department) { entry.Department = elGradebook.Department; } if (entry.DisciplineName != elGradebook.DisciplineName) { entry.DisciplineName = elGradebook.DisciplineName; } if (entry.EduYear != elGradebook.EduYear) { entry.EduYear = elGradebook.EduYear; } if (entry.Faculty != elGradebook.Faculty) { entry.Faculty = elGradebook.Faculty; } if (entry.GroupName != elGradebook.GroupName) { entry.GroupName = elGradebook.GroupName; } if (entry.GroupId != elGradebook.GroupId) { entry.GroupId = elGradebook.GroupId; } if (entry.SemesterNumber != elGradebook.SemesterNumber) { entry.SemesterNumber = elGradebook.SemesterNumber; } _context.Update(entry); await _context.SaveChangesAsync(); }
/// <summary> /// Создаёт электронный журнал /// </summary> /// <param name="elGradebook"></param> /// <param name="userName"></param> /// <returns></returns> public async Task CreateElGradebook(ElGradebook elGradebook, string userName) { var appUser = await GetAppUserAsync(userName); if (appUser == null) { throw new Exception($"Аккаунт пользователя {userName} не найден!"); } var elGradebookTeacher = new ElGradebookTeacher { UserId = appUser.Id, TeacherFio = appUser.GetFullName }; elGradebook.ElGradebookTeachers = new List <ElGradebookTeacher>(); elGradebook.ElGradebookTeachers.Add(elGradebookTeacher); _context.Add(elGradebook); await _context.SaveChangesAsync(); }
/// <summary> /// Возвращает true, если userName входит в число преподавателей, закреплённых за электронным журналом /// </summary> /// <param name="elGradebook"></param> /// <param name="userName"></param> /// <returns></returns> public async Task <bool> IsGradebookTeacherAsync(ElGradebook elGradebook, string userName) { bool isGradebookTeacher = false; var appUserId = (await GetAppUserAsync(userName)).Id; if (string.IsNullOrEmpty(appUserId)) { return(false); } foreach (var elGradebookTeacher in elGradebook.ElGradebookTeachers) { if (elGradebookTeacher.UserId == appUserId) { isGradebookTeacher = true; break; } } return(isGradebookTeacher); }