/// <summary> /// Parses the error response into an exception. /// </summary> /// <param name="errorsXml">The errors XML.</param> /// <param name="e">The original exception.</param> /// <returns>An AdWords Reports exception that represents the error.</returns> private AdWordsReportsException ParseException(Exception e, string contents) { List <ReportDownloadError> errorList = new List <ReportDownloadError>(); try { XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(contents); XmlNodeList errorNodes = xDoc.DocumentElement.SelectNodes("ApiError"); foreach (XmlElement errorNode in errorNodes) { ReportDownloadError downloadError = new ReportDownloadError(); downloadError.ErrorType = errorNode.SelectSingleNode("type").InnerText; downloadError.FieldPath = errorNode.SelectSingleNode("fieldPath").InnerText; downloadError.Trigger = errorNode.SelectSingleNode("trigger").InnerText; errorList.Add(downloadError); } } catch { } AdWordsReportsException ex = new AdWordsReportsException( "Report download errors occurred.", e); ex.Errors = errorList.ToArray(); return(ex); }
/// <summary> /// Parses the error response into an exception. /// </summary> /// <param name="exception">The original exception.</param> /// <param name="contents">The errors XML.</param> /// <returns>An AdWords Reports exception that represents the error.</returns> private AdWordsReportsException ParseException(Exception exception, string contents) { List <ReportDownloadError> errorList = new List <ReportDownloadError>(); try { XmlDocument xDoc = XmlUtilities.CreateDocument(contents); XmlNodeList errorNodes = xDoc.DocumentElement.SelectNodes("ApiError"); foreach (XmlElement errorNode in errorNodes) { ReportDownloadError downloadError = new ReportDownloadError(); downloadError.ErrorType = errorNode.SelectSingleNode("type").InnerText; downloadError.FieldPath = errorNode.SelectSingleNode("fieldPath").InnerText; downloadError.Trigger = errorNode.SelectSingleNode("trigger").InnerText; errorList.Add(downloadError); } } catch { } AdWordsReportsException retval = new AdWordsReportsException(this.reportVersion, AdWordsErrorMessages.ReportingExceptionOccurred, exception); retval.Errors = errorList.ToArray(); return(retval); }
/// <summary> /// Parses the error response into an exception. /// </summary> /// <param name="exception">The original exception.</param> /// <param name="contents">The errors XML.</param> /// <returns>An AdWords Reports exception that represents the error.</returns> private AdWordsReportsException ParseException(Exception exception, string contents) { List<ReportDownloadError> errorList = new List<ReportDownloadError>(); try { XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(contents); XmlNodeList errorNodes = xDoc.DocumentElement.SelectNodes("ApiError"); foreach (XmlElement errorNode in errorNodes) { ReportDownloadError downloadError = new ReportDownloadError(); downloadError.ErrorType = errorNode.SelectSingleNode("type").InnerText; downloadError.FieldPath = errorNode.SelectSingleNode("fieldPath").InnerText; downloadError.Trigger = errorNode.SelectSingleNode("trigger").InnerText; errorList.Add(downloadError); } } catch { } AdWordsReportsException retval = new AdWordsReportsException( "Report download errors occurred.", exception); retval.Errors = errorList.ToArray(); return retval; }
/// <summary> /// Determines whether the exception thrown by the server matches a known /// error. /// </summary> /// <param name="exception">The exception.</param> /// <param name="errorMessages">The known error message.</param> /// <returns>True, if the server exception matches the known error, false /// otherwise.</returns> private static bool MatchesError(AdWordsReportsException exception, string[] errorMessages) { foreach (ReportDownloadError error in exception.Errors) { foreach (String errorMessage in errorMessages) { if (error.ErrorType.Contains(errorMessage)) { return true; } } } return false; }