using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Net.Http; using System.Security.Cryptography; using System.Text; using SvetoforVKBot.Models.Updates; using VkNet; using VkNet.Enums.SafetyEnums; using VkNet.Model.Keyboard; using VkNet.Model.RequestParams; using System.Linq; namespace SvetoforVKBot.Models.Commands.Registration { public class GetGenderCommand { public 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(); int i = 0; int btnCount = 0; int btnLines = 0; int startYear = DateTime.Now.Year - 15; int gender = 0; try { if (update.@object.message.text.Trim().Length > 0 && update.@object.message.text.Trim().Length < 2) { var ids = new long[] { chatId }; string genderStr = update.@object.message.text.ToLower(); if (genderStr == "m" || genderStr == "м" || genderStr == "ж") { if (genderStr == "m" || genderStr == "м") gender = 1; if (genderStr == "ж") gender = 2; var user = db.Users.Single(usr => usr.chatId == chatId); user.gender = gender; user.tag = "Подписчик - Регистрация - ФИО"; db.SaveChanges(); //updTag.Parameters.AddWithValue("@tag", "Подписчик - Регистрация - ФИО"); keyboardBuilder .AddButton("Отменить", "startPL", KeyboardButtonColor.Default); @params.Keyboard = keyboardBuilder.Build(); @params.UserId = chatId; @params.Message = "Расскажите немного о себе 😉\n" + "Напишите ФИО.\n\nНапример: Иванов Иван Иванович"; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); } else { @params.Message = "Данные введены некорректно 😕 Напишите, пожалуйста, \"М\" или \"Ж\" "; @params.UserId = chatId; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); } } else { @params.Message = "Данные введены некорректно 😕 Напишите, пожалуйста, \"М\" или \"Ж\" "; @params.UserId = chatId; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); } } catch (Exception ee) { @params.Message = "‼Ошибка в GetFIOCommand: " + ee.Message; @params.Attachments = null; @params.Keyboard = null; @params.UserId = 59111081; @params.RandomId = GetRandomId(); client.Messages.SendAsync(@params); } } private static readonly RandomNumberGenerator Rng = RandomNumberGenerator.Create(); public int GetRandomId() { var intBytes = new byte[4]; Rng.GetBytes(intBytes); return BitConverter.ToInt32(intBytes, 0); } } }