public async Task SendRequestAsync(QueryProcessRequest <IReadOnlyCollection <EntityIdentity> > request) { Requires.NotNull(request, nameof(request)); foreach (EntityIdentity requestId in request.RequestData) { if (requestId.KeysCount == 2 && requestId.TryGetValue(ProjectModelIdentityKeys.ProjectPath, out string path) && requestId.TryGetValue(ProjectModelIdentityKeys.PropertyPageName, out string propertyPageName)) { try { IEntityValue?propertyPageValue = await PropertyPageDataProducer.CreatePropertyPageValueAsync( request.QueryExecutionContext.EntityRuntime, requestId, _projectService, _queryCacheProvider, path, propertyPageName, _properties); if (propertyPageValue is not null) { await ResultReceiver.ReceiveResultAsync(new QueryProcessResult <IEntityValue>(propertyPageValue, request, ProjectModelZones.Cps)); } } catch (Exception ex) { request.QueryExecutionContext.ReportError(ex); } } } await ResultReceiver.OnRequestProcessFinishedAsync(request); }
protected override Task <IEntityValue?> TryCreateEntityOrNullAsync(IQueryExecutionContext queryExecutionContext, EntityIdentity id) { if (QueryProjectPropertiesContext.TryCreateFromEntityId(id, out QueryProjectPropertiesContext? propertiesContext) && id.TryGetValue(ProjectModelIdentityKeys.PropertyPageName, out string?propertyPageName)) { return(PropertyPageDataProducer.CreatePropertyPageValueAsync( queryExecutionContext, id, _projectService, propertiesContext, propertyPageName, _properties)); } return(NullEntityValue); }
protected override Task <IEntityValue?> TryCreateEntityOrNullAsync(IEntityRuntimeModel runtimeModel, EntityIdentity id) { if (id.KeysCount == 2 && id.TryGetValue(ProjectModelIdentityKeys.ProjectPath, out string projectPath) && id.TryGetValue(ProjectModelIdentityKeys.PropertyPageName, out string propertyPageName)) { return(PropertyPageDataProducer.CreatePropertyPageValueAsync( runtimeModel, id, _projectService, _queryCacheProvider, projectPath, propertyPageName, _properties)); } return(NullEntityValue); }