using System;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
    /// 
    /// HSE宣传活动
    /// 
    public static class PromotionalActivitiesService
    {
        /// 
        /// 根据主键获取HSSE宣传活动
        /// 
        /// 
        /// 
        public static Model.InformationProject_PromotionalActivities GetPromotionalActivitiesById(string promotionalActivitiesId)
        {
            return Funs.DB.InformationProject_PromotionalActivities.FirstOrDefault(e => e.PromotionalActivitiesId == promotionalActivitiesId);
        }
        /// 
        /// 根据时间段获取HSE宣传活动
        /// 
        /// 开始时间
        /// 结束时间
        /// 项目Id
        /// 时间段内的HSE宣传活动数量
        public static int GetCountByDate(DateTime startTime, DateTime endTime, string projectId)
        {
            return (from x in Funs.DB.InformationProject_PromotionalActivities where x.CompileDate >= startTime && x.CompileDate <= endTime && x.ProjectId == projectId select x).Count();
        }
        /// 
        /// 根据日期获取HSE宣传活动集合
        /// 
        /// 开始时间
        /// 结束时间
        /// 项目号
        /// HSE宣传活动集合
        public static List GetPromotionalActivitiesListsByDate(DateTime startTime, DateTime endTime, string projectId)
        {
            return (from x in Funs.DB.InformationProject_PromotionalActivities where x.CompileDate >= startTime && x.CompileDate <= endTime && x.ProjectId == projectId orderby x.CompileDate select x).ToList();
        }
        /// 
        /// 添加HSSE宣传活动
        /// 
        /// 
        public static void AddPromotionalActivities(Model.InformationProject_PromotionalActivities promotionalActivities)
        {
            Model.InformationProject_PromotionalActivities newPromotionalActivities = new Model.InformationProject_PromotionalActivities
            {
                PromotionalActivitiesId = promotionalActivities.PromotionalActivitiesId,
                ProjectId = promotionalActivities.ProjectId,
                Code = promotionalActivities.Code,
                Title = promotionalActivities.Title,
                ActivitiesDate = promotionalActivities.ActivitiesDate,
                UnitIds = promotionalActivities.UnitIds,
                UnitNames = promotionalActivities.UnitNames,
                UserIds = promotionalActivities.UserIds,
                UserNames = promotionalActivities.UserNames,
                MainContent = promotionalActivities.MainContent,
                AttachUrl = promotionalActivities.AttachUrl,
                CompileMan = promotionalActivities.CompileMan,
                CompileDate = System.DateTime.Now,
                States = promotionalActivities.States
            };
            Funs.DB.InformationProject_PromotionalActivities.InsertOnSubmit(newPromotionalActivities);
            Funs.DB.SubmitChanges();
            ////增加一条编码记录
            BLL.CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(BLL.Const.ProjectPromotionalActivitiesMenuId, promotionalActivities.ProjectId, null, promotionalActivities.PromotionalActivitiesId, promotionalActivities.ActivitiesDate);
        }
        /// 
        /// 修改HSSE宣传活动
        /// 
        /// 
        public static void UpdatePromotionalActivities(Model.InformationProject_PromotionalActivities promotionalActivities)
        {
            Model.InformationProject_PromotionalActivities newPromotionalActivities = Funs.DB.InformationProject_PromotionalActivities.FirstOrDefault(e => e.PromotionalActivitiesId == promotionalActivities.PromotionalActivitiesId);
            if (newPromotionalActivities != null)
            {
                newPromotionalActivities.Code = promotionalActivities.Code;
                newPromotionalActivities.Title = promotionalActivities.Title;
                newPromotionalActivities.ActivitiesDate = promotionalActivities.ActivitiesDate;
                newPromotionalActivities.UnitIds = promotionalActivities.UnitIds;
                newPromotionalActivities.UnitNames = promotionalActivities.UnitNames;
                newPromotionalActivities.UserIds = promotionalActivities.UserIds;
                newPromotionalActivities.UserNames = promotionalActivities.UserNames;
                newPromotionalActivities.MainContent = promotionalActivities.MainContent;
                newPromotionalActivities.AttachUrl = promotionalActivities.AttachUrl;
                newPromotionalActivities.CompileMan = promotionalActivities.CompileMan;
                newPromotionalActivities.CompileDate = promotionalActivities.CompileDate;
                newPromotionalActivities.States = promotionalActivities.States;
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除HSSE宣传活动
        /// 
        /// 
        public static void DeletePromotionalActivitiesById(string promotionalActivitiesId)
        {
            Model.InformationProject_PromotionalActivities promotionalActivities = Funs.DB.InformationProject_PromotionalActivities.FirstOrDefault(e => e.PromotionalActivitiesId == promotionalActivitiesId);
            if (promotionalActivities != null)
            {
                ///删除编码表记录
                BLL.CodeRecordsService.DeleteCodeRecordsByDataId(promotionalActivities.PromotionalActivitiesId);
                ////删除附件表
                BLL.CommonService.DeleteAttachFileById(promotionalActivities.PromotionalActivitiesId);
                ///删除工程师日志收集记录
                var flowOperate = from x in Funs.DB.Sys_FlowOperate where x.DataId == promotionalActivities.PromotionalActivitiesId select x;
                if (flowOperate.Count() > 0)
                {
                    foreach (var item in flowOperate)
                    {
                        BLL.HSSELogService.CollectHSSELog(promotionalActivities.ProjectId, item.OperaterId, item.OperaterTime, "29", promotionalActivities.Title, Const.BtnDelete, 1);
                    }
                    ////删除流程表
                    BLL.CommonService.DeleteFlowOperateByID(promotionalActivities.PromotionalActivitiesId);
                }
                Funs.DB.InformationProject_PromotionalActivities.DeleteOnSubmit(promotionalActivities);
                Funs.DB.SubmitChanges();
            }
        }
    }
}