public Task Init(string name, IProviderRuntime providerRuntime, IProviderConfiguration config) { this.Log = providerRuntime.GetLogger(nameof(ArangoStorageProvider)); this.Name = name; var databaseName = config.GetProperty("DatabaseName", "Orleans"); var url = config.GetProperty("Url", "http://localhost:8529"); var username = config.GetProperty("Username", "root"); var password = config.GetProperty("Password", ""); var waitForSync = config.GetBoolProperty("WaitForSync", true); collectionName = config.GetProperty("CollectionName", null); var serializationManager = providerRuntime.ServiceProvider.GetRequiredService <SerializationManager>(); var grainRefConverter = new GrainReferenceConverter(serializationManager, providerRuntime.GrainFactory); ArangoDatabase.ChangeSetting(s => { s.Database = databaseName; s.Url = url; s.Credential = new NetworkCredential(username, password); s.DisableChangeTracking = true; s.WaitForSync = waitForSync; s.Serialization.Converters.Add(grainRefConverter); }); jsonSerializerSettings = new JsonSerializer(); jsonSerializerSettings.Converters.Add(grainRefConverter); this.Database = new ArangoDatabase(); return(Task.CompletedTask); }
public Task Init(CancellationToken ct) { var grainRefConverter = new GrainReferenceConverter(TypeResolver, GrainFactory); JsonSerializerSettings = new JsonSerializer(); JsonSerializerSettings.Converters.Add(grainRefConverter); ArangoDatabase.ChangeSetting(s => { s.Database = Options.DatabaseName; s.Url = Options.Url; s.Credential = new NetworkCredential(Options.Username, Options.Password); s.DisableChangeTracking = true; s.WaitForSync = Options.WaitForSync; s.Serialization.Converters.Add(grainRefConverter); }); this.Database = new ArangoDatabase(); return(Task.CompletedTask); }
public async Task Init(string name, IProviderRuntime providerRuntime, IProviderConfiguration config) { this.Log = providerRuntime.GetLogger(nameof(ArangoStorageProvider)); this.Name = name; var databaseName = config.GetProperty("DatabaseName", "Orleans"); var url = config.GetProperty("Url", "http://localhost:8529"); var username = config.GetProperty("Username", "root"); var password = config.GetProperty("Password", "password"); waitForSync = config.GetBoolProperty("WaitForSync", true); var grainRefConverter = new GrainReferenceConverter(); settings = new JsonSerializer(); settings.DefaultValueHandling = DefaultValueHandling.Include; settings.MissingMemberHandling = MissingMemberHandling.Ignore; settings.ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor; settings.Converters.Add(grainRefConverter); if (!isInitialized) { ArangoDatabase.ChangeSetting(s => { s.Database = databaseName; s.Url = url; s.Credential = new NetworkCredential(username, password); s.DisableChangeTracking = true; s.WaitForSync = waitForSync; s.Serialization.Converters.Add(grainRefConverter); }); isInitialized = true; } Database = new ArangoDatabase(); collectionsList = await Database.ListCollectionsAsync(); }