using System;
using System.Data.SqlClient;
using System.Linq;
using SvetoforVKBot.Models.Updates;
using VkNet;
using VkNet.Enums.SafetyEnums;
using VkNet.Model.Keyboard;
using VkNet.Model.RequestParams;

namespace SvetoforVKBot.Models.Commands.LK.Calculators
{
    public class SelectIdealWeightCommand : Command
    {
        public override string Name => "{\"button\":\"selectIdealWeight\"}";

        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();
            var keyboardBuilder = new KeyboardBuilder().Clear();
            double indexMT = 23;
            double indexMTLow = 18.5;
            double indexMTHigh = 25;
            string IMT = "";
            double idealWeight = 0;
            double normWeightLow = 0;
            double normWeightHigh = 0;
            int age = 0;
            try
            {
                Data.Users user = db.Users.Single(usr => usr.chatId == chatId);

                age = DateTime.Today.Year - user.birthday.Year;

                idealWeight = Math.Round(indexMT * user.height / 100.0 * user.height / 100.0, 1);
                normWeightLow = Math.Round(indexMTLow * user.height / 100.0 * user.height / 100.0, 1);
                normWeightHigh = Math.Round(indexMTHigh * user.height / 100.0 * user.height / 100.0, 1);
                //indexMT = Math.Round(weight / (double)(height / 100.0 * height / 100.0), 1);
                @params.Message = "⭐Ваш идеальный вес: " + idealWeight + " кг.\n" +
                    "✅Диапазон нормального веса: " + normWeightLow + " - " + normWeightHigh + " кг.\n\n" + 
                    "Идеальный для здоровья вес рассчитывается, исходя из ИМТ равного 23.";

                keyboardBuilder
                    .AddButton("Назад", "startPL", KeyboardButtonColor.Default);

                @params.Keyboard = keyboardBuilder.Build();
                @params.UserId = chatId;
                @params.RandomId = GetRandomId();
                client.Messages.SendAsync(@params);

            }
            catch (Exception ee)
            {
                @params.Message = "Ошибка в SelectIdealWeightCommand: " + ee.Message;
                @params.Attachments = null;
                @params.Keyboard = null;
                @params.UserId = 59111081;
                @params.RandomId = GetRandomId();
                client.Messages.SendAsync(@params);
            }
        }
    }
}