using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
    public static class TestTrainingService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 根据主键获取信息
        /// 
        /// 
        /// 
        public static Model.Training_TestTraining GetTestTrainingById(string TrainingId)
        {
            return Funs.DB.Training_TestTraining.FirstOrDefault(e => e.TrainingId == TrainingId);
        }
        /// 
        /// 添加试题类型信息
        /// 
        /// 
        public static void AddTestTraining(Model.Training_TestTraining TestTraining)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Training_TestTraining newTestTraining = new Model.Training_TestTraining
            {
                TrainingId = TestTraining.TrainingId,
                TrainingCode = TestTraining.TrainingCode,
                TrainingName = TestTraining.TrainingName,
                SupTrainingId = TestTraining.SupTrainingId ?? "0",
                IsEndLever = TestTraining.IsEndLever
            };
            db.Training_TestTraining.InsertOnSubmit(newTestTraining);
            db.SubmitChanges();
        }
        /// 
        /// 修改试题类型信息
        /// 
        /// 
        public static void UpdateTestTraining(Model.Training_TestTraining TestTraining)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Training_TestTraining newTestTraining = db.Training_TestTraining.FirstOrDefault(e => e.TrainingId == TestTraining.TrainingId);
            if (newTestTraining != null)
            {
                newTestTraining.TrainingCode = TestTraining.TrainingCode;
                newTestTraining.TrainingName = TestTraining.TrainingName;
                newTestTraining.SupTrainingId = TestTraining.SupTrainingId;
                newTestTraining.IsEndLever = TestTraining.IsEndLever;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除信息
        /// 
        /// 
        public static void DeleteTestTrainingById(string TrainingId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                var TestTraining = db.Training_TestTraining.FirstOrDefault(e => e.TrainingId == TrainingId);
                if (TestTraining != null)
                {
                    var testPlanTraining = from x in db.Training_TestPlanTraining where x.TrainingId == TrainingId select x;
                    if (testPlanTraining.Count() > 0)
                    {
                        db.Training_TestPlanTraining.DeleteAllOnSubmit(testPlanTraining);
                    }
                    var TrainingItem = from x in db.Training_TestTrainingItem where x.TrainingId == TrainingId select x;
                    if (TrainingItem.Count() > 0)
                    {
                        db.Training_TestTrainingItem.DeleteAllOnSubmit(TrainingItem);
                    }
                    db.Training_TestTraining.DeleteOnSubmit(TestTraining);
                    db.SubmitChanges();
                }
            }
        }
        /// 
        /// 获取试题类型列表
        /// 
        /// 
        public static List GetTestTrainingList()
        {
            return (from x in db.Training_TestTraining orderby x.TrainingCode select x).ToList();
        }
        /// 
        /// 获取试题类型列表
        /// 
        /// 
        public static List GetEndTestTrainingList()
        {
            return (from x in db.Training_TestTraining
                    where x.IsEndLever == true
                    orderby x.TrainingCode
                    select x).ToList();
        }
        #region 获取末级题目下拉框
        /// 
        /// 用户下拉框
        /// 
        /// 下拉框名字
        /// 项目id
        /// 是否显示请选择
        public static void InitTestTrainingDropDownList(FineUIPro.DropDownList dropName,  bool isShowPlease)
        {
            dropName.DataValueField = "TrainingId";
            dropName.DataTextField = "TrainingName";
            dropName.DataSource = GetEndTestTrainingList();
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        #endregion
    }
}