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); } }
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); }
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; }
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); }
public TransactionalStateFactory(IGrainActivationContext context, ITypeResolver typeResolver, IGrainFactory grainFactory) { this.context = context; this.serializerSettings = TransactionParticipantExtensionExtensions.GetJsonSerializerSettings(typeResolver, grainFactory); }