Beispiel #1
0
        /// <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;
        }