Esempio n. 1
0
        public override async Task Execute()
        {
            var sagaId       = sagaData.Id;
            var sagaManifest = sagaManifests.GetForEntityType(sagaData.GetType());

            var sagaFile = await SagaStorageFile.Create(sagaId, sagaManifest)
                           .ConfigureAwait(false);

            sagaFiles.RegisterSagaFile(sagaFile, sagaId, sagaManifest.SagaEntityType);

            await sagaFile.Write(sagaData)
            .ConfigureAwait(false);
        }
Esempio n. 2
0
        async Task <SagaStorageFile> Open(Guid sagaId, Type entityType, CancellationToken cancellationToken)
        {
            var sagaManifest = sagaManifests.GetForEntityType(entityType);

            var sagaStorageFile = await SagaStorageFile.Open(sagaId, sagaManifest, cancellationToken)
                                  .ConfigureAwait(false);

            if (sagaStorageFile != null)
            {
                sagaFiles.RegisterSagaFile(sagaStorageFile, sagaId, sagaManifest.SagaEntityType);
            }

            return(sagaStorageFile);
        }
Esempio n. 3
0
 public static void RegisterSagaFile(this Dictionary <string, SagaStorageFile> sagaFiles, SagaStorageFile sagaStorageFile, Guid sagaId, Type sagaDataType)
 {
     sagaFiles[$"{sagaDataType.FullName}{sagaId}"] = sagaStorageFile;
 }