using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;
namespace BLL
{
    /// 
    /// 检验批管理
    /// 
    public static class InspectionManagementService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        private static int count
        {
            get;
            set;
        }
        /// 
        /// 获取分页列表
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable GetListData(string projectId, string UnitWorkId, string cNProfessionalId, string startDate, string endDate, int startRowIndex, int maximumRows)
        {
            IQueryable q = from x in db.ProcessControl_InspectionManagement
                                                                      where x.ProjectId == projectId && x.FileType == null
                                                                      orderby x.InspectionDate descending
                                                                      select x;
            if (UnitWorkId != "0")
            {
                q = q.Where(e => e.UnitWorkId == UnitWorkId);
            }
            if (cNProfessionalId != "0")
            {
                q = q.Where(e => e.CNProfessionalId == cNProfessionalId);
            }
            if (!string.IsNullOrEmpty(startDate) && !string.IsNullOrEmpty(endDate))
            {
                q = q.Where(e => e.InspectionDate >= Funs.GetNewDateTime(startDate) && e.InspectionDate <= Funs.GetNewDateTime(endDate));
            }
            count = q.Count();
            if (count == 0)
            {
                return new object[] { "" };
            }
            return from x in q.Skip(startRowIndex).Take(maximumRows)
                   select new
                   {
                       x.InspectionId,
                       x.ProjectId,
                       x.NoticeCode,
                       x.AcceptanceCheckMan,
                       UnitName = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).FirstOrDefault(),
                       ProfessionalName = (from y in db.Base_CNProfessional where y.CNProfessionalId == x.CNProfessionalId select y.ProfessionalName).FirstOrDefault(),
                       x.InspectionCode,
                       InstallationName = (from y in db.WBS_UnitWork where y.UnitWorkId == x.UnitWorkId select y.UnitWorkName).FirstOrDefault(),
                       Branch = (from y in db.WBS_DivisionProject where y.DivisionProjectId == x.Branch select y.DivisionName).FirstOrDefault(),//分部
                       ControlPointType = (from y in db.WBS_BreakdownProject where y.BreakdownProjectId == x.ControlPointType select y.BreakdownName).FirstOrDefault(),//质量控制点
                       Class = (from y in db.WBS_BreakdownProject where y.BreakdownProjectId == x.ControlPointType select y.Class).FirstOrDefault(),//控制等级
                       x.AcceptanceSite,
                       IsOnceQualified = (x.IsOnceQualified == true ? "是" : "否"),
                       x.InspectionDate,
                       x.AttachUrl,
                       x.AttachUrl2,
                   };
        }
        public static IEnumerable GetListDataForDataType(string controlPointType, string projectId, string UnitWorkId, string cNProfessionalId, string startDate, string endDate, int startRowIndex, int maximumRows)
        {
            IQueryable q = from x in db.ProcessControl_InspectionManagement
                                                                      where x.ProjectId == projectId && x.FileType == null
                                                                      orderby x.InspectionDate descending
                                                                      select x;
            if (!string.IsNullOrEmpty(controlPointType))
            {
                string[] types = controlPointType.Split(',');
                q = q.Where(e => types.Contains(e.ControlPointType));
            }
            if (UnitWorkId != "0")
            {
                q = q.Where(e => e.UnitWorkId == UnitWorkId);
            }
            if (cNProfessionalId != "0")
            {
                q = q.Where(e => e.CNProfessionalId == cNProfessionalId);
            }
            if (!string.IsNullOrEmpty(startDate) && !string.IsNullOrEmpty(endDate))
            {
                q = q.Where(e => e.InspectionDate >= Funs.GetNewDateTime(startDate) && e.InspectionDate <= Funs.GetNewDateTime(endDate));
            }
            count = q.Count();
            if (count == 0)
            {
                return new object[] { "" };
            }
            return from x in q.Skip(startRowIndex).Take(maximumRows)
                   select new
                   {
                       x.InspectionId,
                       x.ProjectId,
                       x.NoticeCode,
                       x.AcceptanceCheckMan,
                       UnitName = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).FirstOrDefault(),
                       ProfessionalName = (from y in db.Base_CNProfessional where y.CNProfessionalId == x.CNProfessionalId select y.ProfessionalName).FirstOrDefault(),
                       x.InspectionCode,
                       InstallationName = (from y in db.WBS_UnitWork where y.UnitWorkId == x.UnitWorkId select y.UnitWorkName).FirstOrDefault(),
                       Branch = (from y in db.WBS_DivisionProject where y.DivisionProjectId == x.Branch select y.DivisionName).FirstOrDefault(),//分部
                       ControlPointType = (from y in db.WBS_BreakdownProject where y.BreakdownProjectId == x.ControlPointType select y.BreakdownName).FirstOrDefault(),//质量控制点
                       Class = (from y in db.WBS_BreakdownProject where y.BreakdownProjectId == x.ControlPointType select y.Class).FirstOrDefault(),//控制等级
                       x.AcceptanceSite,
                       IsOnceQualified = (x.IsOnceQualified == true ? "是" : "否"),
                       x.InspectionDate,
                       x.AttachUrl,
                       x.AttachUrl2,
                   };
        }
        /// 
        /// 获取分页列表数
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static int GetListCount(string projectId, string UnitWorkId, string cNProfessionalId, string startDate, string endDate)
        {
            return count;
        }
        public static int GetListCountForDataType(string controlPointType, string projectId, string UnitWorkId, string cNProfessionalId, string startDate, string endDate)
        {
            return count;
        }
        /// 
        /// 获取分页列表
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static int GetListCount(string projectId, string name, string startDate, string endDate)
        {
            return count;
        }
        public static DataSet GetListData(string projectId, string name, string startDate, string endDate, int startRowIndex, int maximumRows)
        {
            string sql = @"SELECT AcceptanceCheckMan,COUNT(*) SunNumber,COUNT(IsOnceQualified) OneStatisticsSunNumber,COUNT(IsOnceQualified)*100/COUNT(*) as OneStatistics
                          FROM[dbo].[ProcessControl_InspectionManagement]
                          where InspectionDate is not null
                          ";
            if (!string.IsNullOrEmpty(projectId))
            {
                sql += " and ProjectId = '" + projectId + "'";
            }
            if (!string.IsNullOrEmpty(startDate))
            {
                sql += " and InspectionDate >= '" + startDate + "'";
            }
            if (!string.IsNullOrEmpty(name))
            {
                sql += " and AcceptanceCheckMan  like  '%" + name + "%'";
            }
            if (!string.IsNullOrEmpty(endDate))
            {
                sql += " and InspectionDate <= '" + endDate + "'";
            }
            sql += " group by AcceptanceCheckMan";
            DataSet dataSet = SQLHelper.RunSqlString(sql, "dt");
            if (dataSet != null && dataSet.Tables.Count > 0)
            {
                count = dataSet.Tables[0].Rows.Count;
                DataSet data = new DataSet();
                DataTable dataTable = new DataTable();
                foreach (var row in dataSet.Tables[0].Columns)
                {
                    dataTable.Columns.Add(row.ToString());
                }
                data.Tables.Add(dataTable);
                for (int i = startRowIndex; i <= (startRowIndex + maximumRows) && i < dataSet.Tables[0].Rows.Count; i++)
                {
                    var row = dataTable.NewRow();
                    row["AcceptanceCheckMan"] = dataSet.Tables[0].Rows[i]["AcceptanceCheckMan"];
                    row["SunNumber"] = dataSet.Tables[0].Rows[i]["SunNumber"];
                    row["OneStatisticsSunNumber"] = dataSet.Tables[0].Rows[i]["OneStatisticsSunNumber"];
                    row["OneStatistics"] = dataSet.Tables[0].Rows[i]["OneStatistics"].ToString() + "%";
                    dataTable.Rows.Add(row);
                }
                return data;
            }
            return null;
        }
        /// 
        /// 根据逐渐获取检验批管理
        /// 
        /// 
        /// 
        public static Model.ProcessControl_InspectionManagement GetInspectionManagementById(string inspectionId)
        {
            return Funs.DB.ProcessControl_InspectionManagement.FirstOrDefault(e => e.InspectionId == inspectionId);
        }
        /// 
        /// 添加检验批管理
        /// 
        /// 
        public static void AddInspectionManagement(Model.ProcessControl_InspectionManagement inspectionManagement)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                Model.ProcessControl_InspectionManagement newInspectionManagement = new Model.ProcessControl_InspectionManagement();
                newInspectionManagement.InspectionId = inspectionManagement.InspectionId;
                newInspectionManagement.ProjectId = inspectionManagement.ProjectId;
                newInspectionManagement.UnitId = inspectionManagement.UnitId;
                newInspectionManagement.CNProfessionalId = inspectionManagement.CNProfessionalId;
                newInspectionManagement.InspectionCode = inspectionManagement.InspectionCode;
                newInspectionManagement.UnitWorkId = inspectionManagement.UnitWorkId;
                newInspectionManagement.Branch = inspectionManagement.Branch;
                newInspectionManagement.ControlPointType = inspectionManagement.ControlPointType;
                newInspectionManagement.AcceptanceSite = inspectionManagement.AcceptanceSite;
                newInspectionManagement.IsOnceQualified = inspectionManagement.IsOnceQualified;
                newInspectionManagement.InspectionDate = inspectionManagement.InspectionDate;
                newInspectionManagement.AttachUrl = inspectionManagement.AttachUrl;
                newInspectionManagement.AttachUrl2 = inspectionManagement.AttachUrl2;
                newInspectionManagement.NoticeCode = inspectionManagement.NoticeCode;
                newInspectionManagement.ParentDivisionProjectId = inspectionManagement.ParentDivisionProjectId;
                newInspectionManagement.CheckDate = inspectionManagement.CheckDate;
                newInspectionManagement.CheckMan = inspectionManagement.CheckMan;
                newInspectionManagement.CompileMan = inspectionManagement.CompileMan;
                newInspectionManagement.CompileDate = inspectionManagement.CompileDate;
                newInspectionManagement.UnqualifiedReason = inspectionManagement.UnqualifiedReason;
                newInspectionManagement.AcceptanceCheckMan = inspectionManagement.AcceptanceCheckMan;
                newInspectionManagement.FileType = inspectionManagement.FileType;
                newInspectionManagement.ChildUnitWorkId = inspectionManagement.ChildUnitWorkId;
                newInspectionManagement.ChildBranch = inspectionManagement.ChildBranch;
                db.ProcessControl_InspectionManagement.InsertOnSubmit(newInspectionManagement);
                db.SubmitChanges();
            }
        }
        /// 
        /// 修改检验批管理
        /// 
        /// 
        public static void UpdateInspectionManagement(Model.ProcessControl_InspectionManagement inspectionManagement)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                Model.ProcessControl_InspectionManagement newInspectionManagement = db.ProcessControl_InspectionManagement.FirstOrDefault(e => e.InspectionId == inspectionManagement.InspectionId);
                if (newInspectionManagement != null)
                {
                    newInspectionManagement.ProjectId = inspectionManagement.ProjectId;
                    newInspectionManagement.UnitId = inspectionManagement.UnitId;
                    newInspectionManagement.CNProfessionalId = inspectionManagement.CNProfessionalId;
                    newInspectionManagement.InspectionCode = inspectionManagement.InspectionCode;
                    newInspectionManagement.UnitWorkId = inspectionManagement.UnitWorkId;
                    newInspectionManagement.Branch = inspectionManagement.Branch;
                    newInspectionManagement.ControlPointType = inspectionManagement.ControlPointType;
                    newInspectionManagement.AcceptanceSite = inspectionManagement.AcceptanceSite;
                    newInspectionManagement.IsOnceQualified = inspectionManagement.IsOnceQualified;
                    newInspectionManagement.InspectionDate = inspectionManagement.InspectionDate;
                    newInspectionManagement.AttachUrl = inspectionManagement.AttachUrl;
                    newInspectionManagement.AttachUrl2 = inspectionManagement.AttachUrl2;
                    newInspectionManagement.NoticeCode = inspectionManagement.NoticeCode;
                    newInspectionManagement.ParentDivisionProjectId = inspectionManagement.ParentDivisionProjectId;
                    newInspectionManagement.UnqualifiedReason = inspectionManagement.UnqualifiedReason;
                    newInspectionManagement.AcceptanceCheckMan = inspectionManagement.AcceptanceCheckMan;
                    newInspectionManagement.ChildUnitWorkId = inspectionManagement.ChildUnitWorkId;
                    newInspectionManagement.ChildBranch = inspectionManagement.ChildBranch;
                    db.SubmitChanges();
                }
            }
        }
        /// 
        /// 根据主键删除检验批管理
        /// 
        /// 
        public static void DeleteInspectionManagement(string inspectionId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.ProcessControl_InspectionManagement inspectionManagement = db.ProcessControl_InspectionManagement.FirstOrDefault(e => e.InspectionId == inspectionId);
            if (inspectionManagement != null)
            {
                if (!string.IsNullOrEmpty(inspectionManagement.AttachUrl))
                {
                    BLL.UploadAttachmentService.DeleteFile(Funs.RootPath, inspectionManagement.AttachUrl);//删除附件
                }
                if (!string.IsNullOrEmpty(inspectionManagement.AttachUrl2))
                {
                    BLL.UploadAttachmentService.DeleteFile(Funs.RootPath, inspectionManagement.AttachUrl2);//删除附件
                }
                db.ProcessControl_InspectionManagement.DeleteOnSubmit(inspectionManagement);
                db.SubmitChanges();
            }
        }
        public static List getInspectionManagementListByCNProfessionalIdAndDate(string projectId, string cNProfessionalId, DateTime startDate, DateTime SoptDate, bool isOnceQualified)
        {
            List InspectionMangementList = (from x in Funs.DB.ProcessControl_InspectionManagement where x.ProjectId == projectId select x).ToList();
            if (!string.IsNullOrEmpty(cNProfessionalId) && cNProfessionalId != "0")
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CNProfessionalId == cNProfessionalId).ToList();
            }
            if (isOnceQualified == true)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.IsOnceQualified == true).ToList();
            }
            if (startDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate >= startDate).ToList();
            }
            if (SoptDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate <= SoptDate).ToList();
            }
            //if (startDate != null && startDate != Convert.ToDateTime("2015-01-01"))
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate >= startDate).ToList();
            //}
            //if (SoptDate != null)
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate == null || x.InspectionDate <= SoptDate).ToList();
            //}
            return InspectionMangementList;
        }
        public static List getInspectionManagementDetailListByCNProfessionalIdAndDate(string projectId, string cNProfessionalId, DateTime startDate, DateTime SoptDate, bool isOnceQualified)
        {
            List InspectionMangementList = (from x in Funs.DB.View_CQMS_InspectionManagementDetail select x).ToList();
            if (!string.IsNullOrEmpty(projectId))
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.ProjectId == projectId).ToList();
            }
            if (!string.IsNullOrEmpty(cNProfessionalId) && cNProfessionalId != "0")
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CNProfessionalId == cNProfessionalId).ToList();
            }
            if (isOnceQualified == true)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.IsOnceQualified == true).ToList();
            }
            if (startDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate >= startDate).ToList();
            }
            if (SoptDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate <= SoptDate).ToList();
            }
            //if (startDate != null && startDate != Convert.ToDateTime("2015-01-01"))
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate >= startDate).ToList();
            //}
            //if (SoptDate != null)
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate == null || x.InspectionDate <= SoptDate).ToList();
            //}
            return InspectionMangementList;
        }
        public static List getInspectionManagementDetailListByUnitIdAndDate(string projectId, string unitId, DateTime startDate, DateTime SoptDate, bool isOnceQualified)
        {
            List InspectionMangementList = (from x in Funs.DB.View_CQMS_InspectionManagementDetail where x.ProjectId == projectId select x).ToList();
            if (!string.IsNullOrEmpty(unitId) && unitId != "0")
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.UnitId == unitId).ToList();
            }
            if (isOnceQualified == true)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.IsOnceQualified == true).ToList();
            }
            if (startDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate >= startDate).ToList();
            }
            if (SoptDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate <= SoptDate).ToList();
            }
            //if (startDate != null && startDate != Convert.ToDateTime("2015-01-01"))
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate >= startDate).ToList();
            //}
            //if (SoptDate != null)
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate == null || x.InspectionDate <= SoptDate).ToList();
            //}
            return InspectionMangementList;
        }
        /// 
        /// 根据主键获取视图信息
        /// 
        /// 
        /// 
        public static Model.View_InspectionManagement GetViewInspectionManagementById(string inspectionManagementId)
        {
            return Funs.DB.View_InspectionManagement.FirstOrDefault(e => e.InspectionId == inspectionManagementId);
        }
        /// 
        /// 根据id修改验收日期和是否一次合格
        /// 
        public static void UpdateByInspectionManagementId(Model.ProcessControl_InspectionManagement inspectionManagement)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                Model.ProcessControl_InspectionManagement newInspectionManagement = db.ProcessControl_InspectionManagement.FirstOrDefault(e => e.InspectionId == inspectionManagement.InspectionId);
                if (newInspectionManagement != null)
                {
                    newInspectionManagement.InspectionDate = inspectionManagement.InspectionDate;
                    newInspectionManagement.IsOnceQualified = inspectionManagement.IsOnceQualified;
                    newInspectionManagement.InspectionCode = inspectionManagement.InspectionCode;
                    newInspectionManagement.UnqualifiedReason = inspectionManagement.UnqualifiedReason;
                    db.SubmitChanges();
                }
            }
        }
        public static List getInspectionManagementDetailListByDate(string projectId, DateTime startDate, DateTime SoptDate, bool isOnceQualified)
        {
            List InspectionMangementList = (from x in Funs.DB.ProcessControl_InspectionManagement where x.ProjectId == projectId select x).ToList();
            if (isOnceQualified == true)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.IsOnceQualified == true).ToList();
            }
            if (startDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate >= startDate).ToList();
            }
            if (SoptDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate <= SoptDate).ToList();
            }
            //if (startDate != null && startDate != Convert.ToDateTime("2015-01-01"))
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate >= startDate).ToList();
            //}
            //if (SoptDate != null)
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate == null || x.InspectionDate <= SoptDate).ToList();
            //}
            return InspectionMangementList;
        }
        public static List getInspectionManagementByCNProfessionalIdAndDate(string projectId, string cNProfessionalId, DateTime startDate, DateTime SoptDate, bool isOnceQualified)
        {
            List InspectionMangementList = (from x in Funs.DB.ProcessControl_InspectionManagement select x).ToList();
            if (!string.IsNullOrEmpty(projectId))
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.ProjectId == projectId).ToList();
            }
            if (!string.IsNullOrEmpty(cNProfessionalId) && cNProfessionalId != "0")
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CNProfessionalId == cNProfessionalId).ToList();
            }
            if (isOnceQualified == true)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.IsOnceQualified == true).ToList();
            }
            if (startDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate >= startDate).ToList();
            }
            if (SoptDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate <= SoptDate).ToList();
            }
            //if (startDate != null && startDate != Convert.ToDateTime("2015-01-01"))
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate >= startDate).ToList();
            //}
            //if (SoptDate != null)
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate == null || x.InspectionDate <= SoptDate).ToList();
            //}
            return InspectionMangementList;
        }
        public static List getInspectionManagementByUnitIdAndDate(string projectId, string unitId, DateTime startDate, DateTime SoptDate, bool isOnceQualified)
        {
            List InspectionMangementList = (from x in Funs.DB.ProcessControl_InspectionManagement where x.ProjectId == projectId select x).ToList();
            if (!string.IsNullOrEmpty(unitId) && unitId != "0")
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.UnitId == unitId).ToList();
            }
            if (isOnceQualified == true)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.IsOnceQualified == true).ToList();
            }
            if (startDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate >= startDate).ToList();
            }
            if (SoptDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate <= SoptDate).ToList();
            }
            //if (startDate != null && startDate != Convert.ToDateTime("2015-01-01"))
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate >= startDate).ToList();
            //}
            //if (SoptDate != null)
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate == null || x.InspectionDate <= SoptDate).ToList();
            //}
            return InspectionMangementList;
        }
        public static List getViewMonthReportInspectionManagementByCNProfessionalIdAndDate(string projectId, string cNProfessionalId, DateTime startDate, DateTime SoptDate, bool isOnceQualified)
        {
            List InspectionMangementList = (from x in Funs.DB.View_MonthReport_InspectionManagement select x).ToList();
            if (!string.IsNullOrEmpty(projectId))
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.ProjectId == projectId).ToList();
            }
            if (!string.IsNullOrEmpty(cNProfessionalId) && cNProfessionalId != "0")
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CNProfessionalId == cNProfessionalId).ToList();
            }
            if (isOnceQualified == true)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.IsOnceQualified == true).ToList();
            }
            if (startDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate >= startDate).ToList();
            }
            if (SoptDate != null)
            {
                InspectionMangementList = InspectionMangementList.Where(x => x.CompileDate <= SoptDate).ToList();
            }
            //if (startDate != null && startDate != Convert.ToDateTime("2015-01-01"))
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate >= startDate).ToList();
            //}
            //if (SoptDate != null)
            //{
            //    InspectionMangementList = InspectionMangementList.Where(x => x.InspectionDate == null || x.InspectionDate <= SoptDate).ToList();
            //}
            return InspectionMangementList;
        }
    }
}