using System.Collections.Generic;
using System.Linq;
using System.Web.UI.WebControls;
namespace BLL
{
    /// 
    /// 开车绩效计算标准
    /// 
    public class TestRunPerformanceStandardService
    {
        /// 
        /// 根据主键获取开车绩效计算标准
        /// 
        /// 
        /// 
        public static Model.Base_TestRunPerformanceStandard GetPerformanceStandardById(string TestRunPerformanceStandardId)
        {
            return Funs.DB.Base_TestRunPerformanceStandard.FirstOrDefault(e => e.TestRunPerformanceStandardId == TestRunPerformanceStandardId);
        }
        /// 
        /// 添加开车绩效计算标准
        /// 
        /// 
        public static void AddTestRunPerformanceStandard(Model.Base_TestRunPerformanceStandard testRunPerformanceStandard)
        {
            Model.Base_TestRunPerformanceStandard newTestRunPerformanceStandard = new Model.Base_TestRunPerformanceStandard
            {
                TestRunPerformanceStandardId = testRunPerformanceStandard.TestRunPerformanceStandardId,
                Code = testRunPerformanceStandard.Code,
                Code1 = testRunPerformanceStandard.Code1,
                Code2 = testRunPerformanceStandard.Code2,
                Code3 = testRunPerformanceStandard.Code3,
                Type = testRunPerformanceStandard.Type,
                Item = testRunPerformanceStandard.Item,
                Unit = testRunPerformanceStandard.Unit,
                Days = testRunPerformanceStandard.Days
            };
            Funs.DB.Base_TestRunPerformanceStandard.InsertOnSubmit(newTestRunPerformanceStandard);
            Funs.DB.SubmitChanges();
        }
        /// 
        /// 修改开车绩效计算标准
        /// 
        /// 
        public static void UpdateTestRunPerformanceStandard(Model.Base_TestRunPerformanceStandard testRunPerformanceStandard)
        {
            Model.Base_TestRunPerformanceStandard newTestRunPerformanceStandard = Funs.DB.Base_TestRunPerformanceStandard.FirstOrDefault(e => e.TestRunPerformanceStandardId == testRunPerformanceStandard.TestRunPerformanceStandardId);
            if (newTestRunPerformanceStandard != null)
            {
                newTestRunPerformanceStandard.Code = testRunPerformanceStandard.Code;
                newTestRunPerformanceStandard.Code1 = testRunPerformanceStandard.Code1;
                newTestRunPerformanceStandard.Code2 = testRunPerformanceStandard.Code2;
                newTestRunPerformanceStandard.Code3 = testRunPerformanceStandard.Code3;
                newTestRunPerformanceStandard.Type = testRunPerformanceStandard.Type;
                newTestRunPerformanceStandard.Item = testRunPerformanceStandard.Item;
                newTestRunPerformanceStandard.Unit = testRunPerformanceStandard.Unit;
                newTestRunPerformanceStandard.Days = testRunPerformanceStandard.Days;
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除开车绩效计算标准
        /// 
        /// 
        public static void DeleteTestRunPerformanceStandardById(string TestRunPerformanceStandardId)
        {
            Model.Base_TestRunPerformanceStandard newTestRunPerformanceStandard = Funs.DB.Base_TestRunPerformanceStandard.FirstOrDefault(e => e.TestRunPerformanceStandardId == TestRunPerformanceStandardId);
            if (newTestRunPerformanceStandard != null)
            {
                CommonService.DeleteAttachFileById(TestRunPerformanceStandardId);//删除附件
                Funs.DB.Base_TestRunPerformanceStandard.DeleteOnSubmit(newTestRunPerformanceStandard);
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 获取开车绩效计算标准下拉列表项
        /// 
        /// 
        public static List GetTestRunPerformanceStandardList()
        {
            return (from x in Funs.DB.Base_TestRunPerformanceStandard orderby x.Code1, x.Code2 select x).ToList();
        }
        /// 
        /// 开车绩效计算标准下拉框
        /// 
        /// 下拉框名字
        /// 项目id
        /// 是否显示请选择
        public static void InitPerformanceStandardDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
        {
            dropName.DataValueField = "TestRunPerformanceStandardId";
            dropName.DataTextField = "PerformanceStandardName";
            dropName.DataSource = GetTestRunPerformanceStandardList();
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        /// 
        /// 
        /// 
        /// 
        public static ListItem[] GetTypes()
        {
            var q = (from x in Funs.DB.Base_TestRunPerformanceStandard orderby x.Code select new { Value = x.Type, Code1 = x.Code1 }).Distinct().ToList();
            q = q.OrderBy(x => x.Code1).ToList();
            ListItem[] list = new ListItem[q.Count()];
            for (int i = 0; i < q.Count(); i++)
            {
                list[i] = new ListItem(q[i].Value ?? "", q[i].Value);
            }
            return list;
        }
        /// 
        ///  项目表下拉框
        /// 
        /// 下拉框名字
        /// 是否显示请选择
        public static void InitTypeDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
        {
            dropName.DataValueField = "Text";
            dropName.DataTextField = "Text";
            dropName.DataSource = GetTypes();
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        /// 
        /// 
        /// 
        /// 
        public static ListItem[] GetItems(string type)
        {
            var q = (from x in Funs.DB.Base_TestRunPerformanceStandard where x.Type == type orderby x.Code select new { Value = x.Item, Code1 = x.Code2 }).Distinct().ToList();
            q = q.OrderBy(x => x.Code1).ToList();
            ListItem[] list = new ListItem[q.Count()];
            for (int i = 0; i < q.Count(); i++)
            {
                list[i] = new ListItem(q[i].Value ?? "", q[i].Value);
            }
            return list;
        }
        /// 
        ///  项目表下拉框
        /// 
        /// 下拉框名字
        /// 是否显示请选择
        public static void InitItemDropDownList(FineUIPro.DropDownList dropName, string type, bool isShowPlease)
        {
            dropName.DataValueField = "Text";
            dropName.DataTextField = "Text";
            dropName.DataSource = GetItems(type);
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        /// 
        /// 
        /// 
        /// 
        public static ListItem[] GetUnits(string type, string item)
        {
            var q = (from x in Funs.DB.Base_TestRunPerformanceStandard where x.Type == type && x.Item == item orderby x.Code select new { Value = x.Unit, Code1 = x.Code3, x.TestRunPerformanceStandardId }).ToList();
            q = q.OrderBy(x => x.Code1).ToList();
            ListItem[] list = new ListItem[q.Count()];
            for (int i = 0; i < q.Count(); i++)
            {
                list[i] = new ListItem(q[i].Value ?? "", q[i].TestRunPerformanceStandardId);
            }
            return list;
        }
        /// 
        ///  项目表下拉框
        /// 
        /// 下拉框名字
        /// 是否显示请选择
        public static void InitUnitDropDownList(FineUIPro.DropDownList dropName, string type, string item, bool isShowPlease)
        {
            dropName.DataValueField = "Value";
            dropName.DataTextField = "Text";
            dropName.DataSource = GetUnits(type, item);
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
    }
}