Добавьте файлы проекта.
This commit is contained in:
240
SvetoforVKBot/Models/Commands/Start/StartCommand.cs
Normal file
240
SvetoforVKBot/Models/Commands/Start/StartCommand.cs
Normal file
@@ -0,0 +1,240 @@
|
||||
using System;
|
||||
using System.Data.SqlClient;
|
||||
using SvetoforVKBot.Models.Updates;
|
||||
using VkNet;
|
||||
using VkNet.Enums.SafetyEnums;
|
||||
using VkNet.Model.Keyboard;
|
||||
using VkNet.Model.RequestParams;
|
||||
using Newtonsoft.Json;
|
||||
using VkNet.Enums.Filters;
|
||||
using VkNet.Model.Attachments;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using SvetoforVKBot.Models.Dop;
|
||||
using SvetoforVKBot.Models.Commands.LK;
|
||||
using SvetoforVKBot.Models.Commands.LK.SportsLK;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
|
||||
namespace SvetoforVKBot.Models.Commands
|
||||
{
|
||||
public class StartCommand : Command
|
||||
{
|
||||
public override string Name => "Начать";
|
||||
|
||||
public override void Execute(RootObject update, VkApi client, SvetoforVKBot.Data.SvetoforVKBotEntities db)
|
||||
{
|
||||
var chatId = update.@object.message.from_id;
|
||||
MessagesSendParams @params = new MessagesSendParams();
|
||||
var keyboardBuilder = new KeyboardBuilder().Clear();
|
||||
string tag = "";
|
||||
string utm = "";
|
||||
|
||||
try
|
||||
{
|
||||
var ids = new long[] { chatId };
|
||||
var user = client.Users.Get(ids, ProfileFields.Sex);
|
||||
var gender = Convert.ToInt32(user[0].Sex);
|
||||
var listButtons = new List<ReadOnlyCollection<MessageKeyboardButton>>();
|
||||
Uri URL = new Uri("https://www.vyatsu.ru/");
|
||||
#region UTM
|
||||
/*
|
||||
utm = update.@object.message.@ref;
|
||||
|
||||
if (utm != "" && utm != null)
|
||||
{
|
||||
if (int.TryParse(utm, out int refer))
|
||||
{
|
||||
if (refer != chatId)
|
||||
{
|
||||
int referId = 1;
|
||||
|
||||
//Проверяем приглашали ли этого пользователя раннее
|
||||
getUser = new SqlCommand("SELECT referId FROM Users WHERE chatId = @chatId;", Con);
|
||||
getUser.Parameters.AddWithValue("@chatId", chatId);
|
||||
rgetUser = getUser.ExecuteReader();
|
||||
rgetUser.Read();
|
||||
int uReferId = Convert.ToInt32(rgetUser["referId"]);
|
||||
rgetUser.Close();
|
||||
|
||||
if (uReferId == 0) // 0 - не приглашали
|
||||
{
|
||||
//Ищем пользователя, который пригласил
|
||||
SqlCommand getRefer = new SqlCommand("SELECT chatId FROM Users WHERE chatId = @refer;", Con);
|
||||
getRefer.Parameters.AddWithValue("@refer", refer);
|
||||
SqlDataReader rgetRefer = getRefer.ExecuteReader();
|
||||
if (rgetRefer.HasRows) // если пользователь существует
|
||||
{
|
||||
rgetRefer.Close();
|
||||
|
||||
SqlCommand updReferId = new SqlCommand("UPDATE Users SET referId = @referId WHERE chatId = @chatId;", Con);
|
||||
updReferId.Parameters.AddWithValue("@chatId", chatId);
|
||||
updReferId.Parameters.AddWithValue("@referId", refer);
|
||||
updReferId.ExecuteNonQuery();
|
||||
|
||||
selectQuestRoom.ExecutePL(update, client, Con);
|
||||
return;
|
||||
}
|
||||
else
|
||||
rgetRefer.Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
selectQuestRoom.ExecutePL(update, client, Con);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
selectQuestRoom.ExecutePL(update, client, Con);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
SourceUpdate sourceUpdate = new SourceUpdate();
|
||||
sourceUpdate.Execute(update, client, Con);
|
||||
|
||||
switch (utm)
|
||||
{
|
||||
case "afisha":
|
||||
SelectEventsCommand selectEvents = new SelectEventsCommand();
|
||||
selectEvents.ExecutePL(update, client, Con);
|
||||
return;
|
||||
|
||||
case "quest":
|
||||
selectQuestRoom.ExecutePL(update, client, Con);
|
||||
return;
|
||||
|
||||
case "project":
|
||||
SelectProjectOfficeCommand selectProjectOffice = new SelectProjectOfficeCommand();
|
||||
selectProjectOffice.ExecutePL(update, client, Con);
|
||||
return;
|
||||
|
||||
case "faq":
|
||||
SelectOSCommand selectOS = new SelectOSCommand();
|
||||
selectOS.ExecutePL(update, client, Con);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
#endregion UTM
|
||||
|
||||
var getUser = db.Users.Single(usr => usr.chatId == chatId);
|
||||
int reg = getUser.reg;
|
||||
int admin = getUser.admin;
|
||||
int activityKind = getUser.activityKind;
|
||||
getUser.tag = "Старт";
|
||||
db.SaveChanges();
|
||||
|
||||
switch (reg)
|
||||
{
|
||||
case 1:
|
||||
if (activityKind == 2 || activityKind == 3)
|
||||
{
|
||||
ShowLKCommand showLK = new ShowLKCommand();
|
||||
showLK.Execute(update, client, db);
|
||||
}
|
||||
else // спортсмены
|
||||
{
|
||||
ShowLKCommand showLK = new ShowLKCommand();
|
||||
showLK.Execute(update, client, db);
|
||||
//ShowSportsLKCommand showSportsLK = new ShowSportsLKCommand();
|
||||
//showSportsLK.Execute(update, client, Con);
|
||||
}
|
||||
return;
|
||||
|
||||
default:
|
||||
@params.Message = "Добрый день, " + user[0].FirstName + "!" +
|
||||
"\n\n" +
|
||||
"🍏Проект \"Здоровое питание\" – это доступная возможность для каждого студента, сотрудника и любого желающего " +
|
||||
"улучшить свою жизнь, здоровье и самочувствие." +
|
||||
"\n\n" +
|
||||
"👉🏻Проект направлен на формирование культуры правильного питания, мотивации к регулярным занятиям физическими упражнениями. " +
|
||||
"Для участников проекта разработано меню правильного питания, будет осуществляться исследование морфофункционального " +
|
||||
"состояния участников, разрабатываться комплекс физических упражнений." +
|
||||
"\n\n" +
|
||||
"💬Участники проекта будут обеспечены консультационной поддержкой от организаторов.";
|
||||
|
||||
|
||||
//keyboardBuilder
|
||||
// .AddButton("🚦Принять участие", "selectAgreement", KeyboardButtonColor.Positive); //✅ selectAgreement
|
||||
//.AddLine()
|
||||
var row2 = new List<MessageKeyboardButton>()
|
||||
{
|
||||
new MessageKeyboardButton() {
|
||||
Action = new MessageKeyboardButtonAction(){
|
||||
Label = "🚦Принять участие",
|
||||
Payload = "{\"button\":\"selectParticipate\"}", //selectAgreement
|
||||
Type = KeyboardButtonActionType.Text},
|
||||
Color = KeyboardButtonColor.Positive
|
||||
}
|
||||
};
|
||||
listButtons.Add(new ReadOnlyCollection<MessageKeyboardButton>(row2)); //.AddButton("❔Вопросы и ответы", "selectInProgress", KeyboardButtonColor.Primary);
|
||||
//var row = new List<MessageKeyboardButton>()
|
||||
//{
|
||||
// new MessageKeyboardButton() {
|
||||
// Action = new MessageKeyboardButtonAction(){
|
||||
// Type = KeyboardButtonActionType.OpenLink,
|
||||
// Link = URL,
|
||||
// Label = "Узнать подробнее",
|
||||
// Payload = "{\"button\":\"selectOpenSheet\"}"
|
||||
// },
|
||||
// }
|
||||
//};
|
||||
//listButtons.Add(new ReadOnlyCollection<MessageKeyboardButton>(row));
|
||||
|
||||
|
||||
if (chatId == 59111081 || chatId == 10160301 || chatId == 369217524 || chatId == 178385801)
|
||||
{
|
||||
var row3 = new List<MessageKeyboardButton>()
|
||||
{
|
||||
new MessageKeyboardButton() {
|
||||
Action = new MessageKeyboardButtonAction(){
|
||||
Type = KeyboardButtonActionType.Text,
|
||||
Label = "Администратору",
|
||||
Payload = "{\"button\":\"selectAdminMenu\"}"
|
||||
},
|
||||
Color = KeyboardButtonColor.Default
|
||||
}
|
||||
};
|
||||
listButtons.Add(new ReadOnlyCollection<MessageKeyboardButton>(row3));
|
||||
|
||||
//keyboardBuilder
|
||||
// .AddLine()
|
||||
// .AddButton("Администратору", "selectAdminMenu", KeyboardButtonColor.Default);
|
||||
}
|
||||
|
||||
var buttons = new ReadOnlyCollection<ReadOnlyCollection<MessageKeyboardButton>>(listButtons);
|
||||
|
||||
var keyboard = new MessageKeyboard()
|
||||
{
|
||||
Buttons = buttons,
|
||||
OneTime = false
|
||||
};
|
||||
|
||||
|
||||
@params.Keyboard = keyboard;
|
||||
@params.UserId = chatId;
|
||||
@params.RandomId = GetRandomId();
|
||||
client.Messages.SendAsync(@params);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ee)
|
||||
{
|
||||
@params.Message = "‼Ошибка в StartCommand: " + ee.Message;
|
||||
@params.Attachments = null;
|
||||
@params.Keyboard = null;
|
||||
@params.UserId = 59111081;
|
||||
@params.RandomId = GetRandomId();
|
||||
client.Messages.SendAsync(@params);
|
||||
}
|
||||
}
|
||||
|
||||
public override void ExecutePL(RootObject update, VkApi client, SvetoforVKBot.Data.SvetoforVKBotEntities db)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user