コード例 #1
0
        public TransactionalState(
            ITransactionalStateConfiguration transactionalStateConfiguration,
            IGrainActivationContext context,
            ITransactionDataCopier <TState> copier,
            ITransactionAgent transactionAgent,
            IProviderRuntime runtime,
            ILoggerFactory loggerFactory,
            ITypeResolver typeResolver,
            IGrainFactory grainFactory)
        {
            this.config           = transactionalStateConfiguration;
            this.context          = context;
            this.copier           = copier;
            this.transactionAgent = transactionAgent;
            this.runtime          = runtime;
            this.loggerFactory    = loggerFactory;

            lockWorker         = new BatchWorkerFromDelegate(LockWork);
            storageWorker      = new BatchWorkerFromDelegate(StorageWork);
            confirmationWorker = new BatchWorkerFromDelegate(ConfirmationWork);

            if (MetaData.SerializerSettings == null)
            {
                MetaData.SerializerSettings = TransactionParticipantExtensionExtensions.GetJsonSerializerSettings(typeResolver, grainFactory);
            }
        }
コード例 #2
0
        public void JsonConcertCanSerializeMetaData()
        {
            var grainRef = this.RandomTestGrain(TransactionTestConstants.SingleStateTransactionalGrain);
            var ext      = grainRef.Cast <ITransactionParticipantExtension>();
            var metaData = new MetaData();

            metaData.TimeStamp     = DateTime.UtcNow;
            metaData.CommitRecords = new Dictionary <Guid, CommitRecord>();
            metaData.CommitRecords.Add(Guid.NewGuid(), new CommitRecord()
            {
                Timestamp         = DateTime.UtcNow,
                WriteParticipants = new List <ITransactionParticipant>()
                {
                    ext.AsTransactionParticipant("resourceId")
                }
            });
            var serializerSettings = TransactionParticipantExtensionExtensions.GetJsonSerializerSettings(
                this.fixture.Client.ServiceProvider.GetService <ITypeResolver>(),
                this.grainFactory);
            //should be able to serialize it
            var jsonMetaData = JsonConvert.SerializeObject(metaData, serializerSettings);

            var deseriliazedMetaData = JsonConvert.DeserializeObject <MetaData>(jsonMetaData, serializerSettings);

            Assert.Equal(metaData.TimeStamp, deseriliazedMetaData.TimeStamp);
        }
コード例 #3
0
 public AzureTableTransactionalStateStorageFactory(string name, AzureTableTransactionalStateOptions options, IOptions <ClusterOptions> clusterOptions, ITypeResolver typeResolver, IGrainFactory grainFactory, ILoggerFactory loggerFactory)
 {
     this.name           = name;
     this.options        = options;
     this.clusterOptions = clusterOptions.Value;
     this.jsonSettings   = TransactionParticipantExtensionExtensions.GetJsonSerializerSettings(
         typeResolver,
         grainFactory);
     this.loggerFactory = loggerFactory;
 }
コード例 #4
0
        public void JsonConcertCanSerializeMetaData()
        {
            var metaData = new MetaData();

            metaData.TimeStamp     = DateTime.UtcNow;
            metaData.CommitRecords = new Dictionary <Guid, CommitRecord>();
            metaData.CommitRecords.Add(Guid.NewGuid(), new CommitRecord()
            {
                Timestamp         = DateTime.UtcNow,
                WriteParticipants = new List <ITransactionParticipant>()
                {
                    new TransactionParticipantExtension().AsTransactionParticipant("resourceId")
                }
            });
            MetaData.SerializerSettings = TransactionParticipantExtensionExtensions.GetJsonSerializerSettings(
                this.environment.Client.ServiceProvider.GetService <ITypeResolver>(),
                this.environment.GrainFactory);
            //should be able to serialize it
            var jsonMetaData = JsonConvert.SerializeObject(metaData, MetaData.SerializerSettings);

            var deseriliazedMetaData = JsonConvert.DeserializeObject <MetaData>(jsonMetaData, MetaData.SerializerSettings);

            Assert.Equal(metaData.TimeStamp, deseriliazedMetaData.TimeStamp);
        }
コード例 #5
0
 public TransactionalStateFactory(IGrainActivationContext context, ITypeResolver typeResolver, IGrainFactory grainFactory)
 {
     this.context            = context;
     this.serializerSettings =
         TransactionParticipantExtensionExtensions.GetJsonSerializerSettings(typeResolver, grainFactory);
 }