Beispiel #1
0
        public void Execute(Message msg, IMessageSenderService sender, IBot bot)
        {
            if (Main.Api.Users.IsBanned(msg))
            {
                return;
            }

            if (!Main.Api.Users.CheckUser(msg))
            {
                var kb2 = new KeyboardBuilder(bot);
                kb2.AddButton("➕ Зарегистрироваться", "start");
                sender.Text("❌ Вы не зарегистрированы, нажмите на кнопку ниже, чтобы начать", msg.ChatId, kb2.Build());
                return;
            }

            var user = _api.Users.GetUser(msg);

            UsersCommandHelper.GetHelper().Add("", user.Id);

            //проверяем: отправлял ли пользователь уже репорты
            if (ReportService.Times.Any(t => t.Id == user.Id))
            {
                var time = ReportService.Times.Single(t => t.Id == user.Id);
                if (time.Time < 0)
                {
                    sender.Text($"❌ Вы уже отправляли репорт. Подождите {time.Time} минут.", msg.ChatId);
                    return;
                }
            }

            var result = _api.Reports.AddReport(msg.Text.Replace("репорт", "").Replace("report", ""), user.Id);
            var kb     = new KeyboardBuilder(bot);

            kb.AddButton(ButtonsHelper.ToHomeButton());
            if (result)
            {
                sender.Text("✔ Ваш репор был отправлен администрации!", msg.ChatId, kb.Build());
            }
            else
            {
                sender.Text("✔ Ваше сообщение не было отправлено администрации из-за технической ошибки.", msg.ChatId, kb.Build());
            }
            ReportService.AddToTimer(user.Id);
        }