static void Main(string[] args) { if (args.Length < 1) { ShowUsage(); return; } try { var exchange_letters = string.Empty; var configurator = new AppConfigConfigurator(); var bus = new BusFactory().Create( cfg => { configurator.Configure("Letters.Sender", cfg); exchange_letters = configurator.GetEvent("Letters.Sender", "letter.send"); }); Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); var girls = ConfigurationManager.AppSettings["lady-user-ids"].Split(','); IList <long> girlUserIds = new List <long>(); foreach (var girl in girls) { girlUserIds.Add(Convert.ToInt64(girl)); } if (args.Length > 1) { for (int i = 1; i < args.Length; i++) { girlUserIds.Add(Convert.ToInt64(args[i])); } } int total_letter_count = girlUserIds.Count * (Convert.ToInt32(ConfigurationManager.AppSettings["letter-count-each-lady"].ToString())); log.Debug(m => m($"Пытаемся отправить [{total_letter_count.ToString()}] писем")); for (int i = 0; i < Convert.ToInt32(ConfigurationManager.AppSettings["letter-count-each-lady"].ToString()); i++) { foreach (var girl in girlUserIds) { var letter_request = new SendLetterRequest() { FromId = girl, ToId = Convert.ToInt64(args[0]), Type = i == 0 ? "FirstReply" : "Common", Body = $"Hi there. this is a [{(i == 0 ? "FirstReply" : "Common")}] letter that you should see in a digest notification if all goes well.... " + Environment.NewLine + Regex.Replace(Guid.NewGuid().ToString(), @"\d+", "") }; log.Info(m => m($"Сгенерирован запрос на отправку письма: [{letter_request.ToString()}]")); try { bus.Request <SendLetterRequest, SendLetterResponse>( exchange_letters, letter_request, letter_response => { log.Info(m => m($"Ответ на команду отправки письма: [Status: [{letter_response.Status}], ErrorMessage: [{letter_response.ErrorMessage}]]")); }); } catch (Exception e) { log.Error(m => m(e.ToString())); } } } bus.Dispose(); } catch (Exception e) { log.Error(m => m(e.ToString())); } }