public EmailProvider(StatelessServiceContext context)
            : base(context)
        {
            var nodeContext = FabricRuntime.GetNodeContext();

            this.configuration     = new ServiceConfiguration(nodeContext, context.CodePackageActivationContext);
            this.storeFactory      = new EmailStoreFactory(configuration.DefaultConnectionString);
            this.billingAgent      = new BillingAgent();
            this.metricManager     = new MetricManager(configuration);
            this.credentialManager = new CredentialManager(this.storeFactory);

            this.reportManager = new ReportManager(
                nodeContext.NodeName,
                this.storeFactory,
                this.configuration,
                this.billingAgent,
                this.metricManager,
                this.credentialManager);

            this.engine = new EmailEngine(
                this.storeFactory,
                this.configuration,
                this.metricManager,
                this.credentialManager);
        }
Exemple #2
0
 public EmailEngine(
     IEmailStoreFactory factory,
     ServiceConfiguration configuration,
     MetricManager metricManager,
     ICredentialManager credentialManager)
 {
     this.store             = factory.GetStore();
     this.credentialManager = credentialManager;
     this.metricManager     = metricManager;
     this.configuration     = configuration;
 }
Exemple #3
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;
        }
Exemple #4
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;
        }
        public OperationController(
            IEmailStoreFactory factory,
            IEmailEngine engine,
            ServiceConfiguration configuration,
            IReportManager reportManager,
            ICredentialManager credentialManager,
            MetricManager metricManager)
        {
            this.store         = factory.GetStore();
            this.engine        = engine;
            this.configuration = configuration;

            this.reportManager     = reportManager;
            this.credentialManager = credentialManager;
            this.metricManager     = metricManager;

            this.random       = new Random();
            this.proxyFactory = new ServiceProxyFactory((c) =>
            {
                return(new FabricTransportServiceRemotingClientFactory(
                           serializationProvider: new ServiceRemotingJsonSerializationProvider()));
            });
        }
Exemple #6
0
 public CredentialManager(IEmailStoreFactory factory)
 {
     this.store = factory.GetStore();
     this.connectorMetadataCache = new ConcurrentDictionary <string, ConnectorMetadata>();
 }