Files
Parasha/SvetoforVKBot/Models/Commands/LK/Consultation/SelectSubmitConsultationCommand.cs
2021-10-20 06:09:18 +03:00

157 lines
6.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<int> ids = new List<int>();
try
{
var idsVk = new long[] { chatId };
var userVk = client.Users.Get(idsVk);
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<MediaAttachment> listDoc = new List<MediaAttachment>()
{
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<List<string>>(user.phone);
@params.Message = "📌Ваша заявка:\n\n";
msg = "Имя: " + userVk[0].FirstName + " " + userVk[0].LastName + "\n" +
"\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" +
"Имя: " + userVk[0].FirstName + " " + userVk[0].LastName + "\n" +
"\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<int>(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);
}
}
}
}