Пример #1
0
 /// <summary>
 /// Обновление записи
 /// </summary>
 /// <param name="basisForAssessing">Тип оценивания</param>
 /// <returns>Объект редактированной записи</returns>
 public BasisForAssessing UpdateBasisForAssessing(BasisForAssessing basisForAssessing)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к обновлению типа оценивания.");
     try
     {
         BasisForAssessing basisForAssessingToUpdate = context.BasisForAssessing.FirstOrDefault(b => b.BasisForAssessingId == basisForAssessing.BasisForAssessingId);
         logger.Debug($"Текущая запись: {basisForAssessingToUpdate.ToString()}");
         basisForAssessingToUpdate.Name = basisForAssessing.Name;
         context.SaveChanges();
         logger.Debug($"Новая запись: {basisForAssessingToUpdate.ToString()}");
         return(basisForAssessingToUpdate);
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка редактирования типа оценивания.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
         return(null);
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка редактирования типа оценивания.");
         logger.Error($"Ошибка — {ex.Message}.");
         return(null);
     }
 }
Пример #2
0
 /// <summary>
 /// Удаление записи
 /// </summary>
 /// <param name="basisForAssessing">Удаляемая запись</param>
 public void DeleteBasisForAssessing(BasisForAssessing basisForAssessing)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к удалению типа оценивания.");
     try
     {
         var basisForAssessingToDelete = context.BasisForAssessing.FirstOrDefault(b => b.BasisForAssessingId == basisForAssessing.BasisForAssessingId);
         if (basisForAssessingToDelete != null)
         {
             context.BasisForAssessing.Remove(basisForAssessingToDelete);
             context.SaveChanges();
             logger.Debug("Удаление успешно завершено.");
         }
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка удаления типа оценивания.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка удаления типа оценивания.");
         logger.Error($"Ошибка — {ex.Message}.");
     }
 }
Пример #3
0
 /// <summary>
 /// Добавление новой записи
 /// </summary>
 /// <param name="basisForAssessing">Тип оценивания</param>
 /// <returns>Объект добавленной записи</returns>
 public BasisForAssessing InsertBasisForAssessing(BasisForAssessing basisForAssessing)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к добавлению типа оценивания.");
     try
     {
         logger.Debug($"Добавляемая запись: {basisForAssessing.ToString()}");
         context.BasisForAssessing.Add(basisForAssessing);
         context.SaveChanges();
         logger.Debug($"Новая запись успешно добавлена.");
         return(basisForAssessing);
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка добавления типа оценивания.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
         return(null);
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка добавления типа оценивания.");
         logger.Error($"Ошибка — {ex.Message}.");
         return(null);
     }
 }
 /// <summary>
 /// Получение списка дисциплин
 /// </summary>
 /// <param name="basisForAssessing">Тип оценивания</param>
 /// <param name="IsGroup">Группа дисциплин?</param>
 /// <returns>Список дисциплин</returns>
 public List <Discipline> GetDisciplines(BasisForAssessing basisForAssessing, bool IsGroup)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к поиску списка дисциплин по параметрам.");
     try
     {
         var disciplines = context.Discipline.AsNoTracking().Where(d => d.IsGroup == IsGroup && d.BasisForAssessingId == basisForAssessing.BasisForAssessingId).ToList();
         if (disciplines.Count != 0)
         {
             logger.Debug($"Поиск окончен. Количество записей: {disciplines.Count}.");
         }
         else
         {
             logger.Debug($"Поиск окончен. Список пуст.");
         }
         return(disciplines);
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка получения списка дисциплин по параметрам.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
         return(null);
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка получения списка дисциплин по параметрам.");
         logger.Error($"Ошибка — {ex.Message}.");
         return(null);
     }
 }
Пример #5
0
 /// <summary>
 /// Получение списка оценок
 /// </summary>
 /// <param name="basisForAssessing">Фильтр по типу оценивания</param>
 /// <returns>Отфильтрованный список оценок</returns>
 public List <Assessment> GetAssessments(BasisForAssessing basisForAssessing)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к поиску списка оценок по типу оценивания.");
     try
     {
         var assessments = context.Assessment.AsNoTracking().Where(a => a.Discipline.BasisForAssessingId == basisForAssessing.BasisForAssessingId).ToList();
         if (assessments.Count != 0)
         {
             logger.Debug($"Поиск окончен. Количество записей: {assessments.Count}.");
         }
         else
         {
             logger.Debug($"Поиск окончен. Список оценок пуст.");
         }
         return(assessments);
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка поиска данных об оценке.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
         return(null);
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка поиска данных об оценке.");
         logger.Error($"Ошибка — {ex.Message}.");
         return(null);
     }
 }
Пример #6
0
 /// <summary>
 /// Получение оценки по дисциплине, абитуриенту и типу оценивания
 /// </summary>
 /// <param name="discipline">Дисциплина</param>
 /// <param name="enrollee">Абитуриент</param>
 /// <param name="basisForAssessing">Фильтр по типу оценивания</param>
 /// <returns>Искомая запись об оценке</returns>
 public Assessment GetAssessment(Discipline discipline, Enrollee enrollee, BasisForAssessing basisForAssessing)
 {
     logger.Trace("Попытка подключения к источнику данных.");
     logger.Trace("Подготовка к поиску данных об оценке по параметрам дисциплины, абитуриента и типа оценивания.");
     try
     {
         var assessment = context.Assessment.AsNoTracking().FirstOrDefault(a => a.DisciplineId == discipline.DisciplineId && a.EnrolleeId == enrollee.EnrolleeId && a.Discipline.BasisForAssessingId == basisForAssessing.BasisForAssessingId);
         if (assessment != null)
         {
             logger.Debug($"Поиск окончен. Запись найдена {assessment.ToString()}.");
         }
         else
         {
             logger.Debug($"Поиск окончен. Запись не найдена.");
         }
         return(assessment);
     }
     catch (SqlException sqlEx)
     {
         logger.Error("Ошибка поиска данных об оценке.");
         logger.Error($"Ошибка SQL Server — {sqlEx.Number}.");
         logger.Error($"Сообщение об ошибке: {sqlEx.Message}.");
         return(null);
     }
     catch (Exception ex)
     {
         logger.Error("Ошибка поиска данных об оценке.");
         logger.Error($"Ошибка — {ex.Message}.");
         return(null);
     }
 }
Пример #7
0
 /// <summary>
 /// Метод инициализации содержимого списка дисциплин
 /// Инициализируем список только предметами тестирования
 /// Сортировка по наименованию
 /// </summary>
 private void InitializeDisciplineComboBox()
 {
     // Отключаем отслеживание изменения дисциплины в списке дисциплин
     cbDiscipline.SelectedValueChanged -= cbDiscipline_SelectedValueChanged;
     // Получаем основание оценок равное значению "Тестирование"
     basisForAssessing = basisForAssessingService.GetBasisForAssessing(3);
     if (basisForAssessing != null)
     {
         // Получаем список дисциплин
         var disciplines = disciplineService.GetDisciplines(basisForAssessing, false).OrderBy(d => d.Name).ToList();
         // Загружаем в комбо-бокс
         cbDiscipline.DataSource    = disciplines;
         cbDiscipline.DisplayMember = "Name";
         cbDiscipline.ValueMember   = "DisciplineId";
         // Если список дисциплин не пуст, инициализируем "выбранную дисциплину" первой из списка
         if (disciplines.Count != 0)
         {
             discipline = disciplines[0];
         }
     }
     // Включаем отслеживание изменения дисциплины в списке дисциплин
     cbDiscipline.SelectedValueChanged += cbDiscipline_SelectedValueChanged;
 }