コード例 #1
0
        public async Task <IActionResult> GetEnrolments(
            [FromQuery] OrderingOption orderingOption,
            [FromQuery] PagingOption pagingOption
            )
        {
            var specification = new EnrolmentsSpecification(
                orderingOption.GetOrderByInfos(),
                pagingOption.CurrentPage, pagingOption.PageSize
                );
            var qro = await _uow.Repository <Enrolment>().Find(specification);

            if (qro == null || qro.QueryResult == null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
            return(Ok(_mapper.Map <EnrolmentsResultDTO>(qro)));
        }
コード例 #2
0
        public ValueTask <PagedResult <Lesson> > RetrieveEnrolledLessons(
            Guid studentId,
            SearchingOption searchingOption,
            OrderingOption orderingOption,
            PaginationOption paginationOption
            )
        {
            var enrolments = _context.Set <Enrolment>().AsQueryable();

            var enrolledLessons = enrolments
                                  .Include(enrolment => enrolment.Lesson)
                                  .Where(enrolment => enrolment.StudentId == studentId)
                                  .Select(enrolment => enrolment.Lesson);

            enrolledLessons = Searching(enrolledLessons, searchingOption);
            enrolledLessons = Ordering(enrolledLessons, orderingOption);
            return(Pagination(enrolledLessons, paginationOption));
        }
コード例 #3
0
        public IQueryable <AttendanceSheet> Ordering(
            IQueryable <AttendanceSheet> source,
            OrderingOption orderingOption
            )
        {
            if (orderingOption == null)
            {
                orderingOption = new OrderingOption();
            }

            switch (orderingOption.OrderBy.ToLower())
            {
            case "title":
                return(orderingOption.Desc ? source.OrderByDescending(source => source.Lesson.Title) : source.OrderBy(source => source.Lesson.Title));

            default:
                return(orderingOption.Desc ? source.OrderByDescending(source => source.CreateDateTime) : source.OrderBy(source => source.CreateDateTime));
            }
        }
コード例 #4
0
 public async Task <IActionResult> GetLessons(
     [FromQuery] SearchingOption searchingOption,
     [FromQuery] OrderingOption orderingOption,
     [FromQuery] PaginationOption paginationOption
     )
 {
     try
     {
         var lessons = _uow.LessonRepository.RetrieveLessons(
             searchingOption,
             orderingOption,
             paginationOption
             );
         return(Ok(_mapper.Map <PagedLessonDTO>(await lessons)));
     }
     catch (Exception e)
     {
         _logger.LogError($"Error in action `GetLessons()`. {e.Message}");
         return(StatusCode(StatusCodes.Status500InternalServerError));
     }
 }
コード例 #5
0
 public async Task <IActionResult> GetEnrolledStudents(
     [FromRoute] Guid lessonId,
     [FromQuery] SearchingOption searchingOption,
     [FromQuery] OrderingOption orderingOption,
     [FromQuery] PaginationOption paginationOption
     )
 {
     try
     {
         var enrolledStudents = _uow.StudentRepository.RetrieveEnrolledStudents(
             lessonId,
             searchingOption,
             orderingOption,
             paginationOption
             );
         return(Ok(_mapper.Map <PagedStudentDTO>(await enrolledStudents)));
     }
     catch (Exception e)
     {
         _logger.LogError($"Error in action `GetEnrolledStudents()`. {e.Message}");
         return(StatusCode(StatusCodes.Status500InternalServerError));
     }
 }
コード例 #6
0
 /// <summary>
 /// Sets the ordering options for this query. Note that most providers do not support ordering.
 /// </summary>
 /// <param name="propertyNames"></param>
 /// <param name="option"></param>
 /// <param name="useAlias"></param>
 public void SetOrderingOption(IEnumerable<string> propertyNames, OrderingOption option, bool useAlias)
 {
     _OrderBy.Clear();
     foreach (var p in propertyNames)
     {
         _OrderBy.Add((useAlias) ? this.ClassAlias + "." + p : p);
     }
     _OrderingOption = option;
 }
コード例 #7
0
 /// <summary>
 /// Sets the ordering options for this query. Note that most providers do not support ordering.
 /// </summary>
 /// <param name="propertyNames"></param>
 /// <param name="option"></param>
 public void SetOrderingOption(IEnumerable<string> propertyNames, OrderingOption option)
 {
     SetOrderingOption(propertyNames, option, !string.IsNullOrEmpty(this.ClassAlias));
 }
コード例 #8
0
 public string IsChecked(OrderingOption orderingOption)
 {
     return(orderingOption == Ordering ? "checked" : null);
 }
コード例 #9
0
 /// <summary>
 /// Sets the ordering options for this query. Note that most providers do not support ordering.
 /// </summary>
 /// <param name="propertyNames"></param>
 /// <param name="option"></param>
 public void SetOrderingOption(IEnumerable <string> propertyNames, OrderingOption option)
 {
     SetOrderingOption(propertyNames, option, !string.IsNullOrEmpty(this.ClassAlias));
 }