private IQueryable <MhTask> FilterMhTasks(IQueryable <MhTask> query, MhTaskFilterRequest mhTaskFilterRequest) { if (mhTaskFilterRequest.FromDate.HasValue) { query = query.Where(x => x.StartDate >= mhTaskFilterRequest.FromDate.Value); } if (mhTaskFilterRequest.ToDate.HasValue) { query = query.Where(x => x.StartDate <= mhTaskFilterRequest.ToDate.Value); } if (mhTaskFilterRequest.MhTaskStatus.HasValue) { query = query.Where(x => x.MhTaskStatus == mhTaskFilterRequest.MhTaskStatus.Value); } if (!string.IsNullOrWhiteSpace(mhTaskFilterRequest.Search)) { query = query.Where(x => x.Name.ToLower().Contains(mhTaskFilterRequest.Search.ToLower())); } if (mhTaskFilterRequest.TagIds.Any()) { query = query.Where(x => x.MhTaskTags.Any(mhtag => mhTaskFilterRequest.TagIds.Any(t => t == mhtag.Tag.Id))); } return(query); }
public async Task <AOResult <List <MhTaskResponse> > > GetMhTasksAsync(int accountId, MhTaskFilterRequest mhTaskFIlterRequest) { return(await BaseInvokeAsync(async() => { var query = _myHelperDbContext.MhTasks .Include(x => x.ScheduleMhTask) .Include(x => x.MhTaskTags) .ThenInclude(e => e.Tag) .Where(x => x.MhTaskState != EMhTaskState.Delete && x.AppUserId == accountId) .AsQueryable(); query = FilterMhTasks(query, mhTaskFIlterRequest); query = FetchItems(query, mhTaskFIlterRequest); return AOBuilder.SetSuccess(await query.ToAsyncEnumerable().Select(x => _mapper.Map <MhTask, MhTaskResponse>(x)).ToList()); })); }
public async Task <ServerResponse <List <MhTaskResponse> > > GetMhTasksAsync(long accountId, MhTaskFilterRequest mhTaskFilterRequest) { return(await BaseInvokeAsync(async() => { var query = DbContext.MhTasks .AsQueryable() .Include(x => x.ScheduleMhTask) .Include(x => x.MhTaskTags) .ThenInclude(e => e.Tag) .Where(x => x.MhTaskState != EMhTaskState.Delete && x.AppUserId == accountId); query = FilterMhTasks(query, mhTaskFilterRequest); query = query.OrderBy(x => x.StartDate); query = FetchItems(query, mhTaskFilterRequest); return ServerResponseBuilder.Build(await query.ToAsyncEnumerable() .Select(x => Mapper.Map <MhTask, MhTaskResponse>(x)).ToListAsync()); })); }
public async Task <ServerResponse <List <MhTaskResponse> > > GetMhTasksAsync(MhTaskFilterRequest mhTaskFilterRequest) { return(await _mhTaskService.GetMhTasksAsync(AccountId, mhTaskFilterRequest)); }