using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
    /// 
    /// 检查项明细
    /// 
    public static class Technique_CheckItemDetailService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 根据主键获取检查项明细
        /// 
        /// 
        /// 
        public static Model.Technique_CheckItemDetail GetCheckItemDetailById(string checkItemDetailId)
        {
            return Funs.DB.Technique_CheckItemDetail.FirstOrDefault(e => e.CheckItemDetailId == checkItemDetailId);
        }
        /// 
        /// 添加检查项明细
        /// 
        /// 
        public static void AddCheckItemDetail(Model.Technique_CheckItemDetail checkItemDetail)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Technique_CheckItemDetail newCheckItemDetail = new Model.Technique_CheckItemDetail
            {
                CheckItemDetailId = checkItemDetail.CheckItemDetailId,
                CheckItemSetId = checkItemDetail.CheckItemSetId,
                CheckContent = checkItemDetail.CheckContent,
                SortIndex = checkItemDetail.SortIndex,
                IsBuiltIn = checkItemDetail.IsBuiltIn
            };
            db.Technique_CheckItemDetail.InsertOnSubmit(newCheckItemDetail);
            db.SubmitChanges();
        }
        /// 
        /// 修改检查项明细
        /// 
        /// 
        public static void UpdateCheckItemDetail(Model.Technique_CheckItemDetail checkItemDetail)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Technique_CheckItemDetail newCheckItemDetail = db.Technique_CheckItemDetail.FirstOrDefault(e => e.CheckItemDetailId == checkItemDetail.CheckItemDetailId);
            if (newCheckItemDetail != null)
            {
                newCheckItemDetail.CheckContent = checkItemDetail.CheckContent;
                newCheckItemDetail.SortIndex = checkItemDetail.SortIndex;
                newCheckItemDetail.IsBuiltIn = checkItemDetail.IsBuiltIn;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除检查项明细
        /// 
        /// 
        public static void DeleteCheckItemDetail(string checkItemDetailId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Technique_CheckItemDetail checkItemDetail = db.Technique_CheckItemDetail.FirstOrDefault(e => e.CheckItemDetailId == checkItemDetailId);
            if (checkItemDetail != null)
            {
                db.Technique_CheckItemDetail.DeleteOnSubmit(checkItemDetail);
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据检查项主键删除所有相关明细信息
        /// 
        /// 
        public static void DeleteCheckItemDetailByCheckItemSetId(string checkItemSetId)
        {
            Model.SGGLDB db = Funs.DB;
            var q = (from x in db.Technique_CheckItemDetail where x.CheckItemSetId == checkItemSetId select x).ToList();
            if (q.Count() > 0)
            {
                db.Technique_CheckItemDetail.DeleteAllOnSubmit(q);
                db.SubmitChanges();
            }
        }
        /// 
        /// 获取一级节点检查类型
        /// 
        /// 
        /// 
        public static string ConvertCheckItemType(object CheckItem)
        {
            string type = string.Empty;
            if (CheckItem != null)
            {
                var detail = Funs.DB.Technique_CheckItemDetail.FirstOrDefault(e => e.CheckItemDetailId == CheckItem.ToString());
                if (detail != null)
                {
                    var item = Funs.DB.Technique_CheckItemSet.FirstOrDefault (x=>x.CheckItemSetId == detail.CheckItemSetId);
                    if (item != null)
                    {
                        if (item.SupCheckItem == "0")
                        {
                            type = item.CheckItemName;
                        }
                        else
                        {
                            type = GetCheckItemNameBySupCheckItem(item.SupCheckItem);
                        }
                    }
                }
                else
                {
                    var  item = Funs.DB.Technique_CheckItemSet.FirstOrDefault(x => x.CheckItemSetId == CheckItem.ToString());
                    if (item != null)
                    {
                        if (item.SupCheckItem == "0")
                        {
                            type = item.CheckItemName;
                        }
                        else
                        {
                            type = GetCheckItemNameBySupCheckItem(item.SupCheckItem);
                        }
                    }
                }
            }
            return type;
        }
        /// 
        /// 根据主键获取顶级检查项名称
        /// 
        /// 
        /// 
        public static string GetCheckItemNameBySupCheckItem(string supCheckItem)
        {
            string name = string.Empty;
            var checkItemSet = Funs.DB.Technique_CheckItemSet.FirstOrDefault(e => e.CheckItemSetId == supCheckItem);
            if (checkItemSet != null)
            {
                if (checkItemSet.SupCheckItem == "0")
                {
                    name = checkItemSet.CheckItemName;
                }
                else
                {
                    name = GetCheckItemNameBySupCheckItem(checkItemSet.SupCheckItem);
                }
            }
            return name;
        }
        /// 
        ///  检查项明细下拉框
        /// 
        /// 下拉框名字
        /// 是否显示请选择
        public static void InitCheckItemDetailDropDownList(FineUIPro.DropDownList dropName, string checkItemSetId, bool isShowPlease)
        {
            dropName.DataValueField = "CheckContent";
            dropName.DataTextField = "CheckContent";
            dropName.DataSource = (from x in Funs.DB.Technique_CheckItemDetail
                                   where x.CheckItemSetId == checkItemSetId
                                   orderby x.SortIndex
                                   select x).ToList();
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
    }
}