/// <summary> /// Initialize the server vault connector subsystem. /// </summary> /// <param name="Script">Supplies the main script object.</param> /// <param name="ConnectionString">Supplies the connection string for /// the server vault.</param> /// <param name="VerboseLogging">Supplies true if verbose logging is /// enabled.</param> /// <returns>True if the server vault connector is /// initialized.</returns> public static bool Initialize(ACR_ServerCommunicator Script, string ConnectionString, bool VerboseLogging) { if (Initialized) { return(true); } try { StoreConnectionString = ConnectionString; FileStoreProvider.DefaultVaultConnectionString = ConnectionString; SynchronizeAccountFromVaultDelegate = new SynchronizeAccountFromVault(OnSynchronizeAccountFromVault); SynchronizeAccountFromVaultHandle = GCHandle.Alloc(SynchronizeAccountFromVaultDelegate); SynchronizeAccountFileToVaultDelegate = new SynchronizeAccountFileToVault(OnSynchronizeAccountFileToVault); SynchronizeAccountFileToVaultHandle = GCHandle.Alloc(SynchronizeAccountFileToVaultDelegate); try { if (SetStoragePluginCallbacks(Marshal.GetFunctionPointerForDelegate(SynchronizeAccountFromVaultDelegate), Marshal.GetFunctionPointerForDelegate(SynchronizeAccountFileToVaultDelegate), IntPtr.Zero) == 0) { throw new ApplicationException("Failed to install storage plugin callbacks."); } } catch (Exception e) { Script.WriteTimestampedLogEntry(String.Format("ServerVaultConnector.Initialize: Exception: {0}", e)); SynchronizeAccountFileToVaultDelegate = null; SynchronizeAccountFileToVaultHandle.Free(); SynchronizeAccountFromVaultDelegate = null; SynchronizeAccountFromVaultHandle.Free(); throw; } } catch { return(false); } Initialized = true; return(true); }
/// <summary> /// Initialize the server vault connector subsystem. /// </summary> /// <param name="Script">Supplies the main script object.</param> /// <param name="ConnectionString">Supplies the connection string for /// the server vault.</param> /// <param name="VerboseLogging">Supplies true if verbose logging is /// enabled.</param> /// <returns>True if the server vault connector is /// initialized.</returns> public static bool Initialize(ACR_ServerCommunicator Script, string ConnectionString, bool VerboseLogging) { if (Initialized) return true; try { StoreConnectionString = ConnectionString; FileStoreProvider.DefaultVaultConnectionString = ConnectionString; SynchronizeAccountFromVaultDelegate = new SynchronizeAccountFromVault(OnSynchronizeAccountFromVault); SynchronizeAccountFromVaultHandle = GCHandle.Alloc(SynchronizeAccountFromVaultDelegate); SynchronizeAccountFileToVaultDelegate = new SynchronizeAccountFileToVault(OnSynchronizeAccountFileToVault); SynchronizeAccountFileToVaultHandle = GCHandle.Alloc(SynchronizeAccountFileToVaultDelegate); try { if (SetStoragePluginCallbacks(Marshal.GetFunctionPointerForDelegate(SynchronizeAccountFromVaultDelegate), Marshal.GetFunctionPointerForDelegate(SynchronizeAccountFileToVaultDelegate), IntPtr.Zero) == 0) { throw new ApplicationException("Failed to install storage plugin callbacks."); } } catch (Exception e) { Script.WriteTimestampedLogEntry(String.Format("ServerVaultConnector.Initialize: Exception: {0}", e)); SynchronizeAccountFileToVaultDelegate = null; SynchronizeAccountFileToVaultHandle.Free(); SynchronizeAccountFromVaultDelegate = null; SynchronizeAccountFromVaultHandle.Free(); throw; } } catch { return false; } Initialized = true; return true; }