コード例 #1
0
        public IEnumerable <QualityCenterDefectEntry> GetDefects(Dictionary <string, string> filter, bool withAudits = false)
        {
            var query   = SerializeFilter(filter);
            var swStep  = new Stopwatch();
            var swTotal = new Stopwatch();

            swTotal.Start();
            swStep.Start();
            _log.Info(string.Format("Executing Query: {0}", query));
            var requestDefect = WebRequest.Create(GetFullUrl(URL_GET_DEFECTS, domain, project, query));

            requestDefect.Headers.Set(HttpRequestHeader.Cookie, cookieInfo);

            IEnumerable <QualityCenterDefectEntry> results = new List <QualityCenterDefectEntry>();

            try
            {
                requestDefect.Timeout = 60 * 60 * 1000;
                var responseDefect = requestDefect.GetResponse();
                var reader         = new StreamReader(responseDefect.GetResponseStream());
                var result         = reader.ReadToEnd();
                reader.Close();

                swStep.Stop();
                _log.Info(String.Format("  Complete.. {0}", StopWatchUtil.GetElapsedTimeFormatted(swStep)));

                swStep.Restart();
                _log.Info("  Parsing Results...");
                results = QualityCenterDefectEntry.ParseMultiple(result);
                swStep.Stop();
                _log.Info(String.Format("  Complete.. {0}", StopWatchUtil.GetElapsedTimeFormatted(swStep)));
                _log.Info(String.Format("  {0} defects in query result.", results.Count()));
                swStep.Restart();

                if (withAudits)
                {
                    _log.Info("  Parsing Audit History...");

                    foreach (var defectEntry in results)
                    {
                        defectEntry.Audits = GetDefectAudit(defectEntry.Id);
                    }
                }
                swStep.Stop();
                _log.Info(String.Format("  Complete.. {0}", StopWatchUtil.GetElapsedTimeFormatted(swStep)));
                _log.Info(String.Format("Complete.. {0}", StopWatchUtil.GetElapsedTimeFormatted(swTotal)));
            }
            catch (WebException wex)
            {
                using (var str = wex.Response.GetResponseStream())
                {
                    using (var rdr = new StreamReader(str))
                    {
                        var exception = new QualityCenterException(rdr.ReadToEnd());
                        _log.Error(exception.ToString());
                    }
                }
            }
            return(results);
        }
コード例 #2
0
        public List <QualityCenterDefectEntry> GetDefectsByTitle(string title)
        {
            try
            {
                var requestDefect = WebRequest.Create(GetFullUrl(URL_GET_DEFECT_BY_QUERY, domain, project, QualityCenterField.Summary + "['*" + title.Replace("'", "\\'") + "*']"));
                requestDefect.Headers.Set(HttpRequestHeader.Cookie, cookieInfo);
                var responseDefect = requestDefect.GetResponse();

                var reader = new StreamReader(responseDefect.GetResponseStream());

                var result = reader.ReadToEnd();

                var results = QualityCenterDefectEntry.ParseSearchResult(result);

                reader.Close();

                return(results);
            }
            catch (WebException wex)
            {
                using (var stream = wex.Response.GetResponseStream())
                {
                    using (var reader = new StreamReader(stream))
                    {
                        var exception = new QualityCenterException(reader.ReadToEnd());
                        _log.Error(exception);
                    }
                }
            }
            return(new List <QualityCenterDefectEntry>());
        }
コード例 #3
0
        public QualityCenterDefectEntry CreateDefect(QualityCenterDefectEntry entry)
        {
            QualityCenterDefectEntry result = null;

            try
            {
                /*
                 * entry.Severity = Severity.Medium;
                 * if (entry.Summary.ToLower().Contains("critical"))
                 * {
                 *  entry.Severity = Severity.Critical;
                 * }
                 * else if (entry.Summary.ToLower().Contains("high"))
                 * {
                 *  entry.Severity = Severity.High;
                 * }
                 * else if (entry.Summary.ToLower().Contains("low"))
                 * {
                 *  entry.Severity = Severity.Low;
                 * }*/

                var request = WebRequest.Create(GetFullUrl(URL_DEFECT_COLLECTION, domain, project));
                request.Headers.Set(HttpRequestHeader.Cookie, cookieInfo);
                request.ContentType = "application/xml";

                request.Method = "POST";

                using (System.IO.Stream s = request.GetRequestStream())
                {
                    using (System.IO.StreamWriter sw = new System.IO.StreamWriter(s))
                    {
                        var xml = entry.ToQualityCenterXml();
                        sw.Write(xml);
                        sw.Flush();
                    }
                }

                var response = request.GetResponse();

                using (System.IO.Stream s = response.GetResponseStream())
                {
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(s))
                    {
                        var responseBody = sr.ReadToEnd();

                        // Read parse this defect out.
                        result = QualityCenterDefectEntry.ParseSingle(responseBody);
                    }
                }
            }
            catch (WebException wex)
            {
                using (var stream = wex.Response.GetResponseStream())
                {
                    using (var reader = new StreamReader(stream))
                    {
                        var exception = new QualityCenterException(reader.ReadToEnd());
                        _log.Error(exception.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                _log.Error(ex.ToString());
            }
            return(result);
        }