Exemplo n.º 1
0
        static void Main()
        {
            var rabbitMq = new RabbitMq();

            rabbitMq.QueueDeclare(_queueName);
            rabbitMq.ExchangeDeclare(_listeningExchangeName, ExchangeType.Direct);
            rabbitMq.BindQueueToExchange(_listeningExchangeName);
            rabbitMq.ConsumeQueue(textId =>
            {
                Console.WriteLine($"New message from {_listeningExchangeName}: \"{textId}\"");
                Redis.Instance.SetDatabase(Redis.Instance.CalculateDatabase(textId));

                string text = Redis.Instance.Database.StringGet($"{ConstantLibrary.Redis.Prefix.Text}{textId}");
                Console.WriteLine($"'{ConstantLibrary.Redis.Prefix.Text}{textId}: {text}' from redis database({Redis.Instance.Database.Database})");

                VowelConsonant vowelConsonant = CalculateVowelConsonant(text);

                Console.WriteLine($"'{ConstantLibrary.Redis.Prefix.Count}{textId}: {vowelConsonant.vowelCount}|{vowelConsonant.consonantCount}' to redis database({Redis.Instance.Database.Database})");
                Redis.Instance.Database.StringSet($"{ConstantLibrary.Redis.Prefix.Count}{textId}", $"{vowelConsonant.vowelCount}|{vowelConsonant.consonantCount}");

                Console.WriteLine($"{textId} to {_publishExchangeName} exchange");
                rabbitMq.PublishToExchange(_publishExchangeName, textId);

                Console.WriteLine("----------");
            });

            Console.WriteLine("VowelConsonantCounter has started");
            Console.WriteLine("Press [enter] to exit.");
            Console.ReadLine();
        }
Exemplo n.º 2
0
        private static VowelConsonant CalculateVowelConsonant(string text)
        {
            VowelConsonant result = new VowelConsonant();

            foreach (char letter in text)
            {
                if (vowelLetters.IndexOf(letter) >= 0)
                {
                    ++result.vowelCount;
                }
                else
                {
                    ++result.consonantCount;
                }
            }
            return(result);
        }
Exemplo n.º 3
0
        static void Main()
        {
            var rabbitMq = new RabbitMq();

            rabbitMq.QueueDeclare(queueName);
            rabbitMq.ExchangeDeclare(exchangeName, ExchangeType.Direct);
            rabbitMq.BindQueueToExchange(exchangeName);
            rabbitMq.ConsumeQueue(textId =>
            {
                string text = Redis.Instance.Database.StringGet(textId);
                VowelConsonant vowelConsonant = CalculateVowelConsonant(text);
                string countId = Guid.NewGuid().ToString();
                Console.WriteLine($"'{countId}: {textId}|{vowelConsonant.vowelCount}|{vowelConsonant.consonantCount}' to redis");
                Redis.Instance.Database.StringSet(countId, $"{textId}|{vowelConsonant.vowelCount}|{vowelConsonant.consonantCount}");
                Console.WriteLine($"{countId} to vowel-cons-counter queue");
                rabbitMq.PublishToExchange("vowel-cons-counter", countId);
                Console.WriteLine("----------");
            });

            Console.WriteLine("VowelConsonantCounter has started");
            Console.WriteLine("Press [enter] to exit.");
            Console.ReadLine();
        }