private void Initialize()
        {
            var connectionConfiguration = ConfigurationProvider.GetConnectionConfiguration(CurrentConnection.Name);
            var infrastructureFactory   = connectionConfiguration.InfrastructureFactory;

            _databaseMonitor     = infrastructureFactory.CreateDatabaseMonitor(CurrentConnection);
            _sessionDetailViewer = _databaseMonitor.CreateSessionDetailViewer();
            _sessionDetailViewer.RestoreConfiguration(_customProperties);

            var providerConfiguration = WorkDocumentCollection.GetProviderConfiguration(CurrentConnection.ProviderName);

            ActiveSessionOnly = providerConfiguration.DatabaseMonitorConfiguration.ActiveSessionOnly;
            UserSessionOnly   = providerConfiguration.DatabaseMonitorConfiguration.UserSessionOnly;
            MasterSessionOnly = providerConfiguration.DatabaseMonitorConfiguration.MasterSessionOnly;

            if (!String.IsNullOrEmpty(providerConfiguration.DatabaseMonitorConfiguration.SortMemberPath))
            {
                SessionDataGridSource.SortDescriptions.Clear();
                SessionDataGridSource.SortDescriptions.Add(new SortDescription(providerConfiguration.DatabaseMonitorConfiguration.SortMemberPath, providerConfiguration.DatabaseMonitorConfiguration.SortColumnOrder));
            }

            lock (_databaseSessions)
            {
                _databaseSessions.Clear();
            }

            Refresh();
        }
예제 #2
0
        private static void CleanEmptyBindVariables()
        {
            var providerFactories = ConfigurationProvider.ConnectionStrings.Cast <ConnectionStringSettings>()
                                    .Select(css => new { css.ProviderName, ConfigurationProvider.GetConnectionConfiguration(css.Name).InfrastructureFactory });

            foreach (var providerFactory in providerFactories.DistinctBy(f => f.ProviderName))
            {
                var providerConfiguration = GetProviderConfiguration(providerFactory.ProviderName);
                foreach (var variable in providerConfiguration.BindVariables.ToArray())
                {
                    if (variable.DataType == providerFactory.InfrastructureFactory.DefaultBindVariableType &&
                        (variable.Value == null || Equals(variable.Value, String.Empty) || Equals(variable.Value, DateTime.MinValue)))
                    {
                        providerConfiguration.RemoveBindVariable(variable.Name);
                    }
                }
            }
        }