using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
    /// 
    /// 培训任务
    /// 
    public static class TrainingTaskService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 根据主键获取培训任务
        /// 
        /// 
        /// 
        public static Model.Training_Task GetTaskById(string taskId)
        {
            return db.Training_Task.FirstOrDefault(e => e.TaskId == taskId);
        }
        /// 
        /// 根据培训计划主键获取培训任务
        /// 
        /// 
        /// 
        public static List GetTaskListByPlanId(string planId)
        {
            return (from x in Funs.DB.Training_Task where x.PlanId == planId select x).ToList();
        }
        /// 
        /// 添加培训任务
        /// 
        /// 
        public static void AddTask(Model.Training_Task task)
        {
            Model.Training_Task newTask = new Model.Training_Task
            {
                TaskId = task.TaskId,
                PlanId = task.PlanId,
                UserId = task.UserId,
                TaskDate = task.TaskDate,
                States = task.States
            };
            db.Training_Task.InsertOnSubmit(newTask);
            db.SubmitChanges();
        }
        /// 
        /// 修改培训任务
        /// 
        /// 
        public static void UpdateTask(Model.Training_Task task)
        {
            Model.Training_Task newTask = Funs.DB.Training_Task.FirstOrDefault(e => e.TaskId == task.TaskId);
            if (newTask != null  && !string.IsNullOrEmpty(task.UserId))
            {
                newTask.PlanId = task.PlanId;
                newTask.UserId = task.UserId;
                newTask.TaskDate = task.TaskDate;
                //newTask.States = task.States;
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除培训任务
        /// 
        /// 
        public static void DeleteTaskById(string taskId)
        {
            Model.Training_Task task = Funs.DB.Training_Task.FirstOrDefault(e => e.TaskId == taskId);
            if (task != null)
            {
                Funs.DB.Training_Task.DeleteOnSubmit(task);
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据培训计划主键删除培训任务
        /// 
        /// 
        public static void DeleteTaskByPlanId(string planId)
       {
            var tasks = from x in Funs.DB.Training_Task where x.PlanId == planId select x;
            if (tasks.Count() > 0)
            {
                var taskItems = from x in Funs.DB.Training_TaskItem where x.PlanId == planId select x;
                if (tasks.Count() > 0)
                {
                    Funs.DB.Training_TaskItem.DeleteAllOnSubmit(taskItems);
                }
                Funs.DB.Training_Task.DeleteAllOnSubmit(tasks);
            }
        }
    }
}