Ejemplo n.º 1
0
        public virtual Message Query(QueryXmlRequest query)
        {
            _log.DebugFormat("Query: {0}", query.query);
            if (_log.IsDebugEnabled && query.parameters.Count > 0)
            {
                _log.Debug("Parameters: ");
                foreach (var parameter in query.parameters)
                {
                    _log.DebugFormat("\t{0}={1}", parameter.Key, parameter.Value);
                }
            }
            var stopwatch = new Stopwatch();

            try
            {
                if (_infoService == null)
                {
                    Open();
                }
                stopwatch.Start();
                return(_infoService.Query(query));
            }
            catch (FaultException <InfoServiceFaultContract> ex)
            {
                _log.Error("Error executing query: " + ex.Detail.Message + Environment.NewLine + query.query);
                throw;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Error executing query: {0} {1} {2}", ex, Environment.NewLine, query.query);
                foreach (var parameter in query.parameters)
                {
                    _log.ErrorFormat("\t{0}={1}", parameter.Key, parameter.Value);
                }
                throw;
            }
            finally
            {
                stopwatch.Stop();
                if (stopwatch.Elapsed > longRunningQueryTime)
                {
                    _log.WarnFormat("Support! -- LONG RUNNING QUERY: {0} ms: {1}", stopwatch.Elapsed.TotalMilliseconds, query.query);
                }
            }
        }