コード例 #1
0
        /// <summary>
        /// Requests data each time the period specified by Interval has elapsed.
        /// </summary>
        public async override Task RequestData()
        {
            try {
                MailChimp.Net.MailChimpManager mailChimp = new MailChimp.Net.MailChimpManager(APIKey);
                MailChimp.Net.Models.Report    report    = await mailChimp.Reports.GetReportAsync(CampaignID);

                await WriteToDatabase(new List <InfluxDatapoint <InfluxValueField> >() { MailChimp_CampaignReport.CreateInfluxDatapoint(MeasurementName, report) });
            }
            catch (Exception ex) {
                Console.WriteLine("Error trying to request MailChimp data for campaign ID '" + CampaignID + "' using API key '" + APIKey + "': " + ex.Message);
            }
        }
コード例 #2
0
        /// <summary>
        /// Creates a DTO that contains MailChimp campaign data to be stored in the database.
        /// </summary>
        /// <param name="measurementName">The name of the measurement that the data is stored in.</param>
        /// <param name="report">The MailChimp report whose data shall be stored.</param>
        /// <returns>An InfluxDatapoint object containing the MailChimp report data.</returns>
        public static InfluxDatapoint <InfluxValueField> CreateInfluxDatapoint(string measurementName, MailChimp.Net.Models.Report report)
        {
            InfluxDatapoint <InfluxValueField> dp = new InfluxDatapoint <InfluxValueField>();

            dp.UtcTimestamp    = DateTime.UtcNow;
            dp.MeasurementName = measurementName;

            dp.Tags.Add("CampaignID", report.Id);
            dp.Fields.Add("Bounces", new InfluxValueField(report.Bounces.SoftBounces + report.Bounces.HardBounces));
            dp.Fields.Add("EMailsSent", new InfluxValueField(report.EmailsSent));
            dp.Fields.Add("Forwards", new InfluxValueField(report.Forwards.ForwardsCount));
            dp.Fields.Add("UniqueClicks", new InfluxValueField(report.Clicks.UniqueSubscriberClicks));
            dp.Fields.Add("UniqueOpens", new InfluxValueField(report.Opens.UniqueOpens));
            dp.Fields.Add("Unsubscribed", new InfluxValueField(report.Unsubscribed));

            return(dp);
        }