private static async Task <AnalyticsResources> DiscoverAnalyticsResourcesAsync(IAmazonServiceDiscovery discovery,
                                                                                       string serviceId)
        {
            GetInstanceResponse resourcesResponse;

            try
            {
                resourcesResponse = await discovery.GetInstanceAsync(new GetInstanceRequest()
                {
                    ServiceId  = serviceId,
                    InstanceId = "analytics",
                });
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            var attributes = resourcesResponse.Instance.Attributes;

            var storage = new AnalyticsResources()
            {
                ChatStreamName             = attributes["chatstream"],
                SentimentReportWorkgroup   = attributes["sentimentreportworkgroup"],
                SentimentReportJobQueueUrl = attributes["sentimentreportqueue"]
            };

            return(storage);
        }
Пример #2
0
 public AthenaSentimentReporter(
     IAmazonAthena athena,
     string database,
     string table,
     AnalyticsResources analyticsResources,
     ILogger <AthenaSentimentReporter> logger)
 {
     this.athena    = athena;
     this.workgroup = analyticsResources.SentimentReportWorkgroup;
     this.database  = database;
     this.table     = table;
     this.logger    = logger;
 }
 public SentimentReportGenerator(
     IAmazonSQS sqs,
     ISentimentReporter reporter,
     AnalyticsResources analyticsResources,
     IUserIdsStorageManager userIdsStorageManager,
     ISentimentSnapshotsStorage sentimentSnapshotsStorage,
     ILogger <SentimentReportGenerator> logger)
 {
     this.sqs      = sqs;
     this.reporter = reporter;
     this.logger   = logger;
     this.userIdsStorageManager     = userIdsStorageManager;
     this.sentimentSnapshotsStorage = sentimentSnapshotsStorage;
     this.queueUrl = analyticsResources.SentimentReportJobQueueUrl;
 }