public void SubmitReport() { var request = new SubmitReportRequest(RawRequests.SubmitReport); request.Parse(); Assert.Equal("XXXXXX", request.Certificate); Assert.Equal("XXXXXX", request.Proof); Assert.Equal("0", request.CsId.ToString()); Assert.Equal("0", request.CcId.ToString()); Assert.Equal("0", request.GameId.ToString()); Assert.Equal("XXXXXX", request.Authoritative); }
/// <summary> /// Initiates the full course listing. /// </summary> /// <param name="scopingUser">The username for scoping the report if report uses it</param> /// <param name="format">The format</param> /// <param name="report">The report name</param> /// <param name="reportParams">The report parameters.</param> /// <param name="language">The language, or NULL</param> /// <param name="duration">The duration to retain report (Use one of the following numeric values: 1 - 1 hour, 2 - 8 hours, 3 - 24 hours.</param> /// <param name="client">The client.</param> /// <param name="closeclient">if set to <c>true</c> [closeclient].</param> /// <returns></returns> public static HandleResponse SubmitReport(string scopingUser, reportFormat format, string report, MapItem[] reportParams, string language, int duration, OlsaPortTypeClient client, bool closeclient = false) { //Set up our response object HandleResponse response = null; try { //Create our request SubmitReportRequest request = new SubmitReportRequest(); //Pull the OlsaAuthenticationBehviour so we can extract the customerid AuthenticationBehavior olsaCredentials = (AuthenticationBehavior)client.ChannelFactory.Endpoint.Behaviors.Where(p => p.GetType() == typeof(AuthenticationBehavior)).FirstOrDefault(); request.customerId = olsaCredentials.UserName; request.scopingUserId = scopingUser; request.reportFormat = format; request.report = report; request.language = language; request.duration = duration; request.reportParameters = reportParams; response = client.UD_SubmitReport(request); } catch (WebException) { // This captures any Web Exceptions such as proxy errors etc // See http://msdn.microsoft.com/en-us/library/48ww3ee9(VS.80).aspx throw; } catch (TimeoutException) { //This captures the WCF timeout exception throw; } //WCF fault exception will be thrown for any other issues such as Security catch (FaultException fe) { if (fe.Message.ToLower(CultureInfo.InvariantCulture).Contains("the security token could not be authenticated or authorized")) { //The OLSA Credentials specified could not be authenticated throw; } throw; } catch (Exception) { //Any other type of exception, perhaps out of memory throw; } finally { //Shutdown and dispose of the client if (client != null) { if (client.State == CommunicationState.Faulted) { client.Abort(); } if (closeclient) { //We cannot resue client if we close client.Close(); } } } return(response); }
static void Main(string[] args) { var r = new Report.SiteDomainPerformanceReportRequest { AdvertiserId = 1609099, Columns = new SiteDomainPerformanceReportColumn[] { SiteDomainPerformanceReportColumn.Day, SiteDomainPerformanceReportColumn.SiteDomain, SiteDomainPerformanceReportColumn.Imps, SiteDomainPerformanceReportColumn.Clicks, SiteDomainPerformanceReportColumn.Cpm, SiteDomainPerformanceReportColumn.CpmBuyingCurrency, SiteDomainPerformanceReportColumn.AdvertiserId, SiteDomainPerformanceReportColumn.AdvertiserName, SiteDomainPerformanceReportColumn.AdvertiserCode, SiteDomainPerformanceReportColumn.AdvertiserCurrency, SiteDomainPerformanceReportColumn.BuyerMemberId, SiteDomainPerformanceReportColumn.BuyerMemberName, SiteDomainPerformanceReportColumn.BuyingCurrency, SiteDomainPerformanceReportColumn.DealId, SiteDomainPerformanceReportColumn.DealCode, SiteDomainPerformanceReportColumn.DealName, SiteDomainPerformanceReportColumn.Ctr }, Format = ReportFormat.CSV, //Emails = new List<string>() { "*****@*****.**" }, EscapeFields = false, Orders = new Report.ReportOrderBy[] { new Report.ReportOrderBy { OrderBy = "day", Direction = OrderDirection.ASC }, new Report.ReportOrderBy { OrderBy = "imps", Direction = OrderDirection.DESC } }, ReportInterval = ReportInterval.Custom, ReportStartDate = new DateTime(2017, 3, 13), ReportEndDate = new DateTime(2017, 3, 17), ReportingDecimalType = ReportingDecimalType.Decimal, TimeZone = ReportTimezone.AsiaHongKong, //Filters = new Report.ReportFilter[] //{ // new Report.ReportFilter // { // Name = "gender", // Value = "male" // }, // new Report.ReportFilter // { // Name = "day", // Value = 20 // } //}, //GroupFilters = new Report.ReportGroupFilter[] //{ // new Report.ReportGroupFilter // { // Name = "imps", // Value = 1000, // Operaor = Operator.LessThan // } //} }; var sr = new SubmitReportRequest { ReportRequest = r, }; //replace username & password with yours using (var _client = new PremiumAppNexusApiClient("username", "password")) { _client.AcquireTokenByUserName += AcquireTokenByUserName; _client.TokenRefreshedCallback += TokenRefreshedCallback; _client.TokenGrantedCallback += TokenGrantedCallback; var response = _client.Execute(sr); if (response == null || response.Response == null) { Console.WriteLine("network communication error"); return; } if (response.Response.Status != "OK") { Console.WriteLine("submit report error: {0}", response.Response.ErrorMessage); } File.WriteAllText(response.GetType().Name + ".json", Encoding.UTF8.GetString(Convert.FromBase64String(response.ResponseBase64String))); Console.WriteLine("report id: {0}", response.Response.ReportId); var url = ""; while (true) { var pollRequest = new PollReportStatusRequest(response.Response.ReportId); var pollResponse = _client.Execute(pollRequest); if (pollResponse.Response.ExecutionStatus == "ready") { url = pollResponse.Response.ReportInfo.Url; break; } } if (string.IsNullOrWhiteSpace(url)) { Console.WriteLine("url is null"); return; } var downloadRequest = new DownloadReportFileRequest(url); var downloadResponse = _client.ExecuteDownload(downloadRequest, @"d:\123.csv"); if (downloadResponse.Success) { Console.WriteLine("File was downloaded at {0}", downloadResponse.ReportFilePath); } } Console.WriteLine("Done"); Console.ReadLine(); }