/// <summary>
        /// Gets the scheduling codes.
        /// </summary>
        /// <param name="schedulingCodeParameters">The scheduling code parameters.</param>
        /// <returns></returns>
        public async Task <PagedList <Entity> > GetSchedulingCodes(SchedulingCodeQueryParameters schedulingCodeParameters)
        {
            var schedulingCodes = FindByCondition(x => x.IsDeleted == false);

            var filteredSchedulingCodes = FilterSchedulingCodes(schedulingCodes, schedulingCodeParameters);

            var sortedSchedulingCodes = SortHelper.ApplySort(filteredSchedulingCodes, schedulingCodeParameters.OrderBy);

            var pagedSchedulingCodes = sortedSchedulingCodes;

            if (!schedulingCodeParameters.SkipPageSize)
            {
                pagedSchedulingCodes = pagedSchedulingCodes
                                       .Skip((schedulingCodeParameters.PageNumber - 1) * schedulingCodeParameters.PageSize)
                                       .Take(schedulingCodeParameters.PageSize);
            }

            pagedSchedulingCodes = pagedSchedulingCodes
                                   .Include(x => x.Icon)
                                   .Include(x => x.SchedulingTypeCode)
                                   .ThenInclude(x => x.SchedulingCodeType);

            var mappedSchedulingCodes = pagedSchedulingCodes
                                        .ProjectTo <SchedulingCodeDTO>(_mapper.ConfigurationProvider);

            var shapedSchedulingCodes = DataShaper.ShapeData(mappedSchedulingCodes, schedulingCodeParameters.Fields);

            return(await PagedList <Entity>
                   .ToPagedList(shapedSchedulingCodes, filteredSchedulingCodes.Count(), schedulingCodeParameters.PageNumber, schedulingCodeParameters.PageSize));
        }
        /// <summary>
        /// Gets the scheduling codes.
        /// </summary>
        /// <param name="schedulingCodeParameters">The scheduling code parameters.</param>
        /// <returns></returns>
        public async Task <CSSResponse> GetSchedulingCodes(SchedulingCodeQueryParameters schedulingCodeParameters)
        {
            var schedulingCodes = await _repository.SchedulingCodes.GetSchedulingCodes(schedulingCodeParameters);

            _httpContextAccessor.HttpContext.Response.Headers.Add("X-Pagination", PagedList <Entity> .ToJson(schedulingCodes));

            return(new CSSResponse(schedulingCodes, HttpStatusCode.OK));
        }
        /// <summary>
        /// Searches the name of the by.
        /// </summary>
        /// <param name="schedulingCodes">The scheduling codes.</param>
        /// <param name="schedulingCodeParameters">The scheduling code parameters.</param>
        /// <returns></returns>
        private IQueryable <SchedulingCode> FilterSchedulingCodes(IQueryable <SchedulingCode> schedulingCodes, SchedulingCodeQueryParameters schedulingCodeParameters)
        {
            if (!schedulingCodes.Any())
            {
                return(schedulingCodes);
            }

            if (schedulingCodeParameters.ActivityCodes.Any())
            {
                schedulingCodes = schedulingCodes.Where(x => schedulingCodeParameters.ActivityCodes.Contains(x.Description));
            }

            if (!string.IsNullOrWhiteSpace(schedulingCodeParameters.SearchKeyword))
            {
                schedulingCodes = schedulingCodes.Where(o => o.Description.ToLower().Contains(schedulingCodeParameters.SearchKeyword.Trim().ToLower()) ||
                                                        o.CreatedBy.ToLower().Contains(schedulingCodeParameters.SearchKeyword.Trim().ToLower()) ||
                                                        o.ModifiedBy.ToLower().Contains(schedulingCodeParameters.SearchKeyword.Trim().ToLower()));
            }

            return(schedulingCodes);
        }
Пример #4
0
        public async Task <IActionResult> GetSchedulingCodes([FromQuery] SchedulingCodeQueryParameters schedulingCodeParameters)
        {
            var result = await _schedulingCodeService.GetSchedulingCodes(schedulingCodeParameters);

            return(StatusCode((int)result.Code, result.Value));
        }