using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Web.UI.WebControls;
namespace BLL
{
    /// 
    /// 人员报验
    /// 
    public static class InspectionPersonService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        private static int count
        {
            get;
            set;
        }
        
        /// 
        /// 根据主键获取人员报验信息
        /// 
        /// 
        /// 
        public static Model.Comprehensive_InspectionPerson GetInspectionPersonById(string inspectionPersonId)
        {
            return Funs.DB.Comprehensive_InspectionPerson.FirstOrDefault(e => e.InspectionPersonId == inspectionPersonId);
        }
        /// 
        /// 添加人员报验信息
        /// 
        /// 
        public static void AddInspectionPerson(Model.Comprehensive_InspectionPerson inspectionPerson)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_InspectionPerson newInspectionPerson = new Model.Comprehensive_InspectionPerson();
            newInspectionPerson.InspectionPersonId = inspectionPerson.InspectionPersonId;
            newInspectionPerson.ProjectId = inspectionPerson.ProjectId;
            newInspectionPerson.UnitId = inspectionPerson.UnitId;
            newInspectionPerson.InspectionPersonCode = inspectionPerson.InspectionPersonCode;
            newInspectionPerson.PostId = inspectionPerson.PostId;
            newInspectionPerson.PersonName = inspectionPerson.PersonName;
            newInspectionPerson.CertificateNumber = inspectionPerson.CertificateNumber;
            newInspectionPerson.QualifiedProjectCode = inspectionPerson.QualifiedProjectCode;
            newInspectionPerson.ValidityDate = inspectionPerson.ValidityDate;
            newInspectionPerson.ApprovalTime = inspectionPerson.ApprovalTime;
            newInspectionPerson.DepartureTime = inspectionPerson.DepartureTime;
            newInspectionPerson.Remark = inspectionPerson.Remark;
            newInspectionPerson.AttachUrl = inspectionPerson.AttachUrl;
            newInspectionPerson.CNProfessionalId = inspectionPerson.CNProfessionalId;
            newInspectionPerson.CompileMan = inspectionPerson.CompileMan;
            newInspectionPerson.CompileDate = inspectionPerson.CompileDate;
            newInspectionPerson.IsOnSite = inspectionPerson.IsOnSite;
            newInspectionPerson.UnitWorkId = inspectionPerson.UnitWorkId;
            newInspectionPerson.Status = inspectionPerson.Status;
            newInspectionPerson.IsTrain = inspectionPerson.IsTrain;
            newInspectionPerson.RemarkCode = inspectionPerson.RemarkCode;
            db.Comprehensive_InspectionPerson.InsertOnSubmit(newInspectionPerson);
            db.SubmitChanges();
        }
        /// 
        /// 修改人员报验
        /// 
        /// 
        public static void UpdateInspectionPerson(Model.Comprehensive_InspectionPerson inspectionPerson)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_InspectionPerson newInspectionPerson = db.Comprehensive_InspectionPerson.FirstOrDefault(e => e.InspectionPersonId == inspectionPerson.InspectionPersonId);
            if (newInspectionPerson != null)
            {
                newInspectionPerson.ProjectId = inspectionPerson.ProjectId;
                newInspectionPerson.UnitId = inspectionPerson.UnitId;
                newInspectionPerson.InspectionPersonCode = inspectionPerson.InspectionPersonCode;
                newInspectionPerson.PostId = inspectionPerson.PostId;
                newInspectionPerson.PersonName = inspectionPerson.PersonName;
                newInspectionPerson.CertificateNumber = inspectionPerson.CertificateNumber;
                newInspectionPerson.QualifiedProjectCode = inspectionPerson.QualifiedProjectCode;
                newInspectionPerson.ValidityDate = inspectionPerson.ValidityDate;
                newInspectionPerson.ApprovalTime = inspectionPerson.ApprovalTime;
                newInspectionPerson.DepartureTime = inspectionPerson.DepartureTime;
                newInspectionPerson.Remark = inspectionPerson.Remark;
                newInspectionPerson.AttachUrl = inspectionPerson.AttachUrl;
                newInspectionPerson.CNProfessionalId = inspectionPerson.CNProfessionalId;
                newInspectionPerson.IsOnSite = inspectionPerson.IsOnSite;
                newInspectionPerson.UnitWorkId = inspectionPerson.UnitWorkId;
                newInspectionPerson.Status = inspectionPerson.Status;
                newInspectionPerson.IsTrain = inspectionPerson.IsTrain;
                newInspectionPerson.RemarkCode = inspectionPerson.RemarkCode;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除人员报验
        /// 
        /// 
        public static void DeleteInspectionPerson(string inspectionPersonId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_InspectionPerson inspectionPerson = db.Comprehensive_InspectionPerson.FirstOrDefault(e => e.InspectionPersonId == inspectionPersonId);
            if (inspectionPerson != null)
            {
                if (!string.IsNullOrEmpty(inspectionPerson.AttachUrl))
                {
                    BLL.UploadAttachmentService.DeleteFile(Funs.RootPath, inspectionPerson.AttachUrl);//删除附件
                }
                db.Comprehensive_InspectionPerson.DeleteOnSubmit(inspectionPerson);
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据单位id获取人员报验信息
        /// 
        /// 
        /// 
        public static Model.Comprehensive_InspectionPerson GetInspectionPersonByUnitId(string unitId)
        {
            return Funs.DB.Comprehensive_InspectionPerson.FirstOrDefault(e => e.UnitId == unitId);
        }
        /// 
        /// 根据工种id获取人员报验
        /// 
        /// 
        /// 
        public static Model.Comprehensive_InspectionPerson GetInspectionPersonByPostId(string postId)
        {
            return Funs.DB.Comprehensive_InspectionPerson.FirstOrDefault(e => e.PostId == postId);
        }
        /// 
        /// 获取人员
        /// 
        /// 
        public static ListItem[] GetInspectionPersonListByUnit(string projectId, string unitId)
        {
            var q = (from x in Funs.DB.Comprehensive_InspectionPerson where x.ProjectId == projectId && x.UnitId == unitId && x.IsOnSite == true orderby x.InspectionPersonCode select x).ToList();
            ListItem[] list = new ListItem[q.Count()];
            for (int i = 0; i < q.Count(); i++)
            {
                list[i] = new ListItem(q[i].PersonName ?? "", q[i].InspectionPersonId.ToString());
            }
            return list;
        }
        /// 
        /// 下拉框
        /// 
        /// 
        /// 
        /// 
        public static void InitInspectionPerson(FineUIPro.DropDownList dropName, string projectId, string unitId, bool isShowPlease)
        {
            dropName.DataValueField = "Value";
            dropName.DataTextField = "Text";
            dropName.DataSource = GetInspectionPersonListByUnit(projectId, unitId);
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
    }
}