Пример #1
0
        private async void BotClient_OnUpdate(System.Object sender, Telegram.Bot.Args.UpdateEventArgs e)
        {
            DataBase db = Singleton.GetInstance().Context;

            if (e.Update.PreCheckoutQuery != null)
            {
                await BotClient.AnswerPreCheckoutQueryAsync(e.Update.PreCheckoutQuery.Id);

                if (e.Update.PreCheckoutQuery.InvoicePayload == "Pay is correct")
                {
                    User user = db.GetUser(e.Update.PreCheckoutQuery.From.Id);
                    user.BanDate = System.DateTime.Now;
                    db.Save();
                    IsUnBan.ThisUnBan(BotClient, user);
                    await Task.Run(() => SetIncomeChannel(e.Update.PreCheckoutQuery.From.Id, e.Update.PreCheckoutQuery.TotalAmount / 100));
                }
                else if (e.Update.PreCheckoutQuery.InvoicePayload == "Balance is correct")
                {
                    AdUser adUser = db.GetAdUser(e.Update.PreCheckoutQuery.From.Id);
                    adUser.Balance += e.Update.PreCheckoutQuery.TotalAmount / 100;
                    db.Save();
                    await Task.Run(() => SetIncomeChannel(e.Update.PreCheckoutQuery.From.Id, e.Update.PreCheckoutQuery.TotalAmount / 100));
                }
                else if (e.Update.PreCheckoutQuery.InvoicePayload == "PostTemplate is correct")
                {
                    AdUser       adUser       = db.GetAdUser(e.Update.PreCheckoutQuery.From.Id);
                    PostTemplate postTemplate = db.GetTempalte(adUser.User.ID, adUser.EditingPostTemplateId);
                    postTemplate.IsPaid = true;
                    System.Object ob = await AdController.AssemblyTemplate(BotClient, postTemplate);

                    if (ob is Message)
                    {
                        Message       mes  = (Message)ob;
                        System.String text = mes.Text;
                        await BotClient.SendTextMessageAsync(CommandText.bufferChannelId, text);
                    }
                    else
                    {
                        List <InputMediaBase> inputMedias = (List <InputMediaBase>)ob;

                        await BotClient.SendMediaGroupAsync(CommandText.bufferChannelId, inputMedias);
                    }
                    IsDataTaken.IsCheck(BotClient, e.Update.PreCheckoutQuery.From.Id, postTemplate.PostTime.ToList());
                    db.Save();

                    await Task.Run(() => SetIncomeChannel(e.Update.PreCheckoutQuery.From.Id, e.Update.PreCheckoutQuery.TotalAmount / 100, postTemplate));
                }
                else if (e.Update.PreCheckoutQuery.InvoicePayload == "Pay Confirm User")
                {
                    User user = db.GetUser(e.Update.PreCheckoutQuery.From.Id);
                    user.PayConfirm = true;
                    user.PayDate    = System.DateTime.Today.AddMonths(1);
                    db.Save();

                    await Task.Run(() => SetIncomeChannel(e.Update.PreCheckoutQuery.From.Id, e.Update.PreCheckoutQuery.TotalAmount / 100));
                }
            }
        }
        public async void Execute(TelegramBotClient botClient, System.Object message)
        {
            Message _message = message as Message;

            try
            {
                DataBase db = Singleton.GetInstance().Context;

                User user = db.GetUser(_message.From.Id); if (IsNullDataBase.IsNull(botClient, _message, user))
                {
                    return;
                }
                try
                {
                    await botClient.DeleteMessageAsync(_message.Chat.Id, _message.MessageId);
                }
                catch { }

                if (user.IsAdmin >= 2)
                {
                    Singleton.GetInstance().Context._channels.Add(new Channel()
                    {
                        IDChannel = _message.Chat.Id
                    });
                    db.Save();
                    await botClient.SendTextMessageAsync(_message.From.Id, "Чат добавлен!");
                }
            }
            catch (System.Exception ex)
            {
                Log.Logging(ex);
            }
        }
        public void Execute(TelegramBotClient botClient, System.Object message)
        {
            Message _message = message as Message;

            try
            {
                DataBase db = Singleton.GetInstance().Context;

                User user = db.GetUser(_message.From.Id); if (IsNullDataBase.IsNull(botClient, _message, user))
                {
                    return;
                }

                botClient.DeleteMessage(_message.Chat.Id, _message.MessageId, "376");

                if (user.IsAdmin >= 2)
                {
                    user.Chain = 1006;

                    botClient.SendText(_message.From.Id, "Перешлите сообщение от канала: ", user, replyMarkup: inlineButton.BackToAccauntMenu);
                    db.Save();
                }
            }
            catch (System.Exception ex)
            {
                Log.Logging(ex);
            }
        }
        public async void Execute(TelegramBotClient botClient, System.Object message)
        {
            Message  _message = message as Message;
            DataBase db       = Singleton.GetInstance().Context;

            try
            {
                User user = db.GetUser(_message.From.Id); if (IsNullDataBase.IsNull(botClient, _message, user))
                {
                    return;
                }

                botClient.DeleteMessage(_message.Chat.Id, _message.MessageId, "413");

                botClient.DeleteMessage(_message.Chat.Id, user.MessageID, "414");

                user.Chain = 1008;

                Message mes = await botClient.SendTextMessageAsync(_message.From.Id, "Введите пароль от админки: ", replyMarkup : inlineButton.BackToAccauntMenu);

                user.MessageID = mes.MessageId;
                db.Save();
            }
            catch (System.Exception ex)
            {
                Log.Logging(ex);
            }
        }
 private Boolean SetUser(TelegramBotClient botClient, Message _message, DataBase db)
 {
     user = db.GetUser(_message.From.Id); if (IsNullDataBase.IsNull(botClient, _message, user))
     {
         return(true);
     }
     if (_message.ForwardFrom != null)
     {
         userTwo = db.GetUser(_message.ForwardFrom.Id); if (IsNullDataBase.IsNull(botClient, _message, userTwo))
         {
             return(true);
         }
     }
     else
     {
         return(true);
     }
     return(false);
 }
Пример #6
0
        private static void DeleteMessagePlusUser(TelegramBotClient botClient, CallbackQuery _message)
        {
            DataBase db   = Singleton.GetInstance().Context;
            User     user = db.GetUser(_message.From.Id);

            for (System.Int32 i = 0; i <= 100; i++)
            {
                botClient.DeleteMessage(_message.From.Id, user.MessageID + i, "");
            }
        }
Пример #7
0
        private static async void DeleteMessagePlusUser(TelegramBotClient botClient, Message _message)
        {
            DataBase db   = Singleton.GetInstance().Context;
            User     user = db.GetUser(_message.From.Id);

            for (System.Int32 i = 0; i <= 100; i++)
            {
                try
                {
                    await botClient.DeleteMessageAsync(_message.From.Id, user.MessageID + i);
                }
                catch { }
            }
        }
Пример #8
0
        private void SetUserName(Message message, DataBase db)
        {
            User user = db.GetUser(message.From.Id);

            try
            {
                if (user != null)
                {
                    if (user.Username == null || message.From.Username != user.Username)
                    {
                        user.Username = message.From.Username;
                        db.Save();
                    }
                }
            }
            catch (Exception e)
            {
                Log.Logging(e);
            }
        }
Пример #9
0
        /// <summary>
        /// Аналитика по доходности в группе и администраторов.
        /// </summary>
        /// <param name="analiticsPhrases"></param>
        public static void GetAnaliticsIncomeAdmin(IncomeChannelAdmin[] incomes, TelegramBotClient botClient, CallbackQuery _message, User user)
        {
            DataBase db = Singleton.GetInstance().Context;
            //создание файла
            String    files     = AppDomain.CurrentDomain.BaseDirectory + "\\newdoc.xls";
            Workbook  workbook  = new Workbook();
            Worksheet worksheet = new Worksheet("Аналитика зарплат администрации");

            worksheet.Cells[0, 0] = new Cell("Группа");
            worksheet.Cells[0, 1] = new Cell("Администратор");
            worksheet.Cells[0, 2] = new Cell("Доход");
            worksheet.Cells[0, 3] = new Cell("Дата");
            worksheet.Cells[0, 4] = new Cell("Общая зарплата");

            Int32  count         = 1;
            Single incomeChannel = 0;

            IQueryable <IncomeChannelAdmin> temp = incomes.OrderByDescending(p => p.DateTime).AsQueryable();


            foreach (IncomeChannelAdmin income in temp)
            {
                Channel channel  = db.GetChannel(income.ChannelId);
                User    ThisUser = db.GetUser(income.UserId);
                worksheet.Cells[count + 1, 0] = new Cell(channel.ChannelName.ToString());
                worksheet.Cells[count + 1, 1] = new Cell(ThisUser.FIO.ToString());
                worksheet.Cells[count + 1, 2] = new Cell(income.SumIncome.ToString());
                worksheet.Cells[count + 1, 3] = new Cell(income.DateTime.ToString("d"));
                incomeChannel += income.SumIncome;
                count++;
            }
            worksheet.Cells[1, 4] = new Cell(incomeChannel.ToString());
            workbook.Worksheets.Add(worksheet);
            workbook.Save(files);
            SendMessage(botClient, _message, user, "Аналитика зарплат администрации");
        }
        private void GetUser(Message _message)
        {
            DataBase db = Singleton.GetInstance().Context;

            user = db.GetUser(_message.From.Id);
        }
Пример #11
0
        private void AsycnCallBack(System.Object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            DateTime d;
            DataBase db = Singleton.GetInstance().Context;

            if (e.CallbackQuery.From.Username != null)
            {
                SetUserName(e.CallbackQuery, db);
            }

            if (DateTime.TryParseExact(e.CallbackQuery.Data.Replace("+", "").Replace('.', '/'), "d/M/yyyy", new CultureInfo("en-US"), DateTimeStyles.None, out d))
            {
                try
                {
                    Advertising.Command.AbsCommand Command = AdvertisingCommands.FirstOrDefault(c => c.Equals(e.CallbackQuery.Data.Replace("+", "")));
                    if (Command == null && DateTime.ParseExact(e.CallbackQuery.Data.Replace("+", "").Replace('.', '/'), "d/M/yyyy", null) != null)
                    {
                        Command = AdvertisingCommands.FirstOrDefault(c => c.Equals(Advertising.CommandsText.ChoseDate));
                    }
                    Command.Execute(BotClient, e.CallbackQuery);
                }
                catch (Exception ex)
                {
                    Log.Logging(ex);
                }
            }
            else if (commands.Any(c => c.Equals(e.CallbackQuery.Data)))
            {
                try
                {
                    AbsCommand Command = commands.FirstOrDefault(c => c.Equals(e.CallbackQuery.Data));                     // вытягиваем класс
                    Command.Execute(BotClient, e.CallbackQuery);
                }
                catch (System.Exception ex)
                {
                    Log.Logging(ex);
                }
            }
            else if (commandSlashes.Any(c => c.Equals(e.CallbackQuery.Data)))
            {
                try
                {
                    ICommandSlash Command = commandSlashes.FirstOrDefault(c => c.Equals(e.CallbackQuery.Data));                     // вытягиваем класс
                    Command.Execute(BotClient, e.CallbackQuery);
                }
                catch (System.Exception ex)
                {
                    Log.Logging(ex);
                }
            }
            else if (AdvertisingCommands.Any(c => c.Equals(e.CallbackQuery.Data)))
            {
                try
                {
                    Advertising.Command.AbsCommand command = AdvertisingCommands.FirstOrDefault(c => c.Equals(e.CallbackQuery.Data));
                    command.Execute(BotClient, e.CallbackQuery);
                }
                catch (System.Exception ex)
                {
                    Log.Logging(ex);
                }
            }
            else if (db.GetChannels().Any(p => p.IDChannel == System.Convert.ToInt64(e.CallbackQuery.Data.Split(" ")[0])))
            {
                ThisChannel channel = new ThisChannel();
                channel.Execute(BotClient, e.CallbackQuery, System.Convert.ToInt64(e.CallbackQuery.Data.Split(" ")[0]));
            }
            else
            {
                User user = db.GetUser(e.CallbackQuery.From.Id);
                if (IsNullDataBase.IsNull(BotClient, e.CallbackQuery, user))
                {
                    return;
                }
                if (user.Chain == 53)
                {
                    SelectMyReviews selectReviews = new SelectMyReviews();
                    selectReviews.Execute(BotClient, e.CallbackQuery);
                }
                else if (user.Chain == 54)
                {
                    SelectOtherReviews selectReviews = new SelectOtherReviews();
                    selectReviews.Execute(BotClient, e.CallbackQuery);
                }
                else if (user.IsAdmin > 0)
                {
                    System.String[] words = e.CallbackQuery.Data.Split(new System.Char[] { ' ' }, System.StringSplitOptions.RemoveEmptyEntries);
                    if (words[1] == "1")
                    {
                        SetBan setBan = new SetBan();
                        setBan.Execute(BotClient, e.CallbackQuery);
                    }
                    else if (words[1] == "2")
                    {
                        SetCancel setCancel = new SetCancel();
                        setCancel.Execute(BotClient, e.CallbackQuery);
                    }
                    else if (words[1] == "3")
                    {
                        SetAppeal setAppeal = new SetAppeal();
                        setAppeal.Execute(BotClient, e.CallbackQuery);
                    }
                    else if (words[1] == "4")
                    {
                        SetCancelAppeal setAppeal = new SetCancelAppeal();
                        setAppeal.Execute(BotClient, e.CallbackQuery);
                    }
                }
            }
        }
Пример #12
0
        private async void AsyncBotAnalize(System.Object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            DataBase db = Singleton.GetInstance().Context;

            //BotClient.SendPhotoAsync(e.Message.From.Id, e.Message.Photo[2].FileId);

            if (e.Message.From.Username != null)
            {
                SetUserName(e.Message, db);
            }


            if (IsSystemEvent(e.Message))
            {
                try
                {
                    await BotClient.DeleteMessageAsync(e.Message.Chat.Id, e.Message.MessageId);

                    return;
                }
                catch { }
            }
            if (e.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Supergroup)
            {
                if (e.Message.ReplyToMessage != null)
                {
                    if (e.Message.ReplyToMessage.MessageId != 0 && e.Message.Text != null)
                    {
                        if (IsUserAdmin(e.Message.From, e.Message.Chat))
                        {
                            if (SleshComands.Any(c => e.Message.Text.ToLower().Contains(c.Name)))
                            {
                                SleshComands.First(c => e.Message.Text.ToLower().Contains(c.Name)).Execute(BotClient, e.Message);
                                return;
                            }
                        }
                    }
                }
            }

            if (e.Message.Text != null && e.Message.Chat.Type == ChatType.Private)
            {
                User user = db.GetUser(e.Message.From.Id);

                if ((user == null || user.FIO == null || user.Number == "0") && e.Message.Text != "/start")
                {
                    try
                    {
                        new Start().Execute(BotClient, e.Message);
                        BotClient.DeleteMessage(user.ID, e.Message.MessageId, "Bot");
                    }
                    catch (Exception exception)
                    {
                        Log.Logging(exception);
                    }
                }
            }

            if (e.Message.Text != null || e.Message.Contact != null || e.Message.ForwardFromChat != null ||
                e.Message.NewChatMembers != null || e.Message.Sticker != null || e.Message.Photo != null || e.Message.MediaGroupId != null ||
                e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Voice || e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Video ||
                e.Message.Type == Telegram.Bot.Types.Enums.MessageType.VideoNote || e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Document ||
                e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Game || e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Location ||
                e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Contact || e.Message.Type == Telegram.Bot.Types.Enums.MessageType.MessagePinned)
            {
                if (commands.Any(c => c.Equals(e.Message.Text)))                 // проверка есть ли команда в списке
                {
                    try
                    {
                        commands.FirstOrDefault(c => c.Equals(e.Message.Text)).Execute(BotClient, e.Message);                         // вытягиваем класс
                    }
                    catch (System.Exception ex)
                    {
                        Log.Logging(ex);
                    }
                }
                else if (commandSlashes.Any(c => c.Equals(e.Message.Text)))
                {
                    try
                    {
                        commandSlashes.FirstOrDefault(c => c.Equals(e.Message.Text)).Execute(BotClient, e.Message);                         // вытягиваем класс
                    }
                    catch (System.Exception ex)
                    {
                        Log.Logging(ex);
                    }
                }
                else if (e.Message.Text == null || e.Message.Sticker != null || e.Message.Photo != null || e.Message.MediaGroupId != null)
                {
                    Analize t = new Analize();
                    t.ChekRegister(BotClient, e.Message);
                }
                else if (!e.Message.Text.Equals("/start"))
                {
                    Analize t = new Analize();
                    t.ChekRegister(BotClient, e.Message);
                }
            }
        }
Пример #13
0
        public async void ChekRegister(TelegramBotClient bot, System.Object message)
        {
            _message  = message as Message;
            db        = Singleton.GetInstance().Context;
            botClient = bot;

            try
            {
                Channel channel = db.GetChannel(_message);
                if (channel == null && _message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Supergroup)
                {
                    Channel[] channels = db.GetChannels();

                    Chat chat = await botClient.GetChatAsync(_message.Chat.Id);

                    System.String NewChannel = $"Здравствуйте у нас появился новая группа @{_message.Chat.Username}!\n{chat.Description}";

                    foreach (Channel ch in channels)
                    {
                        botClient.SendText(ch.IDChannel, NewChannel);
                    }

                    db.SetChannel(chat);
                    db.Save();

                    channel = db.GetChannel(_message);

                    await Task.Run(() => AddNewChannel.SetTmessage());
                }

                User user = db.GetUser(_message.From.Id);

                TMessage tmessage = db.GetMessage(_message);
                Settings settings = db.GetSettings();

                if ((user == null || user.FIO == null || user.Number == "0") && _message.Chat.Type != ChatType.Private)
                {
                    botClient.DeleteMessage(_message.Chat.Id, _message.MessageId, "Невозможно удалить сообщение так как оно не было отправленное!");

                    System.String textChannel = $"❗Здравствуйте, что бы писать в чатах UBC - пройдите регистрацию в боте, это занимает меньше 1 минуты.\nСсылка на бота/регистрацию: @{botClient.GetMeAsync().Result.Username}\n\n📜Полный список чатов UBC @allUBC";


                    try
                    {
                        if ((_message.Type != MessageType.Photo) || (_message.Caption != null))
                        {
                            await botClient.SendTextMessageAsync(_message.From.Id, textChannel,
                                                                 replyMarkup : _inlineButton.Register);
                        }
                    }
                    catch
                    {
                        Message mes = null;

                        if ((channel.IDMessage == 0 && _message.Type != MessageType.Photo) ||
                            (_message.Caption != null && channel.IDMessage == 0))
                        {
                            mes = await botClient.SendTextMessageAsync(_message.Chat.Id, textChannel);

                            channel.IDMessage = mes.MessageId;
                            db.SetValue(new ChannelMessage()
                            {
                                ChannelID         = channel.IDChannel,
                                MessageId         = mes.MessageId,
                                DateMessageDelete = DateTime.Now.AddSeconds(20)
                            });

                            db.Save();
                        }
                    }
                }
                else if (user.Chain > 0 && user.Chain < (System.Int32)Advertising.SetChain.GetPayments && _message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Private)
                {
                    FIO fIO = new FIO();
                    fIO.SetNext(
                        new Number()).SetNext(
                        new ChaingeFIO()).SetNext(
                        new ChaingeNumber()).SetNext(
                        new SetReviewsName()).SetNext(
                        new SearchIDUser()).SetNext(
                        new SearchNumberUser()).SetNext(
                        new ChangeReviewsName()).SetNext(
                        new SetSendComplaint()).SetNext(
                        new SetSendAppeal()).SetNext(
                        new Admin()).SetNext(
                        new SetAdminPassword()).SetNext(
                        new Ban()).SetNext(
                        new KickUser()).SetNext(
                        new AdminAdd()).SetNext(
                        new AdminDelete()).SetNext(
                        new PostCount()).SetNext(
                        new WordAdd()).SetNext(
                        new AddUsers()).SetNext(
                        new FludUser()).SetNext(
                        new ChannelAdd()).SetNext(
                        new NewAdmin2Lvl()).SetNext(
                        new WordDelete());

                    ChainOfResposnsibility(botClient, fIO, message, user);
                }
                else if (user.Chain >= (System.Int32)Advertising.SetChain.GetPayments && _message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Private)
                {
                    Advertising.Payments payments = new Advertising.Payments();
                    payments.SetNext(
                        new AddPhotoAdvertising()).SetNext(
                        new ContentEditorText()).SetNext(
                        new SetUserInTransaction()).SetNext(
                        new SetBlockChain()).SetNext(
                        new SetDiscriptionInTransaction()).SetNext(
                        new SetIdTransaction()).SetNext(
                        new SetPublicKeyUserTwo()).SetNext(
                        new AddPhotoChannel()).SetNext(
                        new AddCategotyInDataBase()).SetNext(
                        new AddChannelInCategoryInDataBase()).SetNext(
                        new LinkChat()).SetNext(
                        new LinkChatPharase()).SetNext(
                        new AnaliticsPhraseUser()).SetNext(
                        new AdminCallBlockchainUser()).SetNext(
                        new MessageUserBot()).SetNext(
                        new AddAccauntBotUser()).SetNext(
                        new AddAccauntCode()).SetNext(
                        new PostCountChannel()).SetNext(
                        new ThisRegulationsUBC()).SetNext(
                        new ThisDeleteChat()).SetNext(
                        new ThisDeleteCategory()).SetNext(
                        new SetPriceTime()).SetNext(
                        new SetPriceStandartMessage()).SetNext(
                        new SetStaticTimePinnedPrice()).SetNext(
                        new SetPriceStatic()).SetNext(
                        new SetStaticTimePinnedNotificationPrice()).SetNext(
                        new NotificationTextChain()).SetNext(
                        new NotificationButtonChain()).SetNext(
                        new PictureNotificationChain());

                    payments.Handle(user.Chain, botClient, message);
                }
                else
                {
                    FludChain fludChain = new FludChain();
                    fludChain.SetNext(
                        new AddPeopleChain()).SetNext(
                        new PostNullChain()).SetNext(
                        new CheckChannelChain()).SetNext(
                        new CheckWordAdnLinkChain()).SetNext(
                        new CheckInviteChain()).SetNext(
                        new CheckPhotoChain());

                    fludChain.Handle(botClient, message, user, settings, tmessage, channel);
                }
            }
            catch (System.Exception ex)
            {
                Log.Logging("Класс Analize - " + ex);
            }
        }
        public async void Execute(TelegramBotClient botClient, System.Object message)
        {
            Message _message = message as Message;

            try
            {
                DataBase db   = Singleton.GetInstance().Context;
                User     user = db.GetUser(_message.From.Id); if (IsNullDataBase.IsNull(botClient, _message, user))
                {
                    return;
                }
                Settings setting = db.GetSettings();

                botClient.DeleteMessage(_message.Chat.Id, _message.MessageId, "44");
                if (Text != null && user.IsAdmin > 0)
                {
                    User userTwo = db.GetUser(System.Convert.ToInt32(Text));

                    if (userTwo != null)
                    {
                        if (user.IsAdmin == 3)
                        {
                            userTwo.BanDate     = System.DateTime.Now.AddDays(30);
                            userTwo.BanDescript = "Вы были забанены администрацией UBC!";
                            userTwo.PayConfirm  = false;
                            userTwo.PayDate     = System.DateTime.Today;
                            db.Save();
                            IsKick.ThisKick(botClient, userTwo);

                            System.String temp = "Администратор " + user.IsAdmin + " уровня: @" + user.Username + " кикнул пользователя!" + "\nID: " + userTwo.ID + "\nФИО: " + userTwo.FIO + "\nНомер: " + user.Number;

                            botClient.SendText(setting.ChannelAdmin, temp, userTwo, true);
                        }
                        else if (userTwo.IsAdmin != 2 && userTwo.IsAdmin != 3)
                        {
                            userTwo.BanDate     = System.DateTime.Now.AddDays(30);
                            userTwo.BanDescript = "Вы были забанены администрацией UBC!";
                            userTwo.PayConfirm  = false;
                            userTwo.PayDate     = System.DateTime.Today;
                            db.Save();
                            IsKick.ThisKick(botClient, userTwo);

                            System.String temp = "Администратор " + user.IsAdmin + " уровня: @" + user.Username + " кикнул пользователя!" + "\nID: " + userTwo.ID + "\nФИО: " + userTwo.FIO + "\nНомер: " + user.Number;

                            botClient.SendText(setting.ChannelAdmin, temp, userTwo, true);
                        }
                        else
                        {
                            user.IsAdmin = 0;
                            if (user.BanDate.Date < System.DateTime.Today)
                            {
                                user.BanDate = System.DateTime.Now;
                            }
                            user.BanDate = user.BanDate.AddDays(30);
                            System.String temp = "Админ " + user.FIO + "\nID: " + user.ID + "\nПопытался заблокировать администратора!\nС данного администратора снята админка, так же он был забанен во всех чатах! Если бан был выдан случайно пропишите /UbBan " + user.ID;
                            IsBanUser.ThisBan(botClient, _message, user, setting);

                            botClient.SendText(setting.ChannelAdmin, temp, user, true);
                        }
                        db.Save();
                    }
                    else
                    {
                        botClient.SendText(user.ID, "Пользователь не найден!");
                    }
                }
                else if (user.IsAdmin > 0)
                {
                    botClient.SendText(user.ID, "Перешлите сообщения от пользователя которого хотите кикнуть!");
                    user.Chain = 9;
                }
            }
            catch (System.Exception ex)
            {
                Log.Logging(ex);
            }
        }
        public async void Execute(TelegramBotClient botClient, System.Object message)
        {
            Message      _message     = message as Message;
            InlineButton inlineButton = new InlineButton();

            try
            {
                DataBase db   = Singleton.GetInstance().Context;
                User     user = db.GetUser(_message.From.Id); if (IsNullDataBase.IsNull(botClient, _message, user))
                {
                    return;
                }

                botClient.DeleteMessage(_message.Chat.Id, _message.MessageId, "258");

                if (Text != null && user.IsAdmin > 0)
                {
                    User userTwo = db.GetUser(System.Convert.ToInt64(Text));

                    if (userTwo != null)
                    {
                        userTwo.BanDate = System.DateTime.Now;
                        IsUnBan.ThisUnBan(botClient, userTwo);
                        db.Save();

                        IsUnBan.ThisUnBan(botClient, userTwo);

                        Settings setting = db.GetSettings();

                        System.String temp = "Администратор " + user.IsAdmin + " уровня: @" + user.Username + " разбанил пользователя!" + "\nID: " + userTwo.ID + "\nФИО: " + userTwo.FIO + "\nНомер: " + user.Number;
                        await botClient.SendTextMessageAsync(setting.ChannelAdmin, temp);
                    }
                    else
                    {
                        try
                        {
                            Message mes = await botClient.EditMessageTextAsync(user.ID, user.MessageID, "Пользователь не найден!", replyMarkup : inlineButton.BackToSettingAdmin);

                            user.MessageID = mes.MessageId;
                        }
                        catch
                        {
                            Message mes = await botClient.SendTextMessageAsync(user.ID, "Пользователь не найден!", replyMarkup : inlineButton.BackToSettingAdmin);

                            user.MessageID = mes.MessageId;
                        }
                        db.Save();
                    }
                }
                else if (user.IsAdmin > 0)
                {
                    try
                    {
                        Message mes = await botClient.EditMessageTextAsync(user.ID, user.MessageID, "Перешлите сообщения от пользователя которого хотите разбанить!", replyMarkup : inlineButton.BackToSettingAdmin);

                        user.Chain     = 1150;
                        user.MessageID = mes.MessageId;
                    }
                    catch
                    {
                        Message mes = await botClient.SendTextMessageAsync(user.ID, "Перешлите сообщения от пользователя которого хотите разбанить!", replyMarkup : inlineButton.BackToSettingAdmin);

                        user.Chain     = 1150;
                        user.MessageID = mes.MessageId;
                    }

                    db.Save();
                }
            }
            catch (System.Exception ex)
            {
                Log.Logging(ex);
            }
        }
        public async void Execute(TelegramBotClient botClient, System.Object message)
        {
            Message      _message     = message as Message;
            InlineButton inlineButton = new InlineButton();

            try
            {
                DataBase db   = Singleton.GetInstance().Context;
                User     user = db.GetUser(_message.From.Id); if (IsNullDataBase.IsNull(botClient, _message, user))
                {
                    return;
                }

                botClient.DeleteMessage(_message.Chat.Id, _message.MessageId, "135");

                if (Text != null && user.IsAdmin > 0)
                {
                    User     userTwo = db.GetUser(System.Convert.ToInt32(Text));
                    Settings setting = db.GetSettings();

                    if (userTwo != null)
                    {
                        if (user.IsAdmin == 3)
                        {
                            if (userTwo.BanDate.Date < System.DateTime.Today)
                            {
                                userTwo.BanDate = System.DateTime.Now;
                            }
                            userTwo.BanDate     = userTwo.BanDate.AddDays(Count);
                            userTwo.BanDescript = "Вы были забанены администрацией UBC!";
                            userTwo.PayConfirm  = false;
                            userTwo.PayDate     = System.DateTime.Today;

                            IsBanUser.ThisBan(botClient, _message, userTwo, setting);

                            System.String temp = "Администратор " + user.IsAdmin + " уровня: @" + user.Username + " забанил пользователя на " + Count + " дней!" + "\nID: " + userTwo.ID + "\nФИО: " + userTwo.FIO + "\nНомер: " + user.Number;

                            await botClient.SendTextMessageAsync(setting.ChannelAdmin, temp);
                        }
                        else if (userTwo.IsAdmin != 2 && userTwo.IsAdmin != 3)
                        {
                            if (userTwo.BanDate.Date < System.DateTime.Today)
                            {
                                userTwo.BanDate = System.DateTime.Now;
                            }
                            userTwo.BanDate     = userTwo.BanDate.AddDays(Count);
                            userTwo.BanDescript = "Вы были забанены администрацией UBC!";
                            userTwo.PayConfirm  = false;
                            userTwo.PayDate     = System.DateTime.Today;

                            IsBanUser.ThisBan(botClient, _message, userTwo, setting);

                            System.String temp = "Администратор " + user.IsAdmin + " уровня: @" + user.Username + " забанил пользователя на " + Count + " дней!" + "\nID: " + userTwo.ID + "\nФИО: " + userTwo.FIO + "\nНомер: " + user.Number;

                            await botClient.SendTextMessageAsync(setting.ChannelAdmin, temp);
                        }
                        else
                        {
                            user.IsAdmin = 0;
                            if (user.BanDate.Date < System.DateTime.Today)
                            {
                                user.BanDate = System.DateTime.Now;
                            }
                            user.BanDate = user.BanDate.AddDays(Count);
                            IsBanUser.ThisBan(botClient, _message, user, setting);

                            System.String temp = "Администратор " + user.IsAdmin + " уровня: @" + user.Username + " пытался забанить другого администратора на " + Count + " дней!" + "\nID: " + userTwo.ID + "\nФИО: " + userTwo.FIO + "\nНомер: " + user.Number + "\nС данного администратора снята админка, так же он был забанен во всех чатах! Если бан был выдан случайно пропишите /UbBan " + user.ID;

                            Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup answer = inlineButton.AdminPanelAppeal(message, user.ID, _message.Text);
                            await botClient.SendTextMessageAsync(setting.ChannelAdmin, temp, replyMarkup : answer);
                        }

                        db.Save();
                    }
                    else
                    {
                        try
                        {
                            Message mes = await botClient.EditMessageTextAsync(user.ID, user.MessageID, "Пользователь не найден!", replyMarkup : inlineButton.BackToSettingAdmin);

                            user.MessageID = mes.MessageId;
                        }
                        catch
                        {
                            Message mes = await botClient.SendTextMessageAsync(user.ID, "Пользователь не найден!", replyMarkup : inlineButton.BackToSettingAdmin);

                            user.MessageID = mes.MessageId;
                        }
                        db.Save();
                    }
                }
                else if (Name == "/Ban" && user.IsAdmin > 0)
                {
                    try
                    {
                        Message mes = await botClient.EditMessageTextAsync(user.ID, user.MessageID, "Перешлите сообщения от пользователя которого хотите забанить!", replyMarkup : inlineButton.BackToSettingAdmin);

                        user.Chain     = 1050;
                        user.MessageID = mes.MessageId;
                    }
                    catch
                    {
                        Message mes = await botClient.SendTextMessageAsync(user.ID, "Перешлите сообщения от пользователя которого хотите забанить!", replyMarkup : inlineButton.BackToSettingAdmin);

                        user.Chain     = 1050;
                        user.MessageID = mes.MessageId;
                    }

                    db.Save();
                }
            }
            catch (System.Exception ex)
            {
                Log.Logging(ex);
            }
        }
Пример #17
0
 private Boolean SelectedUser(Int32 id)
 {
     userTwo = db.GetUser(id);
     return(userTwo == null);
 }
 private void SetUser(Int32 id)
 {
     userTwo = db.GetUser(id);
 }
Пример #19
0
        /// <summary>
        /// Аналитика по добавленых пользователей
        /// </summary>
        /// <param name="analiticsPhrases"></param>
        public static async void GetAnaliticsInUserAdd(InvitedUser[] invitedUsers, TelegramBotClient botClient, CallbackQuery _message, User user)
        {
            DataBase db = Singleton.GetInstance().Context;
            //

            /*var client = new TLSharp.Core.TelegramClient(833968, "a6c65fd9460c44e42c5268b5601c849f");
             * var isAuth = client.IsUserAuthorized();
             * Console.WriteLine($"Файл авторизации существует: {isAuth}");
             * client.ConnectAsync().Wait();
             *
             * ModelParserInfo temp2 = WorkingTelegramClient.ParserInfoAboutChannelAndSuperGroup("BuySellCarUBC", client).GetAwaiter().GetResult();
             *
             * foreach (var u2s in temp2.ChannelInfo.Users)
             * {
             *      Console.WriteLine(u2s.FirstName);
             * }*/

            //

            //создание файла
            String    files     = AppDomain.CurrentDomain.BaseDirectory + "\\newdoc.xls";
            Workbook  workbook  = new Workbook();
            Worksheet worksheet = new Worksheet("Аналитика по добавлению человек");

            worksheet.Cells[0, 0] = new Cell("Добавленый пользователь");
            worksheet.Cells[0, 1] = new Cell("Кто добавил");
            worksheet.Cells[0, 2] = new Cell("Группа");

            Int32 count = 1;

            Channel[] channels = db.GetChannels();

            IQueryable <InvitedUser> temp = invitedUsers.OrderByDescending(p => p.UserAddedId).AsQueryable();


            foreach (InvitedUser invitedUser in temp)
            {
                User Added    = db.GetUser(invitedUser.UserAddedId);
                User WhoAdded = db.GetUser(invitedUser.UserWhoAddedId);

                if (Added != null)
                {
                    worksheet.Cells[count, 0] = new Cell(value: Added.FIO + " " + Added.ID);
                }

                if (WhoAdded != null)
                {
                    worksheet.Cells[count, 1] = new Cell(value: WhoAdded.FIO + " " + WhoAdded.ID);
                }

                if (invitedUser.ChannelId != null)
                {
                    Channel channel = db.GetChannel(invitedUser.ChannelId);
                    if (channel != null)
                    {
                        worksheet.Cells[count, 2] = new Cell(channel.ChannelName);
                    }
                }


                count++;
            }

            workbook.Worksheets.Add(worksheet);
            workbook.Save(files);
            SendMessage(botClient, _message, user, "Аналитика по добавлению человек");
        }