using System;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
    /// 
    /// 企业安委会
    /// 
    public static class CompanySafetyMeetingService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 根据主键获取企业安委会
        /// 
        /// 
        /// 
        public static Model.Meeting_CompanySafetyMeeting GetCompanySafetyMeetingById(string CompanySafetyMeetingId)
        {
            return Funs.DB.Meeting_CompanySafetyMeeting.FirstOrDefault(e => e.CompanySafetyMeetingId == CompanySafetyMeetingId);
        }
        /// 
        /// 根据时间段获取月例会集合
        /// 
        /// 
        /// 
        /// 
        /// 
        public static int GetCountByTime(DateTime startTime, DateTime endTime)
        {
            return (from x in Funs.DB.Meeting_CompanySafetyMeeting where x.CompanySafetyMeetingDate >= startTime && x.CompanySafetyMeetingDate < endTime select x).Count();
        }
        /// 
        /// 根据时间段获取月例会参会人数
        /// 
        /// 
        /// 
        /// 
        /// 
        public static int? GetSumAttentPersonNumByMeetingDate(DateTime startTime, DateTime endTime)
        {
            int? sumAttentPersonNum = (from x in Funs.DB.Meeting_CompanySafetyMeeting where x.CompanySafetyMeetingDate >= startTime && x.CompanySafetyMeetingDate < endTime select x.AttentPersonNum).Sum();
            if (sumAttentPersonNum == null)
            {
                return 0;
            }
            return sumAttentPersonNum;
        }
        /// 
        /// 根据日期和类型获取会议记录集合
        /// 
        /// 开始时间
        /// 结束时间
        /// 项目号
        /// 会议记录集合
        public static List GetMeetingListsByDate(DateTime startTime, DateTime endTime)
        {
            return (from x in Funs.DB.Meeting_CompanySafetyMeeting where x.CompanySafetyMeetingDate >= startTime && x.CompanySafetyMeetingDate <= endTime orderby x.CompanySafetyMeetingDate select x).ToList();
        }
        /// 
        /// 添加企业安委会
        /// 
        /// 
        public static void AddCompanySafetyMeeting(Model.Meeting_CompanySafetyMeeting CompanySafetyMeeting)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Meeting_CompanySafetyMeeting newCompanySafetyMeeting = new Model.Meeting_CompanySafetyMeeting
            {
                CompanySafetyMeetingId = CompanySafetyMeeting.CompanySafetyMeetingId,
                CompanySafetyMeetingCode = CompanySafetyMeeting.CompanySafetyMeetingCode,
                CompanySafetyMeetingName = CompanySafetyMeeting.CompanySafetyMeetingName,
                CompanySafetyMeetingDate = CompanySafetyMeeting.CompanySafetyMeetingDate,
                CompileMan = CompanySafetyMeeting.CompileMan,
                CompanySafetyMeetingContents = CompanySafetyMeeting.CompanySafetyMeetingContents,
                CompileDate = CompanySafetyMeeting.CompileDate,
                AttentPersonNum = CompanySafetyMeeting.AttentPersonNum,
                MeetingHours = CompanySafetyMeeting.MeetingHours,
                MeetingHostMan = CompanySafetyMeeting.MeetingHostMan,
                AttentPerson = CompanySafetyMeeting.AttentPerson,
                MeetingPlace = CompanySafetyMeeting.MeetingPlace,
                MeetingHostManId = CompanySafetyMeeting.MeetingHostManId,
                AttentPersonIds = CompanySafetyMeeting.AttentPersonIds,
                MeetingHostManOther = CompanySafetyMeeting.MeetingHostManOther
            };
            db.Meeting_CompanySafetyMeeting.InsertOnSubmit(newCompanySafetyMeeting);
            db.SubmitChanges();
            ////增加一条编码记录
            BLL.CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(BLL.Const.CompanySafetyMeetingMenuId, null, null, CompanySafetyMeeting.CompanySafetyMeetingId, CompanySafetyMeeting.CompileDate);
        }
        /// 
        /// 修改企业安委会
        /// 
        /// 
        public static void UpdateCompanySafetyMeeting(Model.Meeting_CompanySafetyMeeting CompanySafetyMeeting)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Meeting_CompanySafetyMeeting newCompanySafetyMeeting = db.Meeting_CompanySafetyMeeting.FirstOrDefault(e => e.CompanySafetyMeetingId == CompanySafetyMeeting.CompanySafetyMeetingId);
            if (newCompanySafetyMeeting != null)
            {
                newCompanySafetyMeeting.CompanySafetyMeetingCode = CompanySafetyMeeting.CompanySafetyMeetingCode;
                newCompanySafetyMeeting.CompanySafetyMeetingName = CompanySafetyMeeting.CompanySafetyMeetingName;
                newCompanySafetyMeeting.CompanySafetyMeetingDate = CompanySafetyMeeting.CompanySafetyMeetingDate;
                newCompanySafetyMeeting.CompileMan = CompanySafetyMeeting.CompileMan;
                newCompanySafetyMeeting.CompanySafetyMeetingContents = CompanySafetyMeeting.CompanySafetyMeetingContents;
                newCompanySafetyMeeting.CompileDate = CompanySafetyMeeting.CompileDate;
                newCompanySafetyMeeting.AttentPersonNum = CompanySafetyMeeting.AttentPersonNum;
                newCompanySafetyMeeting.MeetingHours = CompanySafetyMeeting.MeetingHours;
                newCompanySafetyMeeting.MeetingHostMan = CompanySafetyMeeting.MeetingHostMan;
                newCompanySafetyMeeting.AttentPerson = CompanySafetyMeeting.AttentPerson;
                newCompanySafetyMeeting.MeetingPlace = CompanySafetyMeeting.MeetingPlace;
                newCompanySafetyMeeting.MeetingHostManId = CompanySafetyMeeting.MeetingHostManId;
                newCompanySafetyMeeting.AttentPersonIds = CompanySafetyMeeting.AttentPersonIds;
                newCompanySafetyMeeting.MeetingHostManOther = CompanySafetyMeeting.MeetingHostManOther;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除企业安委会
        /// 
        /// 
        public static void DeleteCompanySafetyMeetingById(string CompanySafetyMeetingId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Meeting_CompanySafetyMeeting CompanySafetyMeeting = db.Meeting_CompanySafetyMeeting.FirstOrDefault(e => e.CompanySafetyMeetingId == CompanySafetyMeetingId);
            if (CompanySafetyMeeting != null)
            {
                ///删除编码表记录
                BLL.CodeRecordsService.DeleteCodeRecordsByDataId(CompanySafetyMeetingId);
                BLL.CommonService.DeleteAttachFileById(CompanySafetyMeetingId);
                db.Meeting_CompanySafetyMeeting.DeleteOnSubmit(CompanySafetyMeeting);
                db.SubmitChanges();
            }
        }
    }
}