/// <summary> /// Initializes this instance. /// </summary> /// <returns></returns> public override IDocumentStore Initialize() { if (initialized) { return(this); } AssertValidConfiguration(); try { InitializeSecurity(); InitializeInternal(); #if !SILVERLIGHT if (Conventions.DocumentKeyGenerator == null) // don't overwrite what the user is doing { var generator = new MultiDatabaseHiLoGenerator(32); Conventions.DocumentKeyGenerator = (dbName, databaseCommands, entity) => generator.GenerateDocumentKey(dbName, databaseCommands, Conventions, entity); } #endif if (Conventions.AsyncDocumentKeyGenerator == null && asyncDatabaseCommandsGenerator != null) { #if !SILVERLIGHT var generator = new AsyncMultiDatabaseHiLoKeyGenerator(32); Conventions.AsyncDocumentKeyGenerator = (dbName, commands, entity) => generator.GenerateDocumentKeyAsync(dbName, commands, Conventions, entity); #else Conventions.AsyncDocumentKeyGenerator = (dbName, commands, entity) => { var typeTagName = Conventions.GetTypeTagName(entity.GetType()); if (typeTagName == null) { return(CompletedTask.With(Guid.NewGuid().ToString())); } return(CompletedTask.With(typeTagName + "/" + Guid.NewGuid())); }; #endif } initialized = true; #if !SILVERLIGHT RecoverPendingTransactions(); if (string.IsNullOrEmpty(DefaultDatabase) == false) { DatabaseCommands.ForSystemDatabase().EnsureDatabaseExists(DefaultDatabase, ignoreFailures: true); } #endif } catch (Exception) { Dispose(); throw; } return(this); }
/// <summary> /// Initializes this instance. /// </summary> /// <returns></returns> public IDocumentStore Initialize(bool ensureDatabaseExists) { if (initialized) { return(this); } AssertValidConfiguration(); jsonRequestFactory = new HttpJsonRequestFactory(MaxNumberOfCachedRequests, HttpMessageHandlerFactory, Conventions.AcceptGzipContent, Conventions.AuthenticationScheme); try { SecurityExtensions.InitializeSecurity(Conventions, jsonRequestFactory, Url); InitializeInternal(); if (Conventions.DocumentKeyGenerator == null)// don't overwrite what the user is doing { var generator = new MultiDatabaseHiLoGenerator(32); Conventions.DocumentKeyGenerator = (dbName, databaseCommands, entity) => generator.GenerateDocumentKey(dbName, databaseCommands, Conventions, entity); } if (Conventions.AsyncDocumentKeyGenerator == null && asyncDatabaseCommandsGenerator != null) { var generator = new AsyncMultiDatabaseHiLoKeyGenerator(32); Conventions.AsyncDocumentKeyGenerator = (dbName, commands, entity) => generator.GenerateDocumentKeyAsync(dbName, commands, Conventions, entity); } initialized = true; #if !(MONO || DNXCORE50) RecoverPendingTransactions(); #endif if (ensureDatabaseExists && string.IsNullOrEmpty(DefaultDatabase) == false && DefaultDatabase.Equals(Constants.SystemDatabase) == false) //system database exists anyway { //If we have indication that the database is part of a replication cluster we don't want to create it, //the reason for this is that we want the client to failover to a diffrent database. var serverHash = ServerHash.GetServerHash(DatabaseCommands.Url); var document = ReplicationInformerLocalCache.TryLoadReplicationInformationFromLocalCache(serverHash); var replicationDocument = document?.DataAsJson.JsonDeserialization <ReplicationDocumentWithClusterInformation>(); if (replicationDocument == null) { DatabaseCommands.ForSystemDatabase().GlobalAdmin.EnsureDatabaseExists(DefaultDatabase, true); } } } catch (Exception) { Dispose(); throw; } return(this); }
/// <summary> /// Initializes this instance. /// </summary> /// <returns></returns> public IDocumentStore Initialize(bool ensureDatabaseExists) { if (initialized) { return(this); } AssertValidConfiguration(); #if !NETFX_CORE jsonRequestFactory = new HttpJsonRequestFactory(MaxNumberOfCachedRequests, HttpMessageHandler); #else jsonRequestFactory = new HttpJsonRequestFactory(); #endif try { InitializeSecurity(); InitializeInternal(); if (Conventions.DocumentKeyGenerator == null) // don't overwrite what the user is doing { var generator = new MultiDatabaseHiLoGenerator(32); Conventions.DocumentKeyGenerator = (dbName, databaseCommands, entity) => generator.GenerateDocumentKey(dbName, databaseCommands, Conventions, entity); } if (Conventions.AsyncDocumentKeyGenerator == null && asyncDatabaseCommandsGenerator != null) { var generator = new AsyncMultiDatabaseHiLoKeyGenerator(32); Conventions.AsyncDocumentKeyGenerator = (dbName, commands, entity) => generator.GenerateDocumentKeyAsync(dbName, commands, Conventions, entity); } initialized = true; #if !NETFX_CORE && !MONO RecoverPendingTransactions(); if (ensureDatabaseExists && string.IsNullOrEmpty(DefaultDatabase) == false && DefaultDatabase.Equals(Constants.SystemDatabase) == false) //system database exists anyway { DatabaseCommands.ForSystemDatabase().GlobalAdmin.EnsureDatabaseExists(DefaultDatabase, ignoreFailures: true); } #endif } catch (Exception) { Dispose(); throw; } return(this); }
/// <summary> /// Initializes this instance. /// </summary> /// <returns></returns> public IDocumentStore Initialize(bool ensureDatabaseExists) { if (initialized) { return(this); } AssertValidConfiguration(); jsonRequestFactory = new HttpJsonRequestFactory(MaxNumberOfCachedRequests, HttpMessageHandlerFactory, Conventions.AcceptGzipContent, Conventions.AuthenticationScheme); try { if (string.IsNullOrEmpty(ApiKey) == false) { Credentials = null; } SecurityExtensions.InitializeSecurity(Conventions, jsonRequestFactory, Url, Credentials); InitializeInternal(); if (Conventions.DocumentKeyGenerator == null)// don't overwrite what the user is doing { var generator = new MultiDatabaseHiLoGenerator(32); Conventions.DocumentKeyGenerator = (dbName, databaseCommands, entity) => generator.GenerateDocumentKey(dbName, databaseCommands, Conventions, entity); } if (Conventions.AsyncDocumentKeyGenerator == null && asyncDatabaseCommandsGenerator != null) { var generator = new AsyncMultiDatabaseHiLoKeyGenerator(32); Conventions.AsyncDocumentKeyGenerator = (dbName, commands, entity) => generator.GenerateDocumentKeyAsync(dbName, commands, Conventions, entity); } Smuggler = new DatabaseSmuggler(this); initialized = true; } catch (Exception) { Dispose(); throw; } return(this); }
/// <summary> /// Initializes this instance. /// </summary> /// <returns></returns> public IDocumentStore Initialize(bool ensureDatabaseExists) { if (initialized) return this; AssertValidConfiguration(); jsonRequestFactory = new HttpJsonRequestFactory(MaxNumberOfCachedRequests, HttpMessageHandlerFactory, Conventions.AcceptGzipContent); try { SecurityExtensions.InitializeSecurity(Conventions, jsonRequestFactory, Url); InitializeInternal(); if (Conventions.DocumentKeyGenerator == null)// don't overwrite what the user is doing { var generator = new MultiDatabaseHiLoGenerator(32); Conventions.DocumentKeyGenerator = (dbName, databaseCommands, entity) => generator.GenerateDocumentKey(dbName, databaseCommands, Conventions, entity); } if (Conventions.AsyncDocumentKeyGenerator == null && asyncDatabaseCommandsGenerator != null) { var generator = new AsyncMultiDatabaseHiLoKeyGenerator(32); Conventions.AsyncDocumentKeyGenerator = (dbName, commands, entity) => generator.GenerateDocumentKeyAsync(dbName, commands, Conventions, entity); } initialized = true; #if !MONO RecoverPendingTransactions(); #endif if (ensureDatabaseExists && string.IsNullOrEmpty(DefaultDatabase) == false && DefaultDatabase.Equals(Constants.SystemDatabase) == false) //system database exists anyway { DatabaseCommands.ForSystemDatabase().GlobalAdmin.EnsureDatabaseExists(DefaultDatabase, ignoreFailures: true); } } catch (Exception) { Dispose(); throw; } return this; }