using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace BLL
{
    /// 
    /// 特种设备管理
    /// 
    public static class SpecialEquipmentServices
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        private static int count
        {
            get;
            set;
        }
        /// 
        /// 获取分页列表
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable GetListData(string projectId, string unitId, string equipmentId,int startRowIndex, int maximumRows)
        {
            IQueryable q = from x in db.View_Comprehensive_SpecialEquipment
                                                                    where x.ProjectId == projectId
                                                                    orderby x.UnitName descending
                                                                    select x;
            if (unitId != "0"&&!string.IsNullOrEmpty(unitId))
            {
                q = q.Where(e => e.UnitId == unitId);
            }
            if (equipmentId != "0" && !string.IsNullOrEmpty(equipmentId))
            {
                q = q.Where(e => e.EquipmentId == equipmentId);
            }
            count = q.Count();
            if (count == 0)
            {
                return new object[] { };
            }
            return from x in q.Skip(startRowIndex).Take(maximumRows)
                   select new
                   {
                       x.SpecialEquipmentId,
                       x.ProjectId,
                       x.UnitId,
                       x.EquipmentId,
                       x.SunNumber,
                       x.InformNumber,
                       x.SubmitDataNumber,
                       x.MonitoringReportNumber,
                       x.EquipmentName,
                       x.UnitName
                   };
        }
        /// 
        /// 
        /// 
        public static int GetListCount(string projectId, string unitId, string equipmentId)
        {
            return count;
        }
        /// 
        /// 根据主键获取特种设备管理
        /// 
        /// 
        /// 
        public static Model.Comprehensive_SpecialEquipment GetEquipmentById(string SpecialEquipmentId)
        {
            return Funs.DB.Comprehensive_SpecialEquipment.FirstOrDefault(e => e.SpecialEquipmentId == SpecialEquipmentId);
        }
        /// 
        /// 添加特种设备管理
        /// 
        /// 
        public static void AddEquipment(Model.Comprehensive_SpecialEquipment SpecialEquipment)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_SpecialEquipment newEquipment = new Model.Comprehensive_SpecialEquipment();
            newEquipment.SpecialEquipmentId = SpecialEquipment.SpecialEquipmentId;
            newEquipment.ProjectId = SpecialEquipment.ProjectId;
            newEquipment.UnitId = SpecialEquipment.UnitId;
            newEquipment.EquipmentId = SpecialEquipment.EquipmentId;
            newEquipment.SunNumber = SpecialEquipment.SunNumber;
            newEquipment.InformNumber = SpecialEquipment.InformNumber;
            newEquipment.SubmitDataNumber = SpecialEquipment.SubmitDataNumber;
            newEquipment.MonitoringReportNumber = SpecialEquipment.MonitoringReportNumber;
            newEquipment.CompileMan = SpecialEquipment.CompileMan;
            newEquipment.Status = SpecialEquipment.Status;
            newEquipment.PositionNum = SpecialEquipment.PositionNum;
            newEquipment.RemarkCode = SpecialEquipment.RemarkCode;
            newEquipment.ReportTime = SpecialEquipment.ReportTime;
            db.Comprehensive_SpecialEquipment.InsertOnSubmit(newEquipment);
            db.SubmitChanges();
        }
        /// 
        /// 修改特种设备管理
        /// 
        /// 
        public static void UpdateEquipment(Model.Comprehensive_SpecialEquipment SpecialEquipment)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_SpecialEquipment newEquipment = db.Comprehensive_SpecialEquipment.FirstOrDefault(e => e.SpecialEquipmentId == SpecialEquipment.SpecialEquipmentId);
            if (newEquipment != null)
            {
                newEquipment.ProjectId = SpecialEquipment.ProjectId;
                newEquipment.UnitId = SpecialEquipment.UnitId;
                newEquipment.EquipmentId = SpecialEquipment.EquipmentId;
                newEquipment.SunNumber = SpecialEquipment.SunNumber;
                newEquipment.InformNumber = SpecialEquipment.InformNumber;
                newEquipment.SubmitDataNumber = SpecialEquipment.SubmitDataNumber;
                newEquipment.MonitoringReportNumber = SpecialEquipment.MonitoringReportNumber;
                newEquipment.Status = SpecialEquipment.Status;
                newEquipment.PositionNum = SpecialEquipment.PositionNum;
                newEquipment.RemarkCode = SpecialEquipment.RemarkCode;
                newEquipment.ReportTime = SpecialEquipment.ReportTime;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除特种设备管理
        /// 
        /// 
        public static void DeleteEquipment(string specialEquipmentId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_SpecialEquipment SpecialEquipment = db.Comprehensive_SpecialEquipment.FirstOrDefault(e => e.SpecialEquipmentId == specialEquipmentId);
            if (SpecialEquipment != null)
            {
                db.Comprehensive_SpecialEquipment.DeleteOnSubmit(SpecialEquipment);
                db.SubmitChanges();
            }
        }
    }
}