예제 #1
0
        public ReportManager(
            string node,
            IEmailStoreFactory factory,
            ServiceConfiguration configuration,
            BillingAgent billingAgent,
            MetricManager metricManager,
            ICredentialManager credentialManager)
        {
            this.node             = node;
            this.store            = factory.GetStore();
            this.telemetryManager = new ReportTelemetryManager(
                factory,
                configuration,
                billingAgent,
                metricManager);

            this.credentialManager = credentialManager;
            this.configuration     = configuration;
        }
예제 #2
0
        public ReportTelemetryManager(
            IEmailStoreFactory factory,
            ServiceConfiguration configuration,
            BillingAgent billingAgent,
            MetricManager metricManager)
        {
            this.store = factory.GetStore();

            var account = CloudStorageAccount.Parse(configuration.TelemetryStoreConnectionString);

            this.client = account.CreateCloudTableClient();

            this.auditTable            = this.client.GetTableReference(MessageAuditTableName);
            this.reportInProgressTable = this.client.GetTableReference(ReportInprogressTableName);
            this.reportLeaseTable      = this.client.GetTableReference(ReportLeaseTableName);

            this.auditTable.CreateIfNotExists();
            this.reportInProgressTable.CreateIfNotExists();
            this.reportLeaseTable.CreateIfNotExists();

            this.billingAgent  = billingAgent;
            this.metricManager = metricManager;
        }