using System.Collections.Generic;
using System.Linq;
namespace BLL
{
    public static class AccidentAnalysisItemService
    {
        /// 
        /// 事故统计明细表
        /// 
        /// 事故统计明细表Id
        /// 事故统计明细表
        public static Model.ProjectAccident_AccidentAnalysisItem GetAccidentAnalysisItemByAccidentAnalysisItemId(string AccidentAnalysisItemId)
        {
            return Funs.DB.ProjectAccident_AccidentAnalysisItem.FirstOrDefault(e => e.AccidentAnalysisItemId == AccidentAnalysisItemId);
        }
        /// 
        /// 事故统计明细表
        /// 
        /// 事故统计明细表Id
        /// 事故统计明细表
        public static Model.ProjectAccident_AccidentAnalysisItem GetAccidentAnalysisItemByAccidentAnalysisIdAndTypeId(string AccidentAnalysisId, string AccidentType)
        {
            return Funs.DB.ProjectAccident_AccidentAnalysisItem.FirstOrDefault(e => e.AccidentAnalysisId == AccidentAnalysisId && e.AccidentType == AccidentType);
        }
        /// 
        /// 根据主表Id判断是否存在明细记录
        /// 
        /// 事故统计表Id
        /// 是否存在明细记录
        public static bool IsExitItems(string AccidentAnalysisId)
        {
            return (from x in Funs.DB.ProjectAccident_AccidentAnalysisItem where x.AccidentAnalysisId == AccidentAnalysisId select x).Count() > 0;
        }
        /// 
        /// 根据主表Id获取明细记录集合
        /// 
        /// 事故统计明细表Id
        /// 明细记录集合
        public static List GetItems(string AccidentAnalysisId)
        {
            return (from x in Funs.DB.ProjectAccident_AccidentAnalysisItem
                    join y in Funs.DB.Sys_Const on x.AccidentType equals y.ConstText
                    where x.AccidentAnalysisId == AccidentAnalysisId && y.GroupId == ConstValue.Group_0012
                    orderby y.SortIndex
                    select x).ToList();
        }
        /// 
        /// 根据主表Id获取明细记录集合(不包含总计行)
        /// 
        /// 事故统计明细表Id
        /// 明细记录集合
        public static List GetItemsNoSum(string AccidentAnalysisId)
        {
            return (from x in Funs.DB.ProjectAccident_AccidentAnalysisItem
                    join y in Funs.DB.Sys_Const on x.AccidentType equals y.ConstText
                    where x.AccidentAnalysisId == AccidentAnalysisId && y.GroupId == ConstValue.Group_0012
                    orderby y.SortIndex
                    select x).ToList();
        }
        /// 
        /// 增加事故统计明细表
        /// 
        /// 事故统计明细表实体
        public static void AddAccidentAnalysisItem(Model.ProjectAccident_AccidentAnalysisItem AccidentAnalysisItem)
        {
            Model.ProjectAccident_AccidentAnalysisItem newAccidentAnalysisItem = new Model.ProjectAccident_AccidentAnalysisItem
            {
                AccidentAnalysisItemId = AccidentAnalysisItem.AccidentAnalysisItemId,
                AccidentAnalysisId = AccidentAnalysisItem.AccidentAnalysisId,
                AccidentType = AccidentAnalysisItem.AccidentType,
                Death = AccidentAnalysisItem.Death,
                Injuries = AccidentAnalysisItem.Injuries,
                MinorInjuries = AccidentAnalysisItem.MinorInjuries
            };
            Funs.DB.ProjectAccident_AccidentAnalysisItem.InsertOnSubmit(newAccidentAnalysisItem);
            Funs.DB.SubmitChanges();
        }
        /// 
        /// 修改事故统计明细表
        /// 
        /// 事故统计明细表实体
        public static void UpdateAccidentAnalysisItem(Model.ProjectAccident_AccidentAnalysisItem AccidentAnalysisItem)
        {
            Model.ProjectAccident_AccidentAnalysisItem newAccidentAnalysisItem = Funs.DB.ProjectAccident_AccidentAnalysisItem.FirstOrDefault(e => e.AccidentAnalysisItemId == AccidentAnalysisItem.AccidentAnalysisItemId);
            newAccidentAnalysisItem.AccidentAnalysisId = AccidentAnalysisItem.AccidentAnalysisId;
            newAccidentAnalysisItem.AccidentType = AccidentAnalysisItem.AccidentType;
            newAccidentAnalysisItem.Death = AccidentAnalysisItem.Death;
            newAccidentAnalysisItem.Injuries = AccidentAnalysisItem.Injuries;
            newAccidentAnalysisItem.MinorInjuries = AccidentAnalysisItem.MinorInjuries;
            Funs.DB.SubmitChanges();
        }
        /// 
        /// 根据Id删除所有数据
        /// 
        /// 
        public static void DeleteAccidentAnalysisItemByAccidentAnalysisId(string AccidentAnalysisId)
        {
            var q = from x in Funs.DB.ProjectAccident_AccidentAnalysisItem where x.AccidentAnalysisId == AccidentAnalysisId select x;
            if (q != null)
            {
                Funs.DB.ProjectAccident_AccidentAnalysisItem.DeleteAllOnSubmit(q);
                Funs.DB.SubmitChanges();
            }
        }
    }
}