Example #1
0
        public static TelegramReplyMessage RequestDateMessage(TelegramMessage msg)
        {
            var keyboard = new List <List <KeyboardButton> >();

            var now      = DateTime.Today;
            var lastWeek = now.AddDays(-7);
            var days     = new int[DatesCount];

            for (int i = 0; i < DatesCount; i++) // including tomorrow
            {
                days[i] = lastWeek.AddDays(i).Day;
            }
            Array.Reverse(days);

            for (var i = 0; i < (float)days.Length / DatesInRowCount; i++)
            {
                keyboard.Add(new List <KeyboardButton>(days.Skip(i * DatesInRowCount).Take(DatesInRowCount)
                                                       .Select(x => x == now.Day ?
                                                               new KeyboardButton($"{x:00} ✅") :
                                                               new KeyboardButton(x.ToString("00")))));
            }

            return(new TelegramReplyMessage
            {
                ChatId = msg.ChatId,
                Text = "Day?",
                ReplyMarkup = new ReplyKeyboardMarkup(keyboard)
            });
        }
Example #2
0
 public static TelegramReplyMessage OperationCompletedMessage(TelegramMessage msg)
 {
     return(new TelegramReplyMessage
     {
         ChatId = msg.ChatId,
         Text = "👌",
         ReplyMarkup = new ReplyKeyboardRemove()
     });
 }
Example #3
0
 public static TelegramReplyMessage UnknownOperationMessage(TelegramMessage msg)
 {
     return(new TelegramReplyMessage
     {
         ChatId = msg.ChatId,
         Text = "🤷",
         ReplyMarkup = new ReplyKeyboardRemove()
     });
 }
Example #4
0
 public static TelegramReplyMessage DashboardMessage(TelegramMessage msg, List <DashboardRow> dashboardRows)
 {
     return(new TelegramReplyMessage
     {
         ChatId = msg.ChatId,
         ReplyMarkup = new ReplyKeyboardRemove(),
         Text = dashboardRows.ToHtmlSummary()
     });
 }
Example #5
0
 public static TelegramReplyMessage RequestTypeMessage(TelegramMessage msg)
 {
     return(new TelegramReplyMessage
     {
         ChatId = msg.ChatId,
         ReplyMarkup = new ReplyKeyboardMarkup(new[]
         {
             new KeyboardButton(Transaction.TypeOutcome),
             new KeyboardButton(Transaction.TypeIncome),
             new KeyboardButton(Transaction.TypeTransfer),
         }),
         Text = "Type of transaction?"
     });
 }
Example #6
0
 public static TelegramReplyMessage RequestMemoHintMessage(TelegramMessage msg, MemoItem memo)
 {
     return(new TelegramReplyMessage
     {
         ChatId = msg.ChatId,
         ReplyMarkup = new ReplyKeyboardMarkup(new[]
         {
             new KeyboardButton(YesAnswer),
             new KeyboardButton(NoAnswer),
         }),
         Text = "Use this data?\n" +
                $"Type {memo.Type}\n" +
                $"Category: {memo.Category ?? "🚫"}\n" +
                $"Account from: {memo.AccountFrom ?? "🚫"}\n" +
                $"Account to: {memo.AccountTo ?? "🚫"}\n"
     });
 }
Example #7
0
        private static TelegramReplyMessage FromItemList(TelegramMessage msg, List <string> buttonsList, string text)
        {
            var keyboard = new List <List <KeyboardButton> >();

            for (var i = 0; i < (float)buttonsList.Count / 2; i++)
            {
                keyboard.Add(
                    new List <KeyboardButton>(buttonsList.Skip(i * 2).Take(2).Select(x => new KeyboardButton(x))));
            }

            return(new TelegramReplyMessage
            {
                ChatId = msg.ChatId,
                Text = text,
                ReplyMarkup = new ReplyKeyboardMarkup(keyboard)
            });
        }
Example #8
0
 public static TelegramReplyMessage RequestCategoryMessage(TelegramMessage msg, List <string> categories)
 {
     return(FromItemList(msg, categories, "Category?"));
 }
Example #9
0
 public static TelegramReplyMessage RequestAccountToMessage(TelegramMessage msg, List <string> accounts)
 {
     return(FromItemList(msg, accounts, "Account to?"));
 }