예제 #1
0
        public async Task OnWaitingEventCode(ApplicationContext context, Message message,
                                             TelegramBotClient client)
        {
            var           text    = message.Text;
            var           chatId  = message.Chat.Id;
            StringBuilder builder = new StringBuilder();

            if (await DatabaseUtils.CheckEventExists(context, text))
            {
                builder.AppendLine("Мероприятие с таким кодом _уже существует_");
                builder.AppendLine();
                builder.AppendLine("Введите код участника");
                await client.SendTextMessageAsync(chatId, builder.ToString(), ParseMode.Markdown);
            }
            else
            {
                AdminUser user = await DatabaseUtils.GetUserByChatId(context, chatId);

                user.TempEventCode = text;

                context.Update(user);
                await context.SaveChangesAsync();

                await DatabaseUtils.ChangeUserAction(context, chatId, Actions.WaitingForEventAdminCode);

                builder.AppendLine($"Код участника \"*{text}*\" сохранен");
                builder.AppendLine();
                builder.AppendLine("_Введите ивент код для организаторов_");

                await client.SendTextMessageAsync(chatId, builder.ToString(), ParseMode.Markdown);
            }
        }
예제 #2
0
        public async Task OnWaitingForEventAdminCode(ApplicationContext context, Message message,
                                                     TelegramBotClient client)
        {
            var           text    = message.Text;
            var           chatId  = message.Chat.Id;
            StringBuilder builder = new StringBuilder();

            if (await DatabaseUtils.CheckEventExists(context, text))
            {
                builder.AppendLine("Мероприятие с таким кодом _уже существует_");
                builder.AppendLine();
                builder.AppendLine("Введите код организатора");
                await client.SendTextMessageAsync(chatId, builder.ToString(), ParseMode.Markdown);
            }
            else
            {
                AdminUser user = await DatabaseUtils.GetUserByChatId(context, chatId);

                builder.AppendLine($"Код организатора \"*{text}*\" сохранен");

                await client.SendTextMessageAsync(
                    chatId,
                    builder.ToString(),
                    ParseMode.Markdown);

                Event ev = new Event()
                {
                    Name      = user.TempEventCode,
                    EventCode = user.TempEventCode,
                    AdminCode = text
                };

                context.Events.Add(ev);
                await context.SaveChangesAsync();

                await DatabaseUtils.ClearUserTempData(context, chatId);

                await client.SendTextMessageAsync(
                    chatId,
                    $"Мероприятие <b>{ev.Name}</b> успешно сохранено",
                    ParseMode.Html);

                await DatabaseUtils.ChangeUserAction(context, chatId, Actions.WaitingForAction);
            }
        }