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 System.Text.RegularExpressions; using System.Collections.Generic; using System.Collections.ObjectModel; using Newtonsoft.Json; using System.Linq; namespace SvetoforVKBot.Models.Commands.LK.Tracks { public class SelectTrackCommand : Command { public override string Name => "{\"button\":\"selectTrack-"; 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(); Regex regex = new Regex("[^0-9]"); string msg = ""; var keyboardBuilder = new KeyboardBuilder().Clear(); int age = 0; int genderCoef = 0; double kkalResult = 0; double colorPercent = 0; double dayCoef = 0; double curDayKkal = 0; try { string[] payload = update.@object.message.payload.Split('-'); int track = Convert.ToInt32(regex.Replace(payload[1], "")); Dictionary colors = new Dictionary(3); colors.Add(1, "🟩"); //З colors.Add(2, "🟦"); //C colors.Add(3, "🟨"); //Ж Dictionary tracks = new Dictionary(7); tracks.Add(1, "Оптимизация питания"); tracks.Add(2, "Снижение жировой массы"); tracks.Add(3, "Увеличение мышечной массы"); tracks.Add(4, "Персональный режим"); //SqlCommand updTag = new SqlCommand("UPDATE Users SET track = @track WHERE chatId = @chatId;", Con); //updTag.Parameters.AddWithValue("@chatId", chatId); //updTag.Parameters.AddWithValue("@track", track); //updTag.ExecuteNonQuery(); var user = db.Users.Single(usr => usr.chatId == chatId); //SqlCommand getUser = new SqlCommand("SELECT * FROM Users WHERE chatId = @chatId;", Con); //getUser.Parameters.AddWithValue("@chatId", chatId); //SqlDataReader rgetUser = getUser.ExecuteReader(); //rgetUser.Read(); //int choosenTrack = Convert.ToInt32(rgetUser["track"]); //rgetUser.Close(); ////age = (DateTime.Today.Year - birthday.Year); switch (track) { case 1: @params.Message = "Рекомендации для поддержания массы тела:" + "\n\n" + "Режим питания: 3 - 4 разовое питание, из них 3 основных приема пищи (завтрак, обед и ужин) и 1 дополнительный прием.\n" + "Распределение объема пищи в течение дня должно быть следующим: завтрак – 20-30%, обед – 30-40%, полдник – 5-10%, ужин – 20-30%.\n" + "В рационе питания должно быть на килограмм массы тела: белков 1,4-2,0 грамма, жиров 1,0-1,1 грамма и углеводов 2,4-3,0 грамма." + "\n\n" + "Жмите \"Рацион питания\", чтобы увидеть список рекомендуемых и нерекомендуемых продуктов.\n" + "\"Примерное меню\" поможет Вам составить персональное меню." + "\n\n" + "Если Вас не устраивает данный рацион и Вам необходима индивидуальная консультация специалиста, то выберете трек \"Персональный режим\""; break; case 2: @params.Message = "Рекомендации для снижения жировой массы тела:" + "\n\n" + "Режим питания: 4 - 5 разового питание, из них 3 основных приема пищи (завтрак, обед и ужин) и 1-2 дополнительных приема.\n" + "Распределение объема пищи в течение дня должно быть следующим: завтрак – 20-30%, обед – 30-40%, полдник – 5-10%, ужин – 20-30%, второй завтрак (5-10%) и второй ужин (до 5%).\n" + "В рационе питания должно быть на килограмм массы тела: белков 1,2-1,7 грамма, жиров 0,9-1,0 грамма и углеводов 2,0-2,6 грамма." + "\n\n" + "Жмите \"Рацион питания\", чтобы увидеть список рекомендуемых и нерекомендуемых продуктов.\n" + "\"Примерное меню\" поможет Вам составить персональное меню." + "\n\n" + "Если Вас не устраивает данный рацион и Вам необходима индивидуальная консультация специалиста, то выберете трек \"Персональный режим\""; break; case 3: @params.Message = "Рекомендации для набора мышечной массы тела:" + "\n\n" + "Режим питания: 4 - 5 разового питание, из них 3 основных приема пищи (завтрак, обед и ужин) и 1-2 дополнительных приема.\n" + "Распределение объема пищи в течение дня должно быть следующим: завтрак – 20-30%, обед – 30-40%, полдник – 5-10%, ужин – 20-30%, второй завтрак (5-10%) и второй ужин (до 5%).\n" + "В рационе питания должно быть на килограмм массы тела: белков 1,6-2,2 грамма, жиров 1,1-1,2 грамма и углеводов 2,8-3,4 грамма." + "\n\n" + "Жмите \"Рацион питания\", чтобы увидеть список рекомендуемых и нерекомендуемых продуктов.\n" + "\"Примерное меню\" поможет Вам составить персональное меню." + "\n\n" + "Если Вас не устраивает данный рацион и Вам необходима индивидуальная консультация специалиста, то выберете трек \"Персональный режим\""; break; case 4: @params.Message = "⚠Персональный режим определяется после консультации со специалистом.\n\n" + "Консультация включает: \n\n" + "- определение и оценка состава тела\n" + "- коррекция рациона питания\n" + "- оценка функционального состояния\n" + "- психофизиологическое тестирование\n\n" + "📍Консультации проводятся по субботам по адресу: г. Киров, ул. Молодой Гвардии, д.13.\n" + "☎Тел. 70-81-22.\n" + "Стоимость и условия по телефону. \n\n" + "Специалист: Кадочникова Наталья Ивановна.\n\n" + "Чтобы узнать подробнее, нажмите кнопку \"О специалисте\"\n\n" + "Вы можете оформить заявку на запись. Для этого нажмите кнопку \"Оставить заявку\".\n" + "Ваши данные будут отправлены менеджеру, с Вами свяжутся для уточнения даты и времени консультации."; keyboardBuilder .AddButton("Оставить заявку", "selectSubmitConsultation", KeyboardButtonColor.Positive) .AddLine() .AddButton("О специалисте", "selectMoreAboutSpec", KeyboardButtonColor.Primary) .AddLine() .AddButton("Назад", "startPL", KeyboardButtonColor.Default); @params.Keyboard = keyboardBuilder.Build(); @params.UserId = chatId; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); return; } //keyboardBuilder // .AddButton("💬Консультация", "selectLiveConsultation", KeyboardButtonColor.Primary) // .AddLine() // //.AddButton(cons, "selectGotConsultation", KeyboardButtonColor.Primary) // //.AddLine() // .AddButton("Назад", "selectCalculatorCcal", KeyboardButtonColor.Default); if (track != 4) // && choosenTrack == 0) { if (user.track != track) { keyboardBuilder .AddButton(colors[track] + "Выбрать этот трек", "selectChooseTrack-" + track, KeyboardButtonColor.Positive) .AddLine(); } keyboardBuilder .AddButton("Рацион питания", "selectRation-" + track, KeyboardButtonColor.Primary) //.AddButton("Примерное меню", "selectExampleMenu-" + track, KeyboardButtonColor.Primary) .AddLine() .AddButton("Персональный режим", "selectTrack-4", KeyboardButtonColor.Primary) .AddLine() .AddButton("Назад", "startPL", KeyboardButtonColor.Default); } //else if (track != 0 && choosenTrack != 0) //{ // keyboardBuilder // .AddButton("Рацион питания", "selectRation-" + track, KeyboardButtonColor.Primary) // //.AddButton("Примерное меню", "selectExampleMenu-" + track, KeyboardButtonColor.Primary) // .AddLine() // .AddButton("Персональный режим", "selectTrack-4", KeyboardButtonColor.Primary) // .AddLine() // .AddButton("Назад", "startPL", KeyboardButtonColor.Default); //} @params.Keyboard = keyboardBuilder.Build(); @params.UserId = chatId; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); } catch (Exception ee) { @params.Message = "‼Ошибка в SelectTrackCommand: " + ee.Message; @params.Attachments = null; @params.Keyboard = null; @params.UserId = 59111081; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); } } } }