using System.Linq;
namespace BLL
{
    /// 
    /// 安全监督检查整改
    /// 
    public static class SuperviseCheckRectifyService
    {
        /// 
        /// 根据主键获取安全监督检查整改
        /// 
        /// 
        /// 
        public static Model.Supervise_SuperviseCheckRectify GetSuperviseCheckRectifyById(string superviseCheckRectifyId)
        {
            return Funs.DB.Supervise_SuperviseCheckRectify.FirstOrDefault(e => e.SuperviseCheckRectifyId == superviseCheckRectifyId);
        }
        /// 
        /// 根据检查报告id获取整改
        /// 
        /// 
        /// 
        public static Model.Supervise_SuperviseCheckRectify GetSuperviseCheckRectifyBySuperviseCheckReportId(string superviseCheckReportId)
        {
            return Funs.DB.Supervise_SuperviseCheckRectify.FirstOrDefault(e => e.SuperviseCheckReportId == superviseCheckReportId);
        }
        /// 
        /// 添加安全监督检查整改
        /// 
        /// 
        public static void AddSuperviseCheckRectify(Model.Supervise_SuperviseCheckRectify superviseCheckRectify)
        {
            Model.Supervise_SuperviseCheckRectify newSuperviseCheckRectify = new Model.Supervise_SuperviseCheckRectify
            {
                SuperviseCheckRectifyId = superviseCheckRectify.SuperviseCheckRectifyId,
                SuperviseCheckRectifyCode = superviseCheckRectify.SuperviseCheckRectifyCode,
                ProjectId = superviseCheckRectify.ProjectId,
                UnitId = superviseCheckRectify.UnitId,
                CheckDate = superviseCheckRectify.CheckDate,
                IssueMan = superviseCheckRectify.IssueMan,
                IssueDate = superviseCheckRectify.IssueDate,
                SuperviseCheckReportId = superviseCheckRectify.SuperviseCheckReportId,
                HandleState = superviseCheckRectify.HandleState
            };
            Funs.DB.Supervise_SuperviseCheckRectify.InsertOnSubmit(newSuperviseCheckRectify);
            Funs.DB.SubmitChanges();
        }
        /// 
        /// 修改安全监督检查整改
        /// 
        /// 
        public static void UpdateSuperviseCheckRectify(Model.Supervise_SuperviseCheckRectify superviseCheckRectify)
        {
            Model.Supervise_SuperviseCheckRectify newSuperviseCheckRectify = Funs.DB.Supervise_SuperviseCheckRectify.FirstOrDefault(e => e.SuperviseCheckRectifyId == superviseCheckRectify.SuperviseCheckRectifyId);
            if (newSuperviseCheckRectify != null)
            {
                newSuperviseCheckRectify.SuperviseCheckRectifyCode = superviseCheckRectify.SuperviseCheckRectifyCode;
                newSuperviseCheckRectify.ProjectId = superviseCheckRectify.ProjectId;
                newSuperviseCheckRectify.UnitId = superviseCheckRectify.UnitId;
                newSuperviseCheckRectify.CheckDate = superviseCheckRectify.CheckDate;
                newSuperviseCheckRectify.IssueMan = superviseCheckRectify.IssueMan;
                newSuperviseCheckRectify.IssueDate = superviseCheckRectify.IssueDate;
                newSuperviseCheckRectify.SuperviseCheckReportId = superviseCheckRectify.SuperviseCheckReportId;
                newSuperviseCheckRectify.HandleState = superviseCheckRectify.HandleState;
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除安全监督检查整改
        /// 
        /// 
        public static void DeleteSuperviseCheckRectifyById(string superviseCheckRectifyId)
        {
            Model.Supervise_SuperviseCheckRectify superviseCheckRectify = Funs.DB.Supervise_SuperviseCheckRectify.FirstOrDefault(e => e.SuperviseCheckRectifyId == superviseCheckRectifyId);
            if (superviseCheckRectify != null)
            {
                var superviseCheckRectifys = from x in Funs.DB.Supervise_SuperviseCheckRectify where x.SuperviseCheckReportId == superviseCheckRectify.SuperviseCheckReportId select x;
                if (superviseCheckRectifys.Count() == 1)
                {
                    var report = BLL.SuperviseCheckReportService.GetSuperviseCheckReportById(superviseCheckRectify.SuperviseCheckReportId);
                    if (report != null)
                    {
                        report.IsIssued = null;  //已下发
                        BLL.SuperviseCheckReportService.UpdateSuperviseCheckReport(report);
                    }
                }
                Funs.DB.Supervise_SuperviseCheckRectify.DeleteOnSubmit(superviseCheckRectify);
                Funs.DB.SubmitChanges();
            }
        }
    }
}