Ejemplo n.º 1
0
        private static void Main(string[] args)
        {
            System.Console.WriteLine($"[{DateTime.Now}] - Starting program...");

            var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

            System.Console.WriteLine($"[{DateTime.Now}] - Environment: {environmentName}");

            var builder = new ConfigurationBuilder()
                          .AddJsonFile("appsettings.json", true, true)
                          .AddJsonFile($"appsettings.{environmentName}.json", true, true);

            _configuration = builder.Build();

            try
            {
                // Set the InfluxDB metrics collector
                var influxDbServerAddress = GetInfluxDbServerAddress();
                IMetricsCollectorWrapper metricsCollectorWrapper = new MetricsCollectorWrapper(influxDbServerAddress, Db, TimeSpan.FromSeconds(2));
                var repository = new TweetsRepository(metricsCollectorWrapper);

                // Start the Twitter Stream
                var credentials   = GetTwitterCredentials();
                var keys          = new TextAnalyticsConfiguration(_configuration);
                var streamFactory = new StreamFactory(new TweetProcessor(repository, keys, HttpClient), credentials, null);
                var keyword       = GetKeyword();
                streamFactory.StartStream(keyword);
            }
            catch (Exception e)
            {
                System.Console.Error.WriteLine($"[{DateTime.Now}] - Exception: {e.Message}");
            }
        }
Ejemplo n.º 2
0
        public void SaveTweet()
        {
            // Arrange
            var metricsCollectorWrapper = new Mock <IMetricsCollectorWrapper>();
            var tweetsRepository        = new TweetsRepository(metricsCollectorWrapper.Object);
            var tweet = new Mock <ITweet>();

            tweet.SetupGet(x => x.Text).Returns("Hi there!");
            tweet.SetupGet(x => x.CreatedBy.UserIdentifier.ScreenName).Returns("@bob");
            tweet.SetupGet(x => x.IsRetweet).Returns(false);
            tweet.SetupGet(x => x.RetweetCount).Returns(5);
            tweet.SetupGet(x => x.Favorited).Returns(true);
            tweet.SetupGet(x => x.FavoriteCount).Returns(1);
            tweet.SetupGet(x => x.CreatedAt).Returns(new DateTime(2019, 02, 10, 01, 02, 03));

            // Act
            tweetsRepository.SaveTweet(new MatchedTweetReceivedEventArgs(tweet.Object, ""));

            // Assert
            var fields = new Dictionary <string, object>
            {
                { "text", "Hi there!" },
                { "screen_name", "@bob" },
                { "isRetweet", false },
                { "retweetCount", 5 },
                { "favorited", true },
                { "favoriteCount", 1 },
                { "created_at", new DateTime(2019, 02, 10, 01, 02, 03) }
            };

            metricsCollectorWrapper.Verify(x => x.Write("tweet", fields), Times.Once);
        }
Ejemplo n.º 3
0
        public void SaveNullSentiment()
        {
            // Arrange
            var metricsCollectorWrapper = new Mock <IMetricsCollectorWrapper>();
            var tweetsRepository        = new TweetsRepository(metricsCollectorWrapper.Object);

            // Act
            tweetsRepository.SaveSentiment(null);

            // Assert
            metricsCollectorWrapper.Verify(x => x.Write("sentiment", It.IsAny <Dictionary <string, object> >()),
                                           Times.Never);
        }
        private static void Main(string[] args)
        {
            Console.WriteLine($"[{DateTime.Now}] - Starting program...");

            var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

            Console.WriteLine($"[{DateTime.Now}] - Environment: {environmentName}");

            var builder = new ConfigurationBuilder()
                          .AddJsonFile("appsettings.json", true, true)
                          .AddJsonFile($"appsettings.{environmentName}.json", true, true);

            _configuration = builder.Build();

            try
            {
                var documentClient = new DocumentClient(new Uri(_configuration["CosmosDB:EndpointUrl"]),
                                                        _configuration["CosmosDB:AuthorizationKey"]);

                var repository = new TweetsRepository(documentClient);

                // Start the Twitter Stream
                var credentials = GetTwitterCredentials();
                var keys        = new TextAnalyticsConfiguration(_configuration);

                int.TryParse(_configuration["Twitter:TweetsPerMinute"], out var tweetsPerMinute);

                var streamFactory =
                    new StreamFactory(new TweetProcessor(repository, keys, HttpClient), credentials, null, tweetsPerMinute);
                var keyword = GetKeyword();
                streamFactory.StartStream(keyword);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine($"[{DateTime.Now}] - Exception: {e.Message}");

                Console.WriteLine("Press any key to exit...");
                Console.ReadKey();
            }
        }
Ejemplo n.º 5
0
        public void SaveValidSentiment()
        {
            // Arrange
            var metricsCollectorWrapper = new Mock <IMetricsCollectorWrapper>();
            var tweetsRepository        = new TweetsRepository(metricsCollectorWrapper.Object);

            // Act
            var tweetSentiment = new TweetSentiment
            {
                FullText = "I am happy!",
                Score    = 0.99
            };

            tweetsRepository.SaveSentiment(tweetSentiment);

            // Assert
            var fields = new Dictionary <string, object>
            {
                { "fullText", "I am happy!" },
                { "score", 0.99 }
            };

            metricsCollectorWrapper.Verify(x => x.Write("sentiment", fields), Times.Once);
        }
Ejemplo n.º 6
0
        public ActionResult GetMessages()
        {
            TweetsRepository _messageRepository = new TweetsRepository();

            return(PartialView("_MessagesList", _messageRepository.GetAllTweets()));
        }