private async Task <DataTableDto <ClassDto> > GetClassesWithoutStatusId(GetAllDataTableQuery request) { int recordsTotal = 0; int skip = request.start != 0 ? request.start : 0; int pageSize = request.length != 0 ? request.length : 10; IQueryable <Class> classes = _context.Classes.Include(a => a.ClassInstructors).ThenInclude(a => a.Instructor) .Skip(skip).Take(pageSize).AsNoTracking(); if (request.order != null) { string dir = request.order.FirstOrDefault().dir; int Column = request.order.FirstOrDefault().Column; classes = classes.OrderBy(request.columns[Column].data + " " + dir); } if (!string.IsNullOrEmpty(request.search.Value)) { classes = _context.Classes.Where(x => x.Name.Trim().ToLower().Contains(request.search.Value.Trim().ToLower())) .Include(a => a.ClassInstructors).ThenInclude(a => a.Instructor) .Skip(skip).Take(pageSize).AsNoTracking(); } recordsTotal = await _context.Classes.CountAsync(); var data = _Mapper.Map <List <ClassDto> >(await classes.ToListAsync()); return(new DataTableDto <ClassDto> { draw = request.draw, data = data, recordsTotal = recordsTotal, recordsFiltered = recordsTotal }); }
public async Task <DataTableDto <ClassDto> > Handle(GetAllDataTableQuery request, CancellationToken cancellationToken) { if (request.InstructorId.HasValue && request.InstructorId.Value != 0) { return(await GetClassesWithInstructorId(request)); } else { return(await GetClassesWithAllInstructors(request)); } }
private async Task <DataTableDto <ClassDto> > GetClassesWithInstructorId(GetAllDataTableQuery request) { bool isHaveStatus = request.StatusId.HasValue; if (isHaveStatus) { return(await GetInstructorClassesWithStatusId(request)); } else { return(await GetInstructorClassesWithoutStatusId(request)); } }