using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
    public static class ArchitectureReportService
    {
        /// 
        /// 建筑行业能源节约与生态环境保护汇总表
        /// 
        /// 建筑行业能源节约与生态环境保护汇总表Id
        /// 建筑行业能源节约与生态环境保护汇总表
        public static Model.Environmental_ArchitectureReport GetArchitectureReportByArchitectureReportId(string ArchitectureReportId)
        {
            return Funs.DB.Environmental_ArchitectureReport.FirstOrDefault(e => e.ArchitectureReportId == ArchitectureReportId);
        }
        /// 
        /// 建筑行业能源节约与生态环境保护汇总表
        /// 
        /// 单位Id
        ///  年度  param >
        /// 月份
        /// 建筑行业能源节约与生态环境保护汇总表
        public static Model.Environmental_ArchitectureReport GetArchitectureReportByUnitIdAndYearAndQuarters(string unitId, int year, int month)
        {
            return Funs.DB.Environmental_ArchitectureReport.FirstOrDefault(e => e.UnitId == unitId && e.Month == month && e.Year == year);
        }
        /// 
        /// 根据单位Id获取建筑行业能源节约与生态环境保护汇总表集合
        /// 
        /// 单位Id
        /// 建筑行业能源节约与生态环境保护汇总表集合
        public static List GetArchitectureReportsByUnitId(string UnitId)
        {
            return (from x in Funs.DB.View_Environmental_ArchitectureReport where x.UnitId == UnitId orderby x.FillingDate descending select x).ToList();
        }
        /// 
        /// 增加建筑行业能源节约与生态环境保护汇总表
        /// 
        /// 建筑行业能源节约与生态环境保护汇总表实体
        public static void AddArchitectureReport(Model.Environmental_ArchitectureReport ArchitectureReport)
        {
            Model.Environmental_ArchitectureReport newArchitectureReport = new Model.Environmental_ArchitectureReport
            {
                ArchitectureReportId = ArchitectureReport.ArchitectureReportId,
                Year = ArchitectureReport.Year,
                Month = ArchitectureReport.Month,
                UnitId = ArchitectureReport.UnitId,
                FillingDate = ArchitectureReport.FillingDate,
                DutyPerson = ArchitectureReport.DutyPerson,
                FillingMan = ArchitectureReport.FillingMan,
                UpState = ArchitectureReport.UpState,
            };
            Funs.DB.Environmental_ArchitectureReport.InsertOnSubmit(newArchitectureReport);
            Funs.DB.SubmitChanges();
        }
        /// 
        /// 修改建筑行业能源节约与生态环境保护汇总表
        /// 
        /// 建筑行业能源节约与生态环境保护汇总表实体
        public static void UpdateArchitectureReport(Model.Environmental_ArchitectureReport ArchitectureReport)
        {
            Model.Environmental_ArchitectureReport newArchitectureReport = Funs.DB.Environmental_ArchitectureReport.FirstOrDefault(e => e.ArchitectureReportId == ArchitectureReport.ArchitectureReportId);
            if (newArchitectureReport != null)
            {
                newArchitectureReport.Year = ArchitectureReport.Year;
                newArchitectureReport.Month = ArchitectureReport.Month;
                newArchitectureReport.UnitId = ArchitectureReport.UnitId;
                newArchitectureReport.FillingDate = ArchitectureReport.FillingDate;
                newArchitectureReport.DutyPerson = ArchitectureReport.DutyPerson;
                newArchitectureReport.UpState = ArchitectureReport.UpState;
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据Id删除数据
        /// 
        /// 
        public static void DeleteArchitectureReportByArchitectureReportId(string ArchitectureReportId)
        {
            Model.Environmental_ArchitectureReport newArchitectureReport = Funs.DB.Environmental_ArchitectureReport.FirstOrDefault(e => e.ArchitectureReportId == ArchitectureReportId);
            if (newArchitectureReport != null)
            {
                Funs.DB.Environmental_ArchitectureReport.DeleteOnSubmit(newArchitectureReport);
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据报表单位,报表时间判断是否存在
        /// 
        /// Id
        /// 
        public static Model.Environmental_ArchitectureReport GetArchitectureReportByUnitIdDate(string unitId, int year, int month)
        {
            return Funs.DB.Environmental_ArchitectureReport.FirstOrDefault(e => e.UnitId == unitId && e.Year == year && e.Month == month);
        }
        /// 
        /// 根据报表单位,报表年份获取对应集合
        /// 
        /// Id
        /// 
        public static List GetArchitectureReportByUnitIdYear(string unitId, int year)
        {
            return (from x in Funs.DB.Environmental_ArchitectureReport where x.UnitId == unitId && x.Year == year select x).ToList();
        }
    }
}