using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
    /// 
    /// 公司分支机构人员
    /// 
    public static class CompanyBranchPersonService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 根据主键获取公司分支机构人员
        /// 
        /// 
        /// 
        public static Model.Person_CompanyBranchPerson GetCompanyBranchPersonById(string CompanyBranchPersonId)
        {
            return Funs.DB.Person_CompanyBranchPerson.FirstOrDefault(e => e.CompanyBranchPersonId == CompanyBranchPersonId);
        }
        /// 
        /// 根据身份证号Id获取人员的数量
        /// 
        /// 身份证号
        /// 人员的数量
        public static Model.Person_CompanyBranchPerson GetPersonCountByIdentityCard(string identityCard)
        {
            var q = Funs.DB.Person_CompanyBranchPerson.FirstOrDefault(x => x.IdentityCard == identityCard);
            return q;
        }
        /// 
        /// 添加公司分支机构人员
        /// 
        /// 
        public static void AddCompanyBranchPerson(Model.Person_CompanyBranchPerson CompanyBranchPerson)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Person_CompanyBranchPerson newCompanyBranchPerson = new Model.Person_CompanyBranchPerson
            {
                CompanyBranchPersonId = CompanyBranchPerson.CompanyBranchPersonId,
                UnitId = CompanyBranchPerson.UnitId,
                PersonName = CompanyBranchPerson.PersonName,
                Sex = CompanyBranchPerson.Sex,
                IdentityCard = CompanyBranchPerson.IdentityCard,
                WorkPostId = CompanyBranchPerson.WorkPostId,
                Telephone = CompanyBranchPerson.Telephone,
                Address = CompanyBranchPerson.Address,
                IsOnJob = CompanyBranchPerson.IsOnJob,
                Remark = CompanyBranchPerson.Remark,
                SortIndex = CompanyBranchPerson.SortIndex,
            };
            db.Person_CompanyBranchPerson.InsertOnSubmit(newCompanyBranchPerson);
            db.SubmitChanges();
        }
        /// 
        /// 修改公司分支机构人员
        /// 
        /// 
        public static void UpdateCompanyBranchPerson(Model.Person_CompanyBranchPerson CompanyBranchPerson)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Person_CompanyBranchPerson newCompanyBranchPerson = db.Person_CompanyBranchPerson.FirstOrDefault(e => e.CompanyBranchPersonId == CompanyBranchPerson.CompanyBranchPersonId);
            if (newCompanyBranchPerson != null)
            {
                newCompanyBranchPerson.UnitId = CompanyBranchPerson.UnitId;
                newCompanyBranchPerson.PersonName = CompanyBranchPerson.PersonName;
                newCompanyBranchPerson.Sex = CompanyBranchPerson.Sex;
                newCompanyBranchPerson.IdentityCard = CompanyBranchPerson.IdentityCard;
                newCompanyBranchPerson.WorkPostId = CompanyBranchPerson.WorkPostId;
                newCompanyBranchPerson.Telephone = CompanyBranchPerson.Telephone;
                newCompanyBranchPerson.Address = CompanyBranchPerson.Address;
                newCompanyBranchPerson.IsOnJob = CompanyBranchPerson.IsOnJob;
                newCompanyBranchPerson.Remark = CompanyBranchPerson.Remark;
                newCompanyBranchPerson.SortIndex = CompanyBranchPerson.SortIndex;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除公司分支机构人员
        /// 
        /// 
        public static void DeleteCompanyBranchPersonById(string CompanyBranchPersonId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Person_CompanyBranchPerson CompanyBranchPerson = db.Person_CompanyBranchPerson.FirstOrDefault(e => e.CompanyBranchPersonId == CompanyBranchPersonId);
            if (CompanyBranchPerson != null)
            {
                BLL.CommonService.DeleteAttachFileById(CompanyBranchPersonId);
                db.Person_CompanyBranchPerson.DeleteOnSubmit(CompanyBranchPerson);
                db.SubmitChanges();
            }
        }
        /// 
        /// 获取公司分支机构人员是否存在
        /// 
        /// 用户id
        /// 身份证号码
        /// 是否存在
        public static bool IsExistPersonIdentityCard(string companyBranchPersonId, string identityCard)
        {
            bool isExist = false;
            var role = Funs.DB.Person_CompanyBranchPerson.FirstOrDefault(x => x.IdentityCard == identityCard && (x.CompanyBranchPersonId != companyBranchPersonId || (companyBranchPersonId == null && x.CompanyBranchPersonId != null)));
            if (role != null)
            {
                isExist = true;
            }
            return isExist;
        }
    }
}