/// <summary> /// Downloads the campaign performance report. /// </summary> /// <param name="user">The user for which the report is run..</param> /// <param name="startDate">The start date in yyyyMMdd format.</param> /// <param name="endDate">The end date in yyyyMMdd format.</param> /// <returns>The campaign performance report, as a CSV file.</returns> private CsvFile DownloadCampaignPerformanceReport(AdWordsUser user, string startDate, string endDate) { string query = string.Format("Select {0} from CAMPAIGN_PERFORMANCE_REPORT DURING {1}, {2}", string.Join(", ", CAMPAIGN_PERFORMANCE_COLUMNS), startDate, endDate); AdWordsAppConfig appConfig = user.Config as AdWordsAppConfig; appConfig.SkipReportHeader = true; appConfig.SkipReportSummary = true; ReportUtilities reportUtilities = new ReportUtilities(user, query, DownloadFormat.CSV.ToString()); using (ReportResponse response = reportUtilities.GetResponse()) { string reportContents = Encoding.UTF8.GetString(response.Download()); CsvFile csvFile = new CsvFile(); csvFile.ReadFromString(reportContents, true); return csvFile; } }
/// <summary> /// Load all error codes into memory. /// </summary> private static void LoadErrorCodes() { allCodes = new Dictionary<int, ErrorCode>(); CsvFile reader = new CsvFile(); reader.ReadFromString(CodeCsvs.ErrorCodes, true); List<ErrorCode> retVal = new List<ErrorCode>(); foreach (string[] item in reader.Records) { allCodes.Add(int.Parse(item[0]), new ErrorCode(int.Parse(item[0]), item[1])); } }