예제 #1
0
 public async Task <Component> GetDefinitionAsync(
     [Parent] ApplicationPartComponent applicationPartComponent,
     ComponentByIdDataLoader componentById,
     CancellationToken cancellationToken) =>
 (await componentById.LoadAsync(
      applicationPartComponent.ComponentId,
      cancellationToken)) !;
 public async Task <IEnumerable <ChangeLog> > GetChangeLogAsync(
     [Service] IChangeLogService service,
     [Parent] ApplicationPartComponent partComponent,
     CancellationToken cancellationToken)
 {
     return(await service.GetByApplicationPartComponentId(partComponent.Id, cancellationToken));
 }
    public async Task <ApplicationPart?> GetApplicationPartAsync(
        [Service] IApplicationStore store,
        [Parent] ApplicationPartComponent partComponent,
        CancellationToken cancellationToken)
    {
        Application?application =
            await store.GetByComponentPartIdAsync(partComponent.Id, cancellationToken);

        return(application?.Parts
               .FirstOrDefault(x => x.Components.Any(y => y.Id == partComponent.Id)));
    }
    public async ValueTask <string?> GetValuesAsync(
        [Service] IChangeLogService changeLogService,
        [Parent] ApplicationPartComponent parent,
        int?version,
        CancellationToken cancellationToken)
    {
        if (version is null)
        {
            return(parent.Values);
        }

        ChangeLog?changelog = await changeLogService
                              .GetByApplicationPartComponentIdAndVersion(parent.Id, version.Value, cancellationToken);

        return(changelog switch
        {
            { Change : ApplicationPartComponentValuesChange {
                  Values : { } v
              } } => v,
예제 #5
0
    public async Task <Dictionary <string, object?>?> GetValuesAsync(
        [Parent] ApplicationPartComponent applicationPartComponent,
        [Service] IComponentService componentService,
        CancellationToken cancellationToken)
    {
        if (applicationPartComponent.Values is null)
        {
            return(null);
        }

        ISchema?schema = await componentService.GetSchemaByIdAsync(
            applicationPartComponent.ComponentId,
            cancellationToken);

        if (schema is null)
        {
            return(null);
        }

        var document = JsonDocument.Parse(applicationPartComponent.Values !);

        return(ValueHelper.DeserializeDictionary(document.RootElement, schema.QueryType));
    }