Пример #1
0
        public override async Task ExecuteAsync(Message message, TelegramBotClient botClient)
        {
            var chatId = (int)message.Chat.Id;

            using (TelegramContext db = new TelegramContext())
            {
                var User = db.Users.Where(p => p.Id == message.From.Id).SingleOrDefault();
                if (User == null)
                {
                    User user = new User {
                        Id = chatId, Name = message.From.Username
                    };
                    UserState us = new UserState {
                        User = user, State = (int)UserStatesEnum.Empty, LastMessageId = message.MessageId
                    };
                    db.Users.Add(user);
                    db.UserStates.Add(us);
                    db.SaveChanges();

                    UserLocker.AddUser(chatId);
                    UserLocker.LockUser(chatId);
                }

                VacanciesManager.MainMenu(message, botClient);
            }
        }
Пример #2
0
        private static async void AddHeaderCallback(TelegramBotClient botClient, Message message)
        {
            var messageText = $"Введите название проекта/задачи/должности\n\nПример: Разработка сайта, Менеджер по продажам";

            StateManager.StateUpdate(message.Chat.Id, (int)UserStatesEnum.AddHeader);
            await VacanciesManager.SendMessage(botClient, message, messageText);
        }
Пример #3
0
        private static async void AddPaymentOffersCallback(TelegramBotClient botClient, Message message)
        {
            var messageText = $"Введите суму оплаты.";

            StateManager.StateUpdate(message.Chat.Id, (int)UserStatesEnum.AddPaymentOffers);
            await VacanciesManager.SendMessage(botClient, message, messageText);
        }
Пример #4
0
        private static async void AddResponsibilitiesCallback(TelegramBotClient botClient, Message message, TelegramContext db)
        {
            var userState = db.UserStates.Include(x => x.User).Where(x => x.User.Id == message.Chat.Id).Include(x => x.Vacancy).SingleOrDefault();

            userState.Vacancy.Responsibilities = "";
            db.UserStates.Update(userState);
            db.SaveChanges();
            StateManager.StateUpdate(message.Chat.Id, (int)UserStatesEnum.AddResponsibilities);

            var messageText = $"Введите список обязаностей соискателя (меню \"Что нужно делать\"). Каждый пункт отправляйте отдельным сообщением.";
            await VacanciesManager.SendMessage(botClient, message, messageText);
        }
Пример #5
0
        private static async void AddContactsCallback(TelegramBotClient botClient, Message message, TelegramContext db)
        {
            var userState = db.UserStates.Include(x => x.User).Where(x => x.User.Id == message.Chat.Id).Include(x => x.Vacancy).SingleOrDefault();

            userState.Vacancy.Contacts = "";
            db.UserStates.Update(userState);
            db.SaveChanges();

            StateManager.StateUpdate(message.Chat.Id, (int)UserStatesEnum.AddContacts);

            var messageText = $"Введите ваши контакты (меню \"Контакты\"). Каждый пункт отправляйте отдельным сообщением.";
            await VacanciesManager.SendMessage(botClient, message, messageText);
        }
Пример #6
0
        private static async void AddDescriptionCallback(TelegramBotClient botClient, Message message)
        {
            var keyboard = new InlineKeyboardMarkup(
                new InlineKeyboardButton[]
            {
                new InlineKeyboardButton {
                    Text = "Пропустить", CallbackData = "AddResponsibilities"
                }
            }
                );

            StateManager.StateUpdate(message.Chat.Id, (int)UserStatesEnum.AddDescription);
            var messageText = $"Введите описание кампании или проекта. Если хотите пропустить этот шаг нажмите кнопку \"Пропустить\".";
            await VacanciesManager.SendMessage(botClient, message, messageText, keyboard);
        }
Пример #7
0
        private static async void AddAdditionalCommentCallback(TelegramBotClient botClient, Message message)
        {
            var keyboard = new InlineKeyboardMarkup(
                new InlineKeyboardButton[]
            {
                new InlineKeyboardButton {
                    Text = "Пропустить", CallbackData = "AddContacts"
                }
            }
                );

            StateManager.StateUpdate(message.Chat.Id, (int)UserStatesEnum.AddAdditionalComment);
            var messageText = $"Введите дополнительный комментарий. Если хотите пропустить этот шаг нажмите кнопку \"Пропустить\".";
            await VacanciesManager.SendMessage(botClient, message, messageText, keyboard);
        }
Пример #8
0
        private static async void AddOfferedCallback(TelegramBotClient botClient, Message message, TelegramContext db)
        {
            var userState = db.UserStates.Include(x => x.User).Where(x => x.User.Id == message.Chat.Id).Include(x => x.Vacancy).SingleOrDefault();

            userState.Vacancy.Offered = "";
            db.UserStates.Update(userState);
            db.SaveChanges();

            var keyboard = new InlineKeyboardMarkup(
                new InlineKeyboardButton[]
            {
                new InlineKeyboardButton {
                    Text = "Пропустить", CallbackData = "AddPaymentOffers"
                }
            }
                );

            StateManager.StateUpdate(message.Chat.Id, (int)UserStatesEnum.AddOffered);

            var messageText = $"Введите список того, что вы предлагаете соискателю, кроме заработной платы, (меню \"Что предлагаем\"). Каждый пункт отправляйте отдельным сообщением." +
                              $"\nЕсли хотите пропустить этот шаг нажмите кнопку \"Пропустить\".";
            await VacanciesManager.SendMessage(botClient, message, messageText, keyboard);
        }
Пример #9
0
        public static async void ChoseCallBackQuery(Telegram.Bot.TelegramBotClient botClient, Update update)
        {
            try
            {
                using (TelegramContext db = new TelegramContext())
                {
                    var user     = db.Users.Where(x => x.Id == update.CallbackQuery.From.Id).Single();
                    var callBack = update.CallbackQuery;

                    await botClient.AnswerCallbackQueryAsync(update.CallbackQuery.Id);

                    if (callBack.Data == "ShowPrice")
                    {
                        VacanciesManager.ShowPrice(botClient, update.CallbackQuery.Message);
                    }
                    else if (callBack.Data == "AddVacancy")
                    {
                        VacanciesManager.AddVacancу(botClient, update.CallbackQuery.Message, db);
                    }
                    else if (callBack.Data == "AddHeader")
                    {
                        AddHeaderCallback(botClient, update.CallbackQuery.Message);
                    }
                    else if (callBack.Data == "AddDescription")
                    {
                        AddDescriptionCallback(botClient, update.CallbackQuery.Message);
                    }
                    else if (callBack.Data == "AddResponsibilities")
                    {
                        AddResponsibilitiesCallback(botClient, update.CallbackQuery.Message, db);
                    }
                    else if (callBack.Data == "AddRequirements")
                    {
                        AddRequirementsCallback(botClient, update.CallbackQuery.Message, db);
                    }
                    else if (callBack.Data == "AddOffered")
                    {
                        AddOfferedCallback(botClient, update.CallbackQuery.Message, db);
                    }
                    else if (callBack.Data == "AddPaymentOffers")
                    {
                        AddPaymentOffersCallback(botClient, update.CallbackQuery.Message);
                    }
                    else if (callBack.Data == "AddAdditionalComment")
                    {
                        AddAdditionalCommentCallback(botClient, update.CallbackQuery.Message);
                    }
                    else if (callBack.Data == "AddContacts")
                    {
                        AddContactsCallback(botClient, update.CallbackQuery.Message, db);
                    }
                    else if (callBack.Data == "ConfirmVacancу")
                    {
                        VacanciesManager.ConfirmVacancу(botClient, update.CallbackQuery.Message, db);
                    }
                    else if (callBack.Data == "SaveVacancy")
                    {
                        VacanciesManager.SaveVacancу(botClient, update.CallbackQuery.Message, db);
                    }
                    else if (callBack.Data == "MainMenu")
                    {
                        VacanciesManager.MainMenu(update.CallbackQuery.Message, botClient);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Пример #10
0
 public JobVacanciesController()
 {
     VacanciesService = new VacanciesManager();
 }