using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using MySystem.MainModels;
using System.Linq;
using Library;
using LitJson;
using System.Threading.Tasks;
using System;

namespace MySystem.Controllers
{
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;

        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult Error()
        {
            string isapi = Request.Headers["Api"].ToString();
            if (isapi != "1")
            {
                if (Response.StatusCode == 500)
                {
                    return Redirect("/public/errpage/pc/500.html");
                }
                else if (Response.StatusCode == 502)
                {
                    return Redirect("/public/errpage/pc/502.html");
                }
                else if (Response.StatusCode == 404)
                {
                    return Redirect("/public/errpage/pc/404.html");
                }
            }
            return View();
        }

        public string setFee(string merNo, string sn, decimal fee, int addRate = 0)
        {
            string content = PublicImportDataService.Instance.SetFee(merNo, sn, fee, addRate);
            JsonData obj = JsonMapper.ToObject(content);
            if (obj["code"].ToString() == "000000")
            {
                content += "|" + PublicImportDataService.Instance.Decrypt(obj["data"].ToString());
            }
            return content;
        }

        public string test()
        {
            // List<string> list = new List<string>();
            // foreach(string sub in list)
            // {
            //     string url = "https://logic-executor-api.kexiaoshuang.com/noauth/prize/pushbyone?n=QUEUE_KXS_MACHINE_PRIZE_CONFIG_DIVISION&m=" + sub + "&ids=3";
            //     string content = function.GetWebRequest(url);
            // }
            // return "ok";
            return PublicImportDataService.Instance.LePassGetExpiredIdCardUrl("5546616071");
            // string content = "MzdEcXp6ZkcvODlXL1NNWDhrRVAzemRTZC9zTityQlpXRHVxcGdLQlpRZz0=";
            // return PublicImportDataService.Instance.AesDecryptForIv(content);
        }


        public ActionResult LogSelect()
        {
            return View();
        }

        public async Task<string> LogSelectResult(string condi)
        {
            string result = "";
            string[] condiList = condi.Split('|');
            string logstore = "connect-log";
            string topic = condiList[0];
            string keyword = condiList[1];
            string month = condiList[2];
            if(topic.EndsWith("推送消息"))
            {
                logstore = "spserver";
            }
            IList<IDictionary<string, string>> logs = await SLS.GetLogs(logstore, topic, "* and content: " + keyword, DateTimeOffset.Now.AddMonths(-int.Parse(month)));
            foreach(IDictionary<string, string> log in logs)
            {
                result += log["__tag__:datetime"] + "\n";
                result += log["content"] + "\n";
                result += "\n--------------------------------------------------------------------------------------------------\n\n";
            }
            return result;
        }

        public ActionResult SourceDataToDb()
        {
            WebCMSEntities db = new WebCMSEntities();
            var list = db.KqProducts.Select(m => new { m.SpProductType, m.Name }).ToList();
            List<string> strlist = new List<string>();
            foreach(var sub in list)
            {
                strlist.Add(sub.SpProductType + "|" + sub.Name);
            }
            db.Dispose();
            ViewBag.dic = strlist;
            return View();
        }

        public string SourceDataToDbResult(string content)
        {
            RedisDbconn.Instance.AddList("DataToDbQueue", content);
            return "ok";
        }

        public string prize()
        {
            // List<string> list = new List<string>();
            // list.Add("LDN7HDQM024100912776|252167");
            // foreach(string sub in list)
            // {
            //     string[] data = sub.Split('|');
            //     function.GetWebRequest("http://logic-executor-api.kexiaoshuang.com/noauth/prize/pushbyone?n=QUEUE_KXS_HAODA_PRIZE_CONFIG_DIVISION&m={\"brand_id\":29,\"ext_field\":\"830_01\",\"pos_sn\":\"" + data[0] + "\",\"user_id\":" + data[1] + "}&ids=67");
            // }
            // list = new List<string>();
            // list.Add("LDN7HDQM024100912625|297660");
            // foreach(string sub in list)
            // {
            //     string[] data = sub.Split('|');
            //     function.GetWebRequest("http://logic-executor-api.kexiaoshuang.com/noauth/prize/pushbyone?n=QUEUE_KXS_HAODA_PRIZE_CONFIG_DIVISION&m={\"brand_id\":29,\"ext_field\":\"830_01\",\"pos_sn\":\"" + data[0] + "\",\"user_id\":" + data[1] + "}&ids=67");
            // }
            // string[] data = function.ReadInstance("1.txt").Split('\n');
            // foreach(string sub in data)
            // {
            //     function.GetWebRequest("http://logic-executor-api.kexiaoshuang.com/noauth/prize/pushbyone?n=QUEUE_KXS_LKB_PRO_PRIZE_CONFIG_DIVISION&m=" + sub + "&ids=69");
            // }
            return "ok";
        }
    }
}