
using CallCenter.Utility;
using CallCenterApi.Interface.Controllers.Base;
using CallCenterAPI.WechatSDK;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlTypes;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace CallCenterApi.Interface.Controllers
{
    [AllowAnonymous]
    public class HomeController : BaseController
    {
        // GET: Home
        public ActionResult Index()
        {
            return Success("成功");
        }

        public JsonResult json1()
        {
            var person = new
            {
                Name = "张三",
                Age = 22,
                Sex = "男"
            };
            return Json(person, JsonRequestBehavior.AllowGet);
        }

        public string json2()
        {
            var person = new
            {
                Name = "张三",
                Age = 22,
                Sex = "男",
                Date = DateTime.Now
            };
            return person.ToJson();
        }



        public string json2_()
        {
            var tt = new
            {
                exp = 20,
                money = 12
            };
            var person = new
            {
                Name = "张三",
                Age = 22,
                Sex = "男",
                other = tt,
                Date = DateTime.Now
            };
            return person.ToJson();
        }

        /// <summary>
        /// 演示 查询出来datatable的数据进行展示
        /// </summary>
        /// <returns></returns>
        public string json3()
        {
            DataTable tblDatas = new DataTable("Datas");
            DataColumn dc = null;


            dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Description", Type.GetType("System.String"));

            DataRow newRow;
            newRow = tblDatas.NewRow();
            newRow["Product"] = "大话西游";
            newRow["Version"] = "2.0";
            newRow["Description"] = "我很喜欢";
            tblDatas.Rows.Add(newRow);

            newRow = tblDatas.NewRow();
            newRow["Product"] = "梦幻西游";
            newRow["Version"] = "3.0";
            newRow["Description"] = "比大话更幼稚";
            tblDatas.Rows.Add(newRow);

            return tblDatas.ToJson();
        }

        public ActionResult json3_()
        {
            DataTable tblDatas = new DataTable("Datas");
            DataColumn dc = null;


            dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Description", Type.GetType("System.String"));

            DataRow newRow;
            newRow = tblDatas.NewRow();
            newRow["Product"] = "大话西游";
            newRow["Version"] = "2.0";
            newRow["Description"] = "我很喜欢";
            tblDatas.Rows.Add(newRow);

            newRow = tblDatas.NewRow();
            newRow["Product"] = "梦幻西游";
            newRow["Version"] = "3.0";
            newRow["Description"] = "比大话更幼稚";
            tblDatas.Rows.Add(newRow);

            return Success("成功", tblDatas);
        }

        public ActionResult excel()
        {
            DataTable tblDatas = new DataTable("Datas");
            DataColumn dc = null;


            dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Description", Type.GetType("System.String"));

            DataRow newRow;
            newRow = tblDatas.NewRow();
            newRow["Product"] = "大话西游";
            newRow["Version"] = "2.0";
            newRow["Description"] = "我很喜欢";
            tblDatas.Rows.Add(newRow);

            newRow = tblDatas.NewRow();
            newRow["Product"] = "梦幻西游";
            newRow["Version"] = "3.0";
            newRow["Description"] = "比大话更幼稚";
            tblDatas.Rows.Add(newRow);

            NPOIHelper npoi = new NPOIHelper();
            string[] s = { "列1", "列2", "列3" };
            if (npoi.ToExcel(tblDatas, "test", null, "D:/2.xlsx", s))
            {
                return Success("成功", tblDatas);
            }
            else
            {
                return Error("导出失败");
            }

        }
        public ActionResult excel1()
        {
            DataTable tblDatas = new DataTable("Datas");
            DataColumn dc = null;


            dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Description", Type.GetType("System.String"));

            DataRow newRow;
            newRow = tblDatas.NewRow();
            newRow["Product"] = "大话西游";
            newRow["Version"] = "2.0";
            newRow["Description"] = "我很喜欢";
            tblDatas.Rows.Add(newRow);

            newRow = tblDatas.NewRow();
            newRow["Product"] = "梦幻西游";
            newRow["Version"] = "3.0";
            newRow["Description"] = "比大话更幼稚";
            tblDatas.Rows.Add(newRow);

            NPOIHelper npoi = new NPOIHelper();

            if (npoi.ExportToExcel("test", tblDatas) == "")
            {
                return Success("成功", tblDatas);
            }
            else
            {
                return Error("导出失败");
            }

        }

        public ActionResult error()
        {
            return Error("不具备权限");
        }

        public string ss()
        {
            int ss = 22;
            int z = 0;

            return (ss/z).ToString();
        }

        public string tt(string name, string pass)
        {
            return "sss  " + name + pass;
        }

        /// <summary>
        /// 抛出HTTP 500
        /// </summary>
        /// <returns></returns>        
        public ActionResult ThrowHttp500()
        {
            throw new HttpException(500, "服务器错误");
        }
        /// <summary>
        /// 抛出HTTP 404
        /// </summary>
        /// <returns></returns>
        public ActionResult ThrowHttp404()
        {
            throw new HttpException(404, "页面未找到");
        }

        /// <summary>
        /// 抛出未引用对象异常
        /// ，此处单独使用HandleError特性
        /// ，并指定异常类型及响应视图
        /// </summary>
        /// <returns></returns>
        [HandleError(ExceptionType = typeof(NullReferenceException), View = "CustomError")]
        public ActionResult ThrowNullReferenceException()
        {
            throw new NullReferenceException();
        }
        /// <summary>
        /// 引发输入字符串的格式不正确异常
        /// ，此处指定了响应的错误页面
        /// ，由于是不同的控制器所以要完整的相对路径
        /// </summary>
        /// <returns></returns>
        [HandleError(View = "~/Views/Error/CustomHttpError.cshtml")]
        public ActionResult ThrowFormatException()
        {
            string str = "";
            int count = Convert.ToInt32(str);
            return View("Index");
        }

        public ActionResult TestTTS(string text)
        {
            string path = TtsHelper.GetAudioPath(text);
            return Success("成功", path);
        }

    }
}