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(); }
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); }
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(); }