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); }
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); }