using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Threading; using Newtonsoft.Json; using SvetoforVKBot.Models.Updates; using VkNet; using VkNet.Enums.SafetyEnums; using VkNet.Model.Attachments; using VkNet.Model.Keyboard; using VkNet.Model.RequestParams; using System.Linq; using System.Configuration; using SvetoforVKBot.App_Start; namespace SvetoforVKBot.Models.Commands.LK.Consultation { public class SelectSubmitConsultationCommand : Command { public const int MODER = 59111081; public override string Name => "{\"button\":\"selectSubmitConsultation\"}"; public override void Execute(RootObject update, VkApi client, SvetoforVKBot.Data.SvetoforVKBotEntities db) { } public override void ExecutePL(RootObject update, VkApi client, SvetoforVKBot.Data.SvetoforVKBotEntities db) { var chatId = update.@object.message.from_id; MessagesSendParams @params = new MessagesSendParams(); MessagesSendParams @params2 = new MessagesSendParams(); var keyboardBuilder = new KeyboardBuilder().Clear(); string msg = ""; DateTime dt = DateTime.Now; string msgManager = ""; List ids = new List(); try { if (db.PersonalConsultations.Where(c => c.chatId == chatId).Count() > 0) { @params.Message = "Ваша заявка уже на рассмотрении. Чтобы вернуться назад, нажмите кнопку \"Личный кабинет\"."; keyboardBuilder .AddButton("Личный кабинет", "startPL", KeyboardButtonColor.Positive); @params.Keyboard = keyboardBuilder.Build(); @params.UserId = chatId; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); return; } //https://vk.com/doc59111081_594730049 List listDoc = new List() { new Document() { Id = 594730049, OwnerId = 59111081 } }; db.PersonalConsultations.Add(new Data.PersonalConsultation() { chatId = chatId, datetime = dt, state = 1, }); db.SaveChanges(); var user = db.Users.Single(usr => usr.chatId == chatId); var jsPhones = JsonConvert.DeserializeObject>(user.phone); @params.Message = "📌Ваша заявка:\n\n"; msg = "ФИО: " + user.fio + "\n" + "Телефон: " + jsPhones[0] + "\n" + "Дата рождения: " + user.birthday.ToShortDateString() + "\n\n" + "Дата заявки: " + dt.ToString("dd.MM.yyyy HH:mm"); @params.Message += msg + "\n\n" + "Заявка отправлена! Менеджер свяжется с Вами в ближайшее время. Чтобы вернуться назад, нажмите кнопку \"Личный кабинет\".\n\n" + "Квитанция на оплату 👇🏻"; keyboardBuilder .AddButton("Личный кабинет", "startPL", KeyboardButtonColor.Positive); @params.Attachments = listDoc; @params.Keyboard = keyboardBuilder.Build(); @params.UserId = chatId; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); Thread.Sleep(1000); @params2.Message = "✅Новая заявка на консультацию:\n\n" + "ФИО: " + user.fio + "\n" + "Телефон: " + jsPhones[0] + "\n" + "Дата рождения: " + user.birthday.ToShortDateString() + "\n" + "Рост: " + user.height + "\n" + "Вес: " + user.weight + "\n\n" + "Дата заявки: " + dt.ToString("dd.MM.yyyy HH:mm") + "\n" + "Диалог с пользователем: " + ((WebConfiguration)ConfigurationManager.GetSection("VKApi")).GroupDialogsLink + chatId; //https://vk.com/gim194717824?sel= @params2.PeerId = 2000000002; @params2.RandomId = GetRandomId(); client.Messages.SendAsync(@params2); Thread.Sleep(1500); ids = db.PersonalConsultations.Where(c => c.state == 2).ToList().ConvertAll(el => el.chatId); string strIds = "Участники, записавшиеся на консультацию:\n"; if (ids.Count >= 6) { foreach (var id in ids) { strIds += ((WebConfiguration)ConfigurationManager.GetSection("VKApi")).GroupDialogsLink + id + " \n"; //Проверить как записывает var con = db.PersonalConsultations.Where(el => el.chatId == chatId); db.Entry(con).Property("state").CurrentValue = 3; db.SaveChanges(); Thread.Sleep(10); } @params2.Message = "🔔 Набралась группа на консультацию! Оповестите их о подробностях." + "\n\n" + strIds; @params2.PeerId = 2000000002; @params2.RandomId = GetRandomId(); client.Messages.SendAsync(@params2); } } catch (Exception ee) { @params.Message = "Ошибка в SelectSubmitConsultationCommand: " + ee.Message; @params.Attachments = null; @params.Keyboard = null; @params.UserId = 59111081; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); } } } }