public async Task <OperationDataResult <WorkOrdersModel> > GetWorkOrdersAsync(WorkOrdersRequestModel pnRequestModel) { try { var core = await _coreService.GetCore(); var sites = await core.Advanced_SiteItemReadAll(false); var workOrdersModel = new WorkOrdersModel(); var workOrdersQuery = _dbContext.WorkOrders .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed) .AsQueryable(); // add serch if (!string.IsNullOrEmpty(pnRequestModel.SearchString)) { workOrdersQuery = workOrdersQuery.Where(x => x.Description.ToLower().Contains(pnRequestModel.SearchString.ToLower()) || x.DescriptionOfTaskDone.ToLower().Contains(pnRequestModel.SearchString.ToLower())); } // sort if (!string.IsNullOrEmpty(pnRequestModel.Sort)) { if (pnRequestModel.IsSortDsc) { workOrdersQuery = workOrdersQuery.CustomOrderByDescending(pnRequestModel.Sort); } else { workOrdersQuery = workOrdersQuery.CustomOrderBy(pnRequestModel.Sort); } } else { workOrdersQuery = _dbContext.WorkOrders.OrderBy(x => x.Id); } // pagination workOrdersQuery = workOrdersQuery .Skip(pnRequestModel.Offset) .Take(pnRequestModel.PageSize); // add select var workOrderList = await AddSelectToQuery(workOrdersQuery).Result.ToListAsync(); foreach (var workOrderModel in workOrderList) { workOrderModel.CreatedBy = sites .Where(x => x.SiteUId == workOrderModel.CreatedByUserId) .Select(x => x.SiteName) .FirstOrDefault(); workOrderModel.DoneBy = sites .Where(x => x.SiteUId == workOrderModel.DoneBySiteId) .Select(x => x.SiteName) .FirstOrDefault(); } workOrdersModel.Total = await _dbContext.WorkOrders.CountAsync(x => x.WorkflowState != Constants.WorkflowStates.Removed); workOrdersModel.WorkOrders = workOrderList; return(new OperationDataResult <WorkOrdersModel>(true, workOrdersModel)); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationDataResult <WorkOrdersModel>(false, _workOrdersLocalizationService.GetString("ErrorWhileObtainingWorkOrders"))); } }
public async Task <OperationDataResult <WorkOrdersModel> > GetWorkOrders([FromBody] WorkOrdersRequestModel requestModel) { return(await _workOrdersService.GetWorkOrdersAsync(requestModel)); }