using FineUIPro;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
    public static class SupervisecheckDetailService
    {
        #region 获取列表
        /// 
        /// 记录数
        /// 
        public static int Count
        {
            get;
            set;
        }
        public static IQueryable GetByModle(Model.ZJ_SuperviseCheck_Detail table)
        {
            var q = from x in Funs.DB.ZJ_SuperviseCheck_Detail
                    where
                              (string.IsNullOrEmpty(table.DetailId) || x.DetailId.Contains(table.DetailId)) &&
                              (string.IsNullOrEmpty(table.SuperviseCheckId) || x.SuperviseCheckId.Contains(table.SuperviseCheckId)) &&
                              (string.IsNullOrEmpty(table.QueDescribe) || x.QueDescribe.Contains(table.QueDescribe)) &&
                              (string.IsNullOrEmpty(table.QueSuggest) || x.QueSuggest.Contains(table.QueSuggest)) &&
                              (string.IsNullOrEmpty(table.RiskLevel) || x.RiskLevel.Contains(table.RiskLevel)) &&
                              (string.IsNullOrEmpty(table.SituationDescription) || x.SituationDescription.Contains(table.SituationDescription)) 
                    select x
                  ;
            return q;
        }
        /// 
        /// 获取分页列表
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable GetListData(Model.ZJ_SuperviseCheck_Detail table, Grid grid1)
        {
            var q = GetByModle(table);
            Count = q.Count();
            if (Count == 0)
            {
                return null;
            }
            q = q.Skip(grid1.PageSize * grid1.PageIndex).Take(grid1.PageSize);
            // q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
            return from x in q
                   select new
                   {
                       x.DetailId,
                       x.SuperviseCheckId,
                       x.QueDescribe,
                       x.QueSuggest,
                       x.RiskLevel,
                       x.CheckDatetime,
                       x.IsRectify,
                       x.SituationDescription,
                   };
        }
        #endregion
        public static Model.ZJ_SuperviseCheck_Detail GetById(string DetailId)
        {
            return Funs.DB.ZJ_SuperviseCheck_Detail.FirstOrDefault(x => x.DetailId == DetailId);
        }
        public static List GetBySuperviseCheckId(string SuperviseCheckId)
        {
            return Funs.DB.ZJ_SuperviseCheck_Detail.Where(x => x.SuperviseCheckId == SuperviseCheckId).ToList();
        }
        public static void Add(Model.ZJ_SuperviseCheck_Detail newtable)
        {
            Model.ZJ_SuperviseCheck_Detail table = new Model.ZJ_SuperviseCheck_Detail
            {
                DetailId = newtable.DetailId,
                SuperviseCheckId = newtable.SuperviseCheckId,
                QueDescribe = newtable.QueDescribe,
                QueSuggest = newtable.QueSuggest,
                RiskLevel = newtable.RiskLevel,
                CheckDatetime = newtable.CheckDatetime,
                IsRectify = newtable.IsRectify,
                SituationDescription = newtable.SituationDescription,
            };
            Funs.DB.ZJ_SuperviseCheck_Detail.InsertOnSubmit(table);
            Funs.DB.SubmitChanges();
        }
        public static void Update(Model.ZJ_SuperviseCheck_Detail newtable)
        {
            Model.ZJ_SuperviseCheck_Detail table = Funs.DB.ZJ_SuperviseCheck_Detail.FirstOrDefault(x => x.DetailId == newtable.DetailId);
            if (table != null)
            {
                table.DetailId = newtable.DetailId;
                table.SuperviseCheckId = newtable.SuperviseCheckId;
                table.QueDescribe = newtable.QueDescribe;
                table.QueSuggest = newtable.QueSuggest;
                table.RiskLevel = newtable.RiskLevel;
                table.CheckDatetime = newtable.CheckDatetime;
                table.IsRectify = newtable.IsRectify;
                table.SituationDescription = newtable.SituationDescription;
                Funs.DB.SubmitChanges();
            }
        }
        public static void DeletelById(string DetailId)
        {
            Model.ZJ_SuperviseCheck_Detail table = Funs.DB.ZJ_SuperviseCheck_Detail.FirstOrDefault(x => x.DetailId == DetailId);
            if (table != null)
            {
                Funs.DB.ZJ_SuperviseCheck_Detail.DeleteOnSubmit(table);
                Funs.DB.SubmitChanges();
            }
        }
        public static void DeleteBySuperviseCheckId(string superviseCheckId)
        {
            var table = Funs.DB.ZJ_SuperviseCheck_Detail.Where(x => x.SuperviseCheckId == superviseCheckId).ToList();
            if (table.Count>0)
            {
                Funs.DB.ZJ_SuperviseCheck_Detail.DeleteAllOnSubmit(table);
                Funs.DB.SubmitChanges();
            }
        }
    }
}