public override bool Process(IBudgetIfContext context, Message message, TelegramBotClient client, ChatUser user) { var chatId = message.Chat.Id; var messageId = message.MessageId; var text = string.Empty; var list = context.Deputats.ToList().Where(p => p.NameWithInitials.ToLower().Contains(message.Text)).ToList(); if (list.Count() == 1) { text = $"Додати депутата {list[0].NameWithInitials} в мій список?"; var replyMarkup = new InlineKeyboardMarkup(new InlineKeyboardCallbackButton[] { new InlineKeyboardCallbackButton("Так", "add_deputat " + list[0].Id), new InlineKeyboardCallbackButton("Ні", "cancel") }); client.SendTextMessageAsync(chatId, text, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, replyMarkup); return(true); } else if (list.Count() > 1) { text = "Виберіть депутата якого додати в список"; var keys = list.Select(p => new InlineKeyboardCallbackButton(p.NameWithInitials, $"add_deputat {p.Id}")).ToList(); var replyMarkup = new InlineKeyboardMarkup(keys.ToArray()); client.SendTextMessageAsync(chatId, text, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, replyMarkup); return(true); } return(false); }
public DeputatProcessor(IBudgetIfContext db) { _db = db; deputatCache = _db.Deputats.ToList(); fractionCache = _db.Fractions.ToList(); _webConnector = new WebConnector(); }
public override void Execute(IBudgetIfContext context, CallbackQuery query, TelegramBotClient client, ChatUser user) { var queryText = query.Data; var parts = queryText.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length > 1) { var id = Convert.ToInt32(parts[1]); var exist = user.Deputats.FirstOrDefault(p => p.Id == id); if (exist == null) { var deputat = context.Deputats.FirstOrDefault(p => p.Id == id); if (deputat == null) { client.SendTextMessageAsync(user.TelegramId, "Депутата не знайдено"); return; } else { user.Deputats.Add(deputat); context.SaveChanges(); client.SendTextMessageAsync(user.TelegramId, $"Депутат {deputat.NameWithInitials} доданий до списку"); return; } } else { var text = "Такий депутат вже в списку"; client.SendTextMessageAsync(user.TelegramId, text); } } }
public override void Execute(IBudgetIfContext context, Message message, TelegramBotClient client, ChatUser user) { var chatId = message.Chat.Id; var text = "Тут все просто. Наберіть прізвище депутата (наприклад Шевченко), і додайте його собі в список (ми вже додали пару випадкових)." + "\n Перегляд списку за командою /list. Для того, щоб видалити команда скористайтесь командою /remove. " + "Для перегляду голосування наберіть номер законопроекту, наприклад, 6327 - номер законопроекту реформи медичної системи. Бот покаже голосування за перше і друге читання вибраних депутатів. " + "Наберіть /top і бот виведе 20 найобговорюваніших законопроектів 2017 року."; client.SendTextMessageAsync(chatId, text); }
public override void Execute(IBudgetIfContext context, Message message, TelegramBotClient client, ChatUser user) { var chatId = message.Chat.Id; var messageId = message.MessageId; var text = string.Join("\n", user.Deputats.Select(p => p.NameWithInitials)); client.SendTextMessageAsync(chatId, text, Telegram.Bot.Types.Enums.ParseMode.Default); return; }
public TransactionProcessor(IBudgetIfContext db) { _db = db; var config = new MapperConfiguration(cfg => { cfg.CreateMap <Models.Transaction, Transaction>() .ForMember(p => p.amount, opt => opt.MapFrom(r => Convert.ToDouble(r.amount))) .ForMember(p => p.doc_date, opt => opt.MapFrom(r => new DateTime(Convert.ToInt32(r.doc_date.Substring(6, 4)), Convert.ToInt32(r.doc_date.Substring(3, 2)), Convert.ToInt32(r.doc_date.Substring(0, 2))))) .ForMember(p => p.doc_v_date, opt => opt.MapFrom(r => new DateTime(Convert.ToInt32(r.doc_v_date.Substring(6, 4)), Convert.ToInt32(r.doc_v_date.Substring(3, 2)), Convert.ToInt32(r.doc_v_date.Substring(0, 2))))) .ForMember(p => p.trans_date, opt => opt.MapFrom(r => new DateTime(Convert.ToInt32(r.trans_date.Substring(6, 4)), Convert.ToInt32(r.doc_v_date.Substring(3, 2)), Convert.ToInt32(r.trans_date.Substring(0, 2))))) .ForMember(p => p.number, opt => opt.MapFrom(r => r.id)) .ForMember(p => p.id, opt => opt.Ignore()); }); _mapper = config.CreateMapper(); }
public override bool Process(IBudgetIfContext context, Message message, TelegramBotClient client, ChatUser user) { var chatId = message.Chat.Id; var messageId = message.MessageId; var items = context.Polls.Where(p => p.SubjectNo.Contains(message.Text)).ToList(); if (items.Any()) { var filtered = new List <Poll>(); var first = items.Where(p => p.Subject.Contains(" - за основу")).ToList(); if (first != null) { filtered.AddRange(first); } var second = items.Where(p => p.Subject.Contains(" - у другому читанні та в цілому")).ToList(); if (second != null) { filtered.AddRange(second); } var list = user.Deputats.ToList(); var text = ""; foreach (var item in filtered) { text += "<b>" + item.Subject.Trim() + "</b>\n"; text += "Час дата: " + item.VoteDate.ToString("yyyy-MM-dd HH:mm") + "\n"; text += (item.IsAccepted ? "<b>Рішення прийнято</b>" : "<b>Рішення провалено</b>") + "\n"; text += $"За: {item.Yes}\n Проти: {item.No}\n Утрималось: {item.Abstain}\n Не голосували: {item.NotVoted}\n"; text += "\n"; foreach (var deputat in list) { var vote = context.Votes.Where(p => p.PollId == item.Id && p.DeputatId == deputat.Id).FirstOrDefault(); if (vote != null) { text += $"<i>{deputat.NameWithInitials}</i> : {GetAnswer(vote.Answer)}" + "\n"; } } text += "\n\n"; } client.SendTextMessageAsync(chatId, text, Telegram.Bot.Types.Enums.ParseMode.Html); return(true); } return(false); }
public override void Execute(IBudgetIfContext context, Message message, TelegramBotClient client, ChatUser user) { var chatId = message.Chat.Id; var list = user.Deputats.ToList(); var keys = list.Select(p => new InlineKeyboardCallbackButton(p.NameWithInitials, $"remove_deputat {p.Id}")).ToList(); var matrix = new List <InlineKeyboardButton[]>(); var offset = 0; List <InlineKeyboardButton> subList = new List <InlineKeyboardButton>(); do { subList = keys.Skip(offset).Take(3).Select(p => (InlineKeyboardButton)p).ToList(); offset += 3; matrix.Add(subList.ToArray()); } while (subList.Count > 0); var replyMarkup = new InlineKeyboardMarkup(matrix.ToArray()); var text = "Виберіть депутата якого видалити:"; client.SendTextMessageAsync(chatId, text, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, replyMarkup); }
public abstract void Execute(IBudgetIfContext context, Message message, TelegramBotClient client, ChatUser user);
public TerrNumberProcessor(IBudgetIfContext db) { _db = db; _webConnector = new WebConnector(); }
public PollSubjectNoProcessor(IBudgetIfContext db) { _db = db; _webConnector = new WebConnector(); }
public abstract void Execute(IBudgetIfContext context, CallbackQuery query, TelegramBotClient client, ChatUser user);
public abstract bool Process(IBudgetIfContext context, Message message, TelegramBotClient client, ChatUser user);
public override void Execute(IBudgetIfContext context, Message message, TelegramBotClient client, ChatUser user) { var chatId = message.Chat.Id; var messageId = message.MessageId; var authority = context.Authorities.First(); var pollList = authority.PollLists.First(); var list = pollList.PollBatches.ToList(); var opinions = authority.Opinions.ToList(); var listDeputats = user.Deputats.ToList(); var parts = message.Text.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length > 1) { var id = Convert.ToInt32(parts[1]); var batch = list.FirstOrDefault(p => p.Id == id); if (batch != null) { var opinion = opinions.FirstOrDefault(p => p.PollBatchId == batch.Id); var text = $"/top_{batch.Id} {RemoveBlaBla(batch.Name).Trim()} \n<b>{batch.Status.ToUpper().Trim()}</b> " + "\n"; if (opinion != null) { text += $"<b>{opinion.Description}</b>\n"; } var first = batch.Polls.OrderByDescending(p => p.VoteDate).FirstOrDefault(p => p.Subject.Contains(" - за основу")); if (first != null) { text += "<i>Перше читання:</i>\n"; text += "Дата: " + first.VoteDate.ToString("yyyy-MM-dd HH:mm") + "\n"; foreach (var deputat in listDeputats) { var vote = context.Votes.Where(p => p.PollId == first.Id && p.DeputatId == deputat.Id).FirstOrDefault(); if (vote != null) { text += $"<i>{deputat.NameWithInitials}</i> : {GetAnswer(vote.Answer)} {(opinion != null ? "<b>(" + ZradaPeremoga(opinion.IsSupport > 0, vote.Answer) + ")</b>" : "")}" + "\n"; } } text += "\n"; } var second = batch.Polls.OrderByDescending(p => p.VoteDate).FirstOrDefault(p => p.Subject.Contains(" - у другому читанні та в цілому")); if (second != null) { text += "<i>Друге читання:</i>\n"; text += "Дата: " + second.VoteDate.ToString("yyyy-MM-dd HH:mm") + "\n"; foreach (var deputat in listDeputats) { var vote = context.Votes.Where(p => p.PollId == first.Id && p.DeputatId == deputat.Id).FirstOrDefault(); if (vote != null) { text += $"<i>{deputat.NameWithInitials}</i> : {GetAnswer(vote.Answer)} {(opinion != null ? "<b>(" + ZradaPeremoga(opinion.IsSupport > 0, vote.Answer)+ ")</b>" : "")}" + "\n"; } } text += "\n"; } client.SendTextMessageAsync(chatId, text, Telegram.Bot.Types.Enums.ParseMode.Html); } else { client.SendTextMessageAsync(chatId, "Нічого не знайдено"); } } else { var text = ""; foreach (var batch in list) { var opinion = opinions.FirstOrDefault(p => p.PollBatchId == batch.Id); if (opinion != null) { text += $"<b>{opinion.Description.ToUpper().Trim()}</b> <i>({(opinion.IsSupport > 0 ? "Перемога" : "Зрада")})</i>\n"; } text += $"/top_{batch.Id} {RemoveBlaBla(batch.Name).Trim()} \n<b>{batch.Status.Trim()}</b> " + "\n\n"; } client.SendTextMessageAsync(chatId, text, Telegram.Bot.Types.Enums.ParseMode.Html); } }
public PollBatchProcessor(IBudgetIfContext db) { _db = db; _pollBatchesCache = _db.PollBatches.ToList(); }
public BaseApiController() { Context = DependencyResolver.Current.GetService <IBudgetIfContext>(); }
public PollBatchNamesProcessor(IBudgetIfContext db) { _db = db; }