using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
    public class InspectionManagementDetailService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 获取共检记录明细
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable getListData(string InspectionId)
        {
            return from x in db.ProcessControl_InspectionManagementDetail
                   where x.InspectionId == InspectionId
                   select new
                   {
                       x.InspectionDetailId,
                       x.InspectionId,
                       x.UnitWorkId,
                       x.Branch,
                       x.ControlPointType,
                   };
        }
        /// 
        /// 添加共检记录明细
        /// 
        /// 
        public static void AddInspectionDetail(Model.ProcessControl_InspectionManagementDetail InspectionDetail)
        {
            Model.SGGLDB db = Funs.DB;
            Model.ProcessControl_InspectionManagementDetail newInspectionDetail = new Model.ProcessControl_InspectionManagementDetail();
            newInspectionDetail.InspectionDetailId = InspectionDetail.InspectionDetailId;
            newInspectionDetail.InspectionId = InspectionDetail.InspectionId;
            newInspectionDetail.UnitWorkId = InspectionDetail.UnitWorkId;
            newInspectionDetail.Branch = InspectionDetail.Branch;
            newInspectionDetail.ControlPointType = InspectionDetail.ControlPointType;
            newInspectionDetail.CreateDate = InspectionDetail.CreateDate;
            db.ProcessControl_InspectionManagementDetail.InsertOnSubmit(newInspectionDetail);
            db.SubmitChanges();
        }
        public static void AddInspectionDetailForApi(Model.ProcessControl_InspectionManagementDetail InspectionDetail)
        {
            using (var db = new Model.SGGLDB(Funs.ConnString))
            {
                Model.ProcessControl_InspectionManagementDetail newInspectionDetail = new Model.ProcessControl_InspectionManagementDetail();
                newInspectionDetail.InspectionDetailId = InspectionDetail.InspectionDetailId;
                newInspectionDetail.InspectionId = InspectionDetail.InspectionId;
                newInspectionDetail.UnitWorkId = InspectionDetail.UnitWorkId;
                newInspectionDetail.Branch = InspectionDetail.Branch;
                newInspectionDetail.ControlPointType = InspectionDetail.ControlPointType;
                newInspectionDetail.CreateDate = InspectionDetail.CreateDate;
                db.ProcessControl_InspectionManagementDetail.InsertOnSubmit(newInspectionDetail);
                db.SubmitChanges();
            }
        }
        /// 
        /// 修改共检记录明细
        /// 
        /// 
        public static void UpdateInspectionDetail(Model.ProcessControl_InspectionManagementDetail InspectionDetail)
        {
            Model.SGGLDB db = Funs.DB;
            Model.ProcessControl_InspectionManagementDetail newInspectionDetail = db.ProcessControl_InspectionManagementDetail.First(e => e.InspectionDetailId == InspectionDetail.InspectionDetailId);
            newInspectionDetail.UnitWorkId = InspectionDetail.UnitWorkId;
            newInspectionDetail.Branch = InspectionDetail.Branch;
            newInspectionDetail.ControlPointType = InspectionDetail.ControlPointType;
            newInspectionDetail.CreateDate = InspectionDetail.CreateDate;
            db.SubmitChanges();
        }
        /// 
        /// 根据共检记录明细Id删除一个共检记录信息明细
        /// 
        /// 
        public static void DeleteInspectionDetail(string InspectionDetailId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.ProcessControl_InspectionManagementDetail InspectionDetail = db.ProcessControl_InspectionManagementDetail.First(e => e.InspectionDetailId == InspectionDetailId);
            db.ProcessControl_InspectionManagementDetail.DeleteOnSubmit(InspectionDetail);
            db.SubmitChanges();
        }
        public static void DeleteInspectionDetailForApi(string InspectionDetailId)
        {
            using (var db = new Model.SGGLDB(Funs.ConnString))
            {
                Model.ProcessControl_InspectionManagementDetail InspectionDetail = db.ProcessControl_InspectionManagementDetail.First(e => e.InspectionDetailId == InspectionDetailId);
                db.ProcessControl_InspectionManagementDetail.DeleteOnSubmit(InspectionDetail);
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据共检记录主表删除所有共检记录信息明细
        /// 
        /// 
        public static void DeleteAllInspectionDetail(string InspectionId)
        {
            Model.SGGLDB db = Funs.DB;
            var q = (from x in db.ProcessControl_InspectionManagementDetail where x.InspectionId == InspectionId select x).ToList();
            db.ProcessControl_InspectionManagementDetail.DeleteAllOnSubmit(q);
            db.SubmitChanges();
        }
        /// 
        /// 根据共检记录明细Id获取一个共检记录信息明细
        /// 
        /// 
        public static Model.ProcessControl_InspectionManagementDetail GetInspectionDetail(string InspectionDetailId)
        {
            return Funs.DB.ProcessControl_InspectionManagementDetail.FirstOrDefault(e => e.InspectionDetailId == InspectionDetailId);
        }
        /// 
        /// 根据共检记录Id获取一个共检记录信息明细
        /// 
        /// 
        public static Model.ProcessControl_InspectionManagementDetail GetInspectionDetailBySoptCheckCode(string InspectionId)
        {
            return Funs.DB.ProcessControl_InspectionManagementDetail.FirstOrDefault(e => e.InspectionId == InspectionId);
        }
        /// 
        /// 根据共检记录主键获取所有共检记录信息明细
        /// 
        /// 
        public static List GetInspectionDetails(string InspectionId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                return (from x in db.ProcessControl_InspectionManagementDetail
                        where x.InspectionId == InspectionId
                        select x).ToList();
            }
        }
        public static List GetInspectionDetailsForApi(string InspectionId)
        {
            using (var db = new Model.SGGLDB(Funs.ConnString))
            {
                return (from x in db.ProcessControl_InspectionManagementDetail
                        where x.InspectionId == InspectionId
                        select x).ToList();
            }
        }
        /// 
        /// 根据共检记录主键获取所有实体合格共检记录信息明细
        /// 
        /// 
        public static List GetOKInspectionDetails(string InspectionId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                return (from x in db.ProcessControl_InspectionManagementDetail
                        join y in db.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId
                        where x.InspectionId == InspectionId && y.IsOnceQualified == true
                        select x).ToList();
            }
        }
        public static List GetOKInspectionDetailsForApi(string InspectionId)
        {
            using (var db = new Model.SGGLDB(Funs.ConnString))
            {
                return (from x in db.ProcessControl_InspectionManagementDetail
                        join y in db.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId
                        where x.InspectionId == InspectionId && y.IsOnceQualified == true
                        select x).ToList();
            }
        }
    }
}