示例#1
0
        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);
        }
示例#2
0
        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());
            }));
        }
示例#3
0
        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());
            }));
        }
示例#4
0
 public async Task <ServerResponse <List <MhTaskResponse> > > GetMhTasksAsync(MhTaskFilterRequest mhTaskFilterRequest)
 {
     return(await _mhTaskService.GetMhTasksAsync(AccountId, mhTaskFilterRequest));
 }