Exemple #1
0
        /// <summary>
        /// Registers a ledger provider for use from the static <see cref="Ledger"/> class,
        /// throughout the lifetime of the application.
        ///
        /// Note: Only one ledger provider can be registered.
        /// </summary>
        /// <param name="LedgerProvider">Ledger provider to use.</param>
        /// <param name="Lock">If the ledger provider should be locked for the rest of the running time of the application.</param>
        public static void Register(ILedgerProvider LedgerProvider, bool Lock)
        {
            if (provider != null && locked)
            {
                throw new Exception("A ledger provider is already registered.");
            }

            provider = LedgerProvider;
            locked   = Lock;
        }
Exemple #2
0
        /// <summary>
        /// Stops the module.
        /// </summary>
        public async Task Stop()
        {
            if (Database.HasProvider)
            {
                databaseProvider = Database.Stop();
                await databaseProvider.Stop();
            }

            if (Ledger.HasProvider)
            {
                ledgerProvider = Ledger.Stop();
                await ledgerProvider.Stop();
            }
        }
Exemple #3
0
        /// <summary>
        /// Starts the module.
        /// </summary>
        /// <returns>If an asynchronous start operation has been started, a wait handle is returned. This
        /// wait handle can be used to wait for the asynchronous process to finish. If no such asynchronous
        /// operation has been started, null can be returned.</returns>
        public async Task Start()
        {
            if (Database.HasProvider)
            {
                await Database.Provider.Start();
            }

            if (Ledger.HasProvider)
            {
                await Ledger.Provider.Start();
            }

            databaseProvider = null;
            ledgerProvider   = null;
        }
Exemple #4
0
 /// <summary>
 /// Registers a ledger provider for use from the static <see cref="Ledger"/> class,
 /// throughout the lifetime of the application.
 ///
 /// Note: Only one ledger provider can be registered.
 /// </summary>
 /// <param name="LedgerProvider">Ledger provider to use.</param>
 public static void Register(ILedgerProvider LedgerProvider)
 {
     Register(LedgerProvider, true);
 }
 public LedgerController(IUserAccountProvider _userAccountProvider, ILedgerProvider _ledgerProvider)
 {
     this.userAccountProvider = _userAccountProvider;
     this.ledgerProvider      = _ledgerProvider;
 }