Exemplo n.º 1
0
        /// <summary>
        /// Handles the Reconfigured event of the Config control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        private void Config_Reconfigured(object sender, EventArgs e)
        {
            RollbarConfig config = (RollbarConfig)sender;

            Assumption.AssertNotNull(config, nameof(config));

            string newStorePath = config.GetLocalPayloadStoreFullPathName();

            if (this._useLocalPayloadStore && string.Compare(newStorePath, StoreContext.RollbarStoreDbFullName, false) != 0)
            {
                this.Stop(true);
                StoreContext.RollbarStoreDbFullName = newStorePath;
                this.Start();
            }

            lock (this._syncLock)
            {
                this.ReevaluateUseOfLocalPayloadStore();

                PayloadQueue queue = config.Logger.Queue;
                Assumption.AssertNotNull(queue, nameof(queue));

                //refresh indexing:
                this.DropIndexByToken(queue);
                this.IndexByToken(queue);
                Debug.WriteLine(this.GetType().Name + ": Re-indexed a reconfigured queue. Total queues count: " + this._allQueues.Count + ".");
            }
        }