public void RefreshHosts()
        {
            if (_hosts == null)
            {
                _hosts = new Dictionary <string, ServiceExecutionHostInfo>();
            }
            else
            {
                _hosts.Clear();
            }

            var env = this.EnvironmentConfiguration;

            using (var connection = new SqlConnection(env.ConnectionString))
            {
                var command = new SqlCommand(env.SP_HostList, connection);
                command.CommandType = CommandType.StoredProcedure;
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var info = new ServiceExecutionHostInfo()
                        {
                            HostName        = SqlUtility.ClrValue <string>(reader["HostName"]),
                            HostGuid        = SqlUtility.ClrValue <string, Guid>(reader["HostGuid"], rawGuid => Guid.Parse(rawGuid), Guid.Empty),
                            EndpointName    = SqlUtility.ClrValue <string>(reader["EndpointName"]),
                            EndpointAddress = SqlUtility.ClrValue <string>(reader["EndpointAddress"])
                        };
                        _hosts.Add(info.HostName, info);
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Get statistics for execution time per each service from DB
        /// </summary>
        /// <returns>dictionary: key = service name and profile ID, value = execution time</returns>
        public Dictionary <string, long> GetServiceExecutionStatistics(int percentile)
        {
            var statisticsDict = new Dictionary <string, long>();

            var env = EnvironmentConfiguration;

            using (var connection = new SqlConnection(env.ConnectionString))
            {
                var command = new SqlCommand(env.SP_ServicesExecutionStatistics, connection);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@Percentile", percentile);
                connection.Open();

                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var configID  = SqlUtility.ClrValue <string>(reader["ConfigID"]);
                        var profileID = SqlUtility.ClrValue <string>(reader["ProfileID"]);
                        var key       = String.Format("ConfigID:{0},ProfileID:{1}", configID, profileID);
                        if (!statisticsDict.ContainsKey(key))
                        {
                            statisticsDict.Add(key, long.Parse(reader["Value"].ToString()));
                        }
                    }
                }
            }
            return(statisticsDict);
        }
Exemplo n.º 3
0
        public void RefreshEventListenersList()
        {
            if (_environmentListeners == null)
            {
                _environmentListeners = new Dictionary <ServiceEnvironmentEventType, List <ServiceEnvironmentEventListenerInfo> >();
            }
            else
            {
                foreach (var list in _environmentListeners.Values)
                {
                    list.Clear();
                }
            }

            var env = EnvironmentConfiguration;

            using (var connection = new SqlConnection(env.ConnectionString))
            {
                var command = new SqlCommand(env.SP_EnvironmentEventListenerListGet, connection);
                command.CommandType = CommandType.StoredProcedure;
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var info = new ServiceEnvironmentEventListenerInfo
                        {
                            ListenerID = SqlUtility.ClrValue <string, Guid>(
                                reader["ListenerID"],
                                guidRaw => Guid.Parse(guidRaw),
                                Guid.Empty
                                ),
                            EventType = SqlUtility.ClrValue <string, ServiceEnvironmentEventType>(
                                reader["EventType"],
                                ev => (ServiceEnvironmentEventType)Enum.Parse(typeof(ServiceEnvironmentEventType), ev, false),
                                (ServiceEnvironmentEventType)0
                                ),
                            EndpointName    = SqlUtility.ClrValue <string>(reader["EndpointName"]),
                            EndpointAddress = SqlUtility.ClrValue <string>(reader["EndpointAddress"])
                        };
                        List <ServiceEnvironmentEventListenerInfo> list;
                        if (!_environmentListeners.TryGetValue(info.EventType, out list))
                        {
                            _environmentListeners.Add(info.EventType, list = new List <ServiceEnvironmentEventListenerInfo>());
                        }

                        list.Add(info);
                    }
                }
            }
        }
        public void RefreshEventListenersList()
        {
            if (_environmentListeners == null)
            {
                _environmentListeners = new Dictionary <ServiceEnvironmentEventType, ServiceEnvironmentEventListenerInfo>();
            }
            else
            {
                _environmentListeners.Clear();
            }

            var env = this.EnvironmentConfiguration;

            using (var connection = new SqlConnection(env.ConnectionString))
            {
                var command = new SqlCommand(env.SP_EnvironmentEventList, connection);
                command.CommandType = CommandType.StoredProcedure;
                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var info = new ServiceEnvironmentEventListenerInfo()
                        {
                            EventType = SqlUtility.ClrValue <string, ServiceEnvironmentEventType>(
                                reader["EventType"],
                                ev => (ServiceEnvironmentEventType)Enum.Parse(typeof(ServiceEnvironmentEventType), ev, false),
                                (ServiceEnvironmentEventType)0
                                ),
                            EndpointName    = SqlUtility.ClrValue <string>(reader["EndpointName"]),
                            EndpointAddress = SqlUtility.ClrValue <string>(reader["EndpointAddress"])
                        };
                        _environmentListeners.Add(info.EventType, info);
                    }
                }
            }
        }