using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
    /// 
    /// 巡检计划表
    /// 
    public static class Hazard_PatrolPlanService
    {
        /// 
        /// 根据巡检计划ID获取巡检计划信息
        /// 
        /// 
        /// 
        public static Model.Hazard_PatrolPlan GetPatrolPlanByPatrolPlanId(string PatrolPlanId)
        {
            return Funs.DB.Hazard_PatrolPlan.FirstOrDefault(e => e.PatrolPlanId == PatrolPlanId);
        }
        /// 
        /// 根据风险ID和巡检时限获取巡检计划信息
        /// 
        /// 
        /// 
        public static Model.Hazard_PatrolPlan GetPatrolPlanByHazardSelectedItemIdAndLimitCheckDate(string hazardSelectedItemId, DateTime? limitCheckDate)
        {
            return Funs.DB.Hazard_PatrolPlan.FirstOrDefault(e => e.HazardSelectedItemId == hazardSelectedItemId && e.LimitCheckDate == limitCheckDate);
        }
        /// 
        /// 根据巡检日期获取之前未巡检计划信息集合
        /// 
        /// 
        /// 
        public static List GetBeforePatrolPlansByCheckDate(string hazardSelectedItemId, DateTime checkDate)
        {
            return (from x in Funs.DB.Hazard_PatrolPlan where x.HazardSelectedItemId == hazardSelectedItemId && x.LimitCheckDate < checkDate select x).ToList();
        }
        /// 
        /// 添加安全巡检计划
        /// 
        /// 
        public static void AddPatrolPlan(Model.Hazard_PatrolPlan patrolPlan)
        {
            Model.Hazard_PatrolPlan newPatrolPlan = new Model.Hazard_PatrolPlan
            {
                PatrolPlanId = patrolPlan.PatrolPlanId,
                HazardSelectedItemId = patrolPlan.HazardSelectedItemId,
                HazardLevel = patrolPlan.HazardLevel,
                DutyPerson = patrolPlan.DutyPerson,
                Days = patrolPlan.Days,
                CheckStartDate = patrolPlan.CheckStartDate,
                LimitCheckDate = patrolPlan.LimitCheckDate,
                CheckDate = patrolPlan.CheckDate,
                State = patrolPlan.State
            };
            Funs.DB.Hazard_PatrolPlan.InsertOnSubmit(newPatrolPlan);
            Funs.DB.SubmitChanges();
        }
        /// 
        /// 修改安全巡检计划
        /// 
        /// 
        public static void UpdatePatrolPlan(Model.Hazard_PatrolPlan patrolPlan)
        {
            Model.Hazard_PatrolPlan newPatrolPlan = Funs.DB.Hazard_PatrolPlan.FirstOrDefault(e => e.PatrolPlanId == patrolPlan.PatrolPlanId);
            if (newPatrolPlan != null)
            {
                newPatrolPlan.CheckDate = patrolPlan.CheckDate;
                newPatrolPlan.State = patrolPlan.State;
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据巡检计划ID删除对应巡检计划记录信息
        /// 
        /// 
        public static void DeletePatrolPlan(string PatrolPlanId)
        {
            var q = (from x in Funs.DB.Hazard_PatrolPlan where x.PatrolPlanId == PatrolPlanId select x).FirstOrDefault();
            if (q != null)
            {
                Funs.DB.Hazard_PatrolPlan.DeleteOnSubmit(q);
                Funs.DB.SubmitChanges();
            }
        }
    }
}