public ReportTelemetryManager(
            ISmsStoreFactory factory,
            ServiceConfiguration configuration,
            BillingAgent billingAgent,
            MetricManager metricManager,
            ICredentialManager credentialManager)
        {
            this.store = factory.GetStore();

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

            this.client = account.CreateCloudTableClient();

            this.summaryTable   = this.client.GetTableReference(MessageSummaryTableName);
            this.detailTable    = this.client.GetTableReference(MessageDetailTableName);
            this.batchTable     = this.client.GetTableReference(MessageBatchRecordTableName);
            this.idMappingTable = this.client.GetTableReference(MessageIdMappingTableName);

            this.summaryTable.CreateIfNotExists();
            this.detailTable.CreateIfNotExists();
            this.batchTable.CreateIfNotExists();
            this.idMappingTable.CreateIfNotExists();

            this.billingAgent      = billingAgent;
            this.metricManager     = metricManager;
            this.credentialManager = credentialManager;

            this.updateLock = new SemaphoreSlim(1, 1);
        }
Esempio n. 2
0
        public ReportManager(
            ISmsStoreFactory factory,
            ServiceConfiguration configuration,
            BillingAgent billingAgent,
            MetricManager metricManager,
            ICredentialManager credentialManager
            /*,ITimeSeriesManager timeSeriesManager*/)
        {
            this.store            = factory.GetStore();
            this.telemetryManager = new ReportTelemetryManager(
                factory,
                configuration,
                billingAgent,
                metricManager,
                credentialManager);

            this.agents            = new ConcurrentDictionary <string, ReportAgent>();
            this.credentialManager = credentialManager;
            // this.timeSeriesManager = timeSeriesManager;

            this.Init().Wait();
        }