using HtmlAgilityPack;
using QuestionSwapDoc.Help;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace QuestionSwapDoc.SwapWordModel
{
    /// <summary>
    /// 试题内容
    /// </summary>
    public class SwapQueContent
    {
        /// <summary>
        /// 是否为空的内容
        /// </summary>
        public bool IsNull { get => string.IsNullOrWhiteSpace(XmlFile) && string.IsNullOrWhiteSpace(HtmlText); }

        /// <summary>
        /// xml文件绝对路径（优先使用此路径）
        /// （注：如果‘XmlFile’和‘HtmlText’同时存在值将会优先使用‘XmlFile’放弃‘HtmlText’）
        /// </summary>
        public string XmlFile { get; set; }
        /// <summary>
        /// html文本（在网页端修改富文本后建议使用此参数）
        /// （单选题、多选题为逗号分隔字符串，如"A,B,C"）
        /// （判断题为bool值，如"True"）
        /// （注：如果‘XmlFile’和‘HtmlText’同时存在值将会优先使用‘XmlFile’放弃‘HtmlText’）
        /// </summary>
        public string HtmlText { get; set; }



        /// <summary>
        /// html文本转为本地的文件并改为绝对路径
        /// </summary>
        public void HtmlTextToFile(string imgLinkLeftPath)
        {
            if (string.IsNullOrWhiteSpace(XmlFile) && !string.IsNullOrWhiteSpace(HtmlText))
            {
                string fileName = Path.GetRandomFileName().Replace(".", "") + ".html";
                fileName = Path.GetFullPath(fileName);
                File.WriteAllText(fileName, HttpHelp.AddLeftLinkPath(HtmlText, imgLinkLeftPath), Encoding.UTF8);
                HtmlText = fileName;
            }
            else
            {
                HtmlText = string.Empty;
            }
        }
        /// <summary>
        /// html文件转为html文本内容
        /// </summary>
        public void HtmlFileToText()
        {
            if (string.IsNullOrWhiteSpace(XmlFile) && !string.IsNullOrWhiteSpace(HtmlText))
            {
                if (File.Exists(HtmlText))
                {
                    var hpath = HtmlText;
                    HtmlText = File.ReadAllText(HtmlText);
                    try
                    {
                        File.Delete(hpath);
                    }
                    catch { }
                }
            }
            else
            {
                HtmlText = string.Empty;
            }
        }
        /// <summary>
        /// 得到使用的路径
        /// </summary>
        /// <param name="IsXuanZhe"></param>
        /// <param name="IsPanDuan"></param>
        /// <returns></returns>
        public string GetUseFile()
        {
            if (!string.IsNullOrWhiteSpace(XmlFile))
                return XmlFile;
            else if (!string.IsNullOrWhiteSpace(HtmlText))
                return HtmlText;
            else
                return string.Empty;
        }
    }
}
