/// <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); }
public async Task <IActionResult> GetSchedulingCodes([FromQuery] SchedulingCodeQueryParameters schedulingCodeParameters) { var result = await _schedulingCodeService.GetSchedulingCodes(schedulingCodeParameters); return(StatusCode((int)result.Code, result.Value)); }