using Model;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI.WebControls;
namespace BLL
{
    public static class Base_TestMediumService
    {
        /// 
        ///获取介质信息
        /// 
        /// 
        public static Model.Base_TestMedium GetTestMediumById(string mediumId)
        {
            return Funs.DB.Base_TestMedium.FirstOrDefault(e => e.TestMediumId == mediumId);
        }
        /// 
        /// 增加介质信息
        /// 
        /// 
        public static void AddTestMedium(Model.Base_TestMedium medium)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Base_TestMedium newMedium = new Base_TestMedium
            {
                TestMediumId = medium.TestMediumId,
                MediumCode = medium.MediumCode,
                MediumName = medium.MediumName,
                TestType=medium.TestType,
                Remark = medium.Remark,
            };
            db.Base_TestMedium.InsertOnSubmit(newMedium);
            db.SubmitChanges();
        }
        /// 
        /// 修改介质信息 
        /// 
        /// 
        public static void UpdateTestMedium(Model.Base_TestMedium medium)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Base_TestMedium newMedium = db.Base_TestMedium.FirstOrDefault(e => e.TestMediumId == medium.TestMediumId);
            if (newMedium != null)
            {
                newMedium.MediumCode = medium.MediumCode;
                newMedium.MediumName = medium.MediumName;
                newMedium.TestType = medium.TestType;
                newMedium.Remark = medium.Remark;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据介质Id删除一个安装组件信息
        /// 
        /// 
        public static void DeleteTestMediumByMediumId(string mediumId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Base_TestMedium delMedium = db.Base_TestMedium.FirstOrDefault(e => e.TestMediumId == mediumId);
            if (delMedium != null)
            {
                db.Base_TestMedium.DeleteOnSubmit(delMedium);
                db.SubmitChanges();
            }
        }
        /// 
        /// 按类型获取介质项
        /// 
        /// 1-试压介质,2-泄漏性试验介质,3-真空试验介质,4-吹扫介质,5-清洗介质
        /// 
        public static List GetTestMediumList(string testType)
        {
            List list = null;
            list = (from x in Funs.DB.Base_TestMedium
                    where x.TestType == testType
                    orderby x.MediumCode
                    select x).ToList();
            return list;
        }
        #region 介质下拉项
        /// 
        /// 介质下拉项
        /// 
        /// 
        /// 1-试压介质,2-泄漏性试验介质,3-真空试验介质,4-吹扫介质,5-清洗介质
        /// 
        public static void InitMediumDropDownList(FineUIPro.DropDownList dropName, string testType, bool isShowPlease)
        {
            dropName.DataValueField = "TestMediumId";
            dropName.DataTextField = "MediumName";
            dropName.DataSource = GetTestMediumList(testType);
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        #endregion
        public static ListItem[] GetTestMediumListItem(string testType)
        {
            List list = (from x in Funs.DB.Base_TestMedium where x.TestType == testType orderby x.MediumCode select x).ToList();
            ListItem[] item = new ListItem[list.Count()];
            for (int i = 0; i < list.Count(); i++)
            {
                item[i] = new ListItem(list[i].MediumName ?? "", list[i].TestMediumId);
            }
            return item;
        }
        
        /// 
        /// 介质下拉项 加载吹扫和清洗
        /// 
        /// 
        /// 
        public static void InitPCMediumDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
        {
            dropName.DataValueField = "TestMediumId";
            dropName.DataTextField = "MediumName";
            dropName.DataSource = GetPCTestMediumList();
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        public static List GetPCTestMediumList()
        {
            List list = null;
            list = (from x in Funs.DB.Base_TestMedium
                    where x.TestType == "4" || x.TestType == "5"
                    orderby x.MediumCode
                    select x).ToList();
            return list;
        }
    }
}