public async Task <OperationDataResult <OuterResourcesModel> > GetAllAreas(OuterResourceRequestModel requestModel) { return(await _outerResourceService.Index(requestModel)); }
public async Task <OperationDataResult <OuterResourcesModel> > Index(OuterResourceRequestModel requestModel) { try { var outerResourcesModel = new OuterResourcesModel(); var query = _dbContext.OuterResources.AsQueryable(); if (!string.IsNullOrEmpty(requestModel.Sort)) { if (requestModel.IsSortDsc) { query = query .CustomOrderByDescending(requestModel.Sort); } else { query = query .CustomOrderBy(requestModel.Sort); } } else { query = _dbContext.OuterResources .OrderBy(x => x.Id); } query = query.Where(x => x.WorkflowState != Constants.WorkflowStates.Removed); if (requestModel.PageSize != null) { query = query .Skip(requestModel.Offset) .Take((int)requestModel.PageSize); } var outerResourceList = await query.Select(x => new OuterResourceModel() { Name = x.Name, Id = x.Id, ExternalId = x.ExternalId, RelatedInnerResourcesIds = _dbContext.OuterInnerResources.AsNoTracking().Where(y => y.OuterResourceId == x.Id && y.WorkflowState != Constants.WorkflowStates.Removed).Select(z => z.InnerResourceId).ToList() }).AsNoTracking().ToListAsync(); outerResourcesModel.Total = await _dbContext.OuterResources.AsNoTracking().Where(x => x.WorkflowState != Constants.WorkflowStates.Removed).CountAsync(); outerResourcesModel.OuterResourceList = outerResourceList; try { outerResourcesModel.Name = _dbContext.PluginConfigurationValues.SingleOrDefault(x => x.Name == "OuterInnerResourceSettings:OuterResourceName") ?.Value; } catch (Exception) { // ignored } return(new OperationDataResult <OuterResourcesModel>(true, outerResourcesModel)); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationDataResult <OuterResourcesModel>(false, _localizationService.GetString("ErrorObtainOuterResources"))); } }