using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Caching;
using System.Web.UI.WebControls;
namespace BLL
{
    public class CNProfessionalService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 获取实体集合
        /// 
        /// 
        public static List GetList()
        {
            var q = (from x in Funs.DB.Base_CNProfessional orderby x.SortIndex select x).ToList();
            return q;
        }
        /// 
        /// 添加
        /// 
        /// 
        public static void AddCNProfessional(Model.Base_CNProfessional cNProfessional)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Base_CNProfessional newCNProfessional = new Model.Base_CNProfessional
            {
                CNProfessionalId = cNProfessional.CNProfessionalId,
                CNProfessionalCode = cNProfessional.CNProfessionalCode,
                ProfessionalName = cNProfessional.ProfessionalName,
                SortIndex = cNProfessional.SortIndex
            };
            db.Base_CNProfessional.InsertOnSubmit(newCNProfessional);
            db.SubmitChanges();
        }
        /// 
        /// 修改
        /// 
        /// 
        public static void UpdateCNProfessional(Model.Base_CNProfessional cNProfessional)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Base_CNProfessional newCNProfessional = db.Base_CNProfessional.FirstOrDefault(e => e.CNProfessionalId == cNProfessional.CNProfessionalId);
            if (newCNProfessional != null)
            {
                newCNProfessional.CNProfessionalCode = cNProfessional.CNProfessionalCode;
                newCNProfessional.ProfessionalName = cNProfessional.ProfessionalName;
                newCNProfessional.SortIndex = cNProfessional.SortIndex;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除信息
        /// 
        /// 
        public static void DeleteCNProfessionalById(string cNProfessionalId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Base_CNProfessional cNProfessional = db.Base_CNProfessional.FirstOrDefault(e => e.CNProfessionalId == cNProfessionalId);
            {
                db.Base_CNProfessional.DeleteOnSubmit(cNProfessional);
                db.SubmitChanges();
            }
        }
        public static void InitCNProfessionalDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
        {
            dropName.DataValueField = "Value";
            dropName.DataTextField = "Text";
            dropName.DataSource = GetCNProfessionalItem();
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        /// 
        /// 专业下拉框
        /// 
        /// 
        /// 
        /// 
        public static void InitCNProfessional(FineUIPro.DropDownList dropName, bool isShowPlease)
        {
            dropName.DataValueField = "Text";
            dropName.DataTextField = "Text";
            dropName.DataSource = GetCNProfessionalItem();
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        /// 
        /// 获取专业集合
        /// 
        /// 
        public static ListItem[] GetCNProfessionalItem()
        {
            var q = (from x in Funs.DB.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId orderby x.SortIndex select x).ToList();
            ListItem[] list = new ListItem[q.Count()];
            for (int i = 0; i < q.Count(); i++)
            {
                list[i] = new ListItem(q[i].ProfessionalName ?? "", q[i].CNProfessionalId);
            }
            return list;
        }
        /// 
        /// 获取一个专业信息
        /// 
        /// 
        /// 
        public static Model.Base_CNProfessional GetCNProfessional(string CNProfessionalId)
        {
            return Funs.DB.Base_CNProfessional.FirstOrDefault(e => e.CNProfessionalId == CNProfessionalId);
        }
        public static string GetCNProfessionalNameByCode(string cnProfessionalCode)
        {
            string res = "";
            if (!string.IsNullOrEmpty(cnProfessionalCode))
            {
                string[] codes = cnProfessionalCode.Split(',');
                var list = Funs.DB.Base_CNProfessional.Where(x => codes.Contains(x.CNProfessionalId));
                foreach (var item in list)
                {
                    res += item.ProfessionalName + ",";
                }
                if (!String.IsNullOrEmpty(res))
                {
                    return res.Substring(0, res.Length - 1);
                }
            }
            return res;
        }
    }
}