Exemple #1
0
 public IActionResult StudentsArchive([FromBody] StudentsSortModel sortModel)
 {
     try
     {
         var result = _studentService.StudentsArchive();
         if (result == null)
         {
             return(BadRequest());
         }
         if (User.IsInRole("Mentor"))
         {
             var mentor       = _userService.GetUserAsync(User.Identity.Name);
             var mentorResult = _studentService.GetMentorStudents(result, mentor.Result.Id);
             if (mentorResult.Count() == 0)
             {
                 return(BadRequest("У вас нет студентов находящихся в архиве которых вы курировали"));
             }
             var mentorSortedResult = _studentService.SortStudents(mentorResult, sortModel);
             _logger.LogInformation($"Успешное получение студентов из архива {mentorSortedResult}");
             return(Ok(mentorSortedResult));
         }
         var sortedResult = _studentService.SortStudents(result, sortModel);
         _logger.LogInformation($"Успешное получение студентов из архива {sortedResult}");
         return(Ok(sortedResult));
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, $"Ошибка при получении студентов из архива по фильтру {sortModel}");
         return(BadRequest(ex));
     }
 }
Exemple #2
0
        public IEnumerable <StudentsModel> SortStudents(List <StudentsModel> students, StudentsSortModel sortModel)
        {
            IEnumerable <StudentsModel> query = null;

            if (sortModel.SortByDate == true)
            {
                query = students.OrderBy(st => st.PractiesBegining)
                        .ThenBy(st => st.PractiesEnding);
            }
            if (sortModel.SortByName == true)
            {
                if (query == null)
                {
                    query = students.OrderBy(st => st.SecondName)
                            .ThenBy(st => st.FirstName)
                            .ThenBy(st => st.Patronymic);
                }
                else
                {
                    query.OrderBy(st => st.SecondName)
                    .ThenBy(st => st.FirstName)
                    .ThenBy(st => st.Patronymic);
                }
            }
            if (sortModel.SortByMentor == true)
            {
                if (query == null)
                {
                    query = students.OrderBy(st => st.MentorId);
                }
                else
                {
                    query.OrderBy(st => st.MentorId);
                }
            }
            return(query);
        }