public override async Task Action(MessageResult message) { var call = message.GetData <CallbackData> (); await message.ConfirmAction(); if (call == null) { return; } message.Handled = true; var api = await ModelScoutAPI.ModelScoutAPIPooler.GetOrCreateApi(message.DeviceId); switch (call.Method) { case "GoToCfgAccForm": var caf = new CfgAccForm(Convert.ToInt64(call.Value)); await this.NavigateTo(caf); break; case "GoToAddAccForm": PromptDialog pd = new PromptDialog( "Введите токен аккаунта\n" + "(Можно получить тут https://vkhost.github.io/)"); pd.Closed += async(s, en) => { ModelScoutAPI.Models.VkAcc vkAcc; vkAcc = await api.CreateVkAcc(pd.Value); if (vkAcc == null) { this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; await this.Device.Send("Аккаунт не был добавлен. Проверьте токен"); } else { this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; await this.Device.Send($"Был добавлен аккаунт {vkAcc.FirstName} {vkAcc.LastName}"); } }; await this.OpenModal(pd); break; case "GoToStartForm": var alf = new StartForm(); await this.NavigateTo(alf); break; default: message.Handled = false; break; } }
public override async Task Action(MessageResult message) { var call = message.GetData <CallbackData> (); await message.ConfirmAction(); if (call == null) { return; } var api = await ModelScoutAPI.ModelScoutAPIPooler.GetOrCreateApi(message.DeviceId); var vkAcc = await api.GetVkAcc(_vkAccId); message.Handled = true; PromptDialog pd; switch (call.Method) { case "ChangeCity": pd = new PromptDialog("Введите id города:"); pd.Closed += async(s, en) => { int result; this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; if (Int32.TryParse(pd.Value, out result) && result >= 0) { vkAcc.City = result; await this.Device.Send("Город изменен"); await api.SaveVkAcc(vkAcc); await api.ClearUncheckedClients(); } else { await this.Device.Send("Неверный ввод"); } }; await this.OpenModal(pd); break; case "ChangeCountry": pd = new PromptDialog("Введите id страны:"); pd.Closed += async(s, en) => { int result; this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; if (Int32.TryParse(pd.Value, out result) && result >= 0) { vkAcc.Country = result; await this.Device.Send("Страна изменена"); await api.SaveVkAcc(vkAcc); await api.ClearUncheckedClients(); } else { await this.Device.Send("Неверный ввод"); } }; await this.OpenModal(pd); break; case "ChangeBirthDay": pd = new PromptDialog("Введите день рождения (0 - любой):"); pd.Closed += async(s, en) => { int result; this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; if (Int32.TryParse(pd.Value, out result) && result >= 0 && result <= 31) { vkAcc.BirthDay = result; await api.SaveVkAcc(vkAcc); await this.Device.Send("День рождения изменен"); await api.ClearUncheckedClients(); } else { await this.Device.Send("Неверный ввод"); } }; await this.OpenModal(pd); break; case "ChangeBirthMonth": pd = new PromptDialog("Введите месяц рождения (0 - любой)::"); pd.Closed += async(s, en) => { int result; this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; if (Int32.TryParse(pd.Value, out result) && result >= 0 && result <= 12) { vkAcc.BirthMonth = result; await api.SaveVkAcc(vkAcc); await this.Device.Send("Месяц рождения изменен"); await api.ClearUncheckedClients(); } else { await this.Device.Send("Неверный ввод"); } }; await this.OpenModal(pd); break; case "ChangeAgeFrom": pd = new PromptDialog("Введите нижний предел возраста:"); pd.Closed += async(s, en) => { int result; this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; if (Int32.TryParse(pd.Value, out result) && result >= 0) { vkAcc.AgeFrom = result; await api.SaveVkAcc(vkAcc); await this.Device.Send("Нижний предел возраста изменен"); await api.ClearUncheckedClients(); } else { await this.Device.Send("Неверный ввод"); } }; await this.OpenModal(pd); break; case "ChangeAgeTo": pd = new PromptDialog("Введите верхний предел возраста:"); pd.Closed += async(s, en) => { int result; this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; if (Int32.TryParse(pd.Value, out result) && result >= 0 && result <= 200) { vkAcc.AgeTo = result; await api.SaveVkAcc(vkAcc); await this.Device.Send("Верхний предел возраста изменен"); await api.ClearUncheckedClients(); } else { await this.Device.Send("Неверный ввод"); } }; await this.OpenModal(pd); break; case "ChangeSex": pd = new PromptDialog("Введите пол (0 - любой, 1 - ж, 2 - м):"); pd.Closed += async(s, en) => { int result; this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; if (Int32.TryParse(pd.Value, out result) && result >= 0 && result <= 2) { vkAcc.Sex = result; await this.Device.Send("Пол изменен"); await api.SaveVkAcc(vkAcc); await api.ClearUncheckedClients(); } else { await this.Device.Send("Неверный ввод"); } }; await this.OpenModal(pd); break; case "ChangeLimit": pd = new PromptDialog( "Введите лимит на добавление друзей\n" + "(Этот лимит ограничивает кол-во заявок в друзья в день):"); pd.Closed += async(s, en) => { int result; this.DeleteMode = TelegramBotBase.Enums.eDeleteMode.OnLeavingForm; if (Int32.TryParse(pd.Value, out result) && result >= 0) { vkAcc.FriendsLimit = result; await this.Device.Send("Лимит изменен"); await api.SaveVkAcc(vkAcc); await api.ClearUncheckedClients(); } else { await this.Device.Send("Неверный ввод"); } }; await this.OpenModal(pd); break; case "GoToCfgAccForm": var ccaf = new CfgAccForm(_vkAccId); await this.NavigateTo(ccaf); break; default: message.Handled = false; break; } }