using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace BLL
{
    /// 
    /// 质量事故处理记录
    /// 
    public static class QualityAccidentService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        private static int count
        {
            get;
            set;
        }
        /// 
        /// 获取分页列表
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable GetListData(string ProjectId, int startRowIndex, int maximumRows)
        {
            IQueryable q = from x in db.Comprehensive_QualityAccident
                                                                where x.ProjectId == ProjectId
                                                                select x;
            count = q.Count();
            if (count == 0)
            {
                return new object[] { };
            }
            return from x in q.Skip(startRowIndex).Take(maximumRows)
                   select new
                   {
                       x.QualityAccidentId,
                       x.ProjectId,
                       x.UnitId,
                       x.Time,
                       x.Place,
                       x.DirectEconomicLoss,
                       x.RemedialMeasures,
                       x.ResponsibilityDetermination,
                       x.CorrectiveActions,
                       x.AttachUrl,
                       UnitWorkName = x.UnitWorkId != null ? BLL.UnitWorkService.GetUnitWorkName(x.UnitWorkId) : null,
                   };
        }
        /// 
        /// 
        /// 
        public static int GetListCount(string ProjectId)
        {
            return count;
        }
        /// 
        /// 根据主键获取质量事故处理记录
        /// 
        /// 
        /// 
        public static Model.Comprehensive_QualityAccident GetQualityAccidentById(string QualityAccidentId)
        {
            return Funs.DB.Comprehensive_QualityAccident.FirstOrDefault(e => e.QualityAccidentId == QualityAccidentId);
        }
        /// 
        /// 添加质量事故处理记录
        /// 
        /// 
        public static void AddQualityAccident(Model.Comprehensive_QualityAccident QualityAccident)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_QualityAccident newQualityAccident = new Model.Comprehensive_QualityAccident();
            newQualityAccident.QualityAccidentId = QualityAccident.QualityAccidentId;
            newQualityAccident.ProjectId = QualityAccident.ProjectId;
            newQualityAccident.UnitId = QualityAccident.UnitId;
            newQualityAccident.Time = QualityAccident.Time;
            newQualityAccident.Place = QualityAccident.Place;
            newQualityAccident.DirectEconomicLoss = QualityAccident.DirectEconomicLoss;
            newQualityAccident.RemedialMeasures = QualityAccident.RemedialMeasures;
            newQualityAccident.ResponsibilityDetermination = QualityAccident.ResponsibilityDetermination;
            newQualityAccident.CorrectiveActions = QualityAccident.CorrectiveActions;
            newQualityAccident.AttachUrl = QualityAccident.AttachUrl;
            newQualityAccident.CompileMan = QualityAccident.CompileMan;
            newQualityAccident.CompileDate = QualityAccident.CompileDate;
            newQualityAccident.UnitWorkId = QualityAccident.UnitWorkId;
            newQualityAccident.Status = QualityAccident.Status;
            newQualityAccident.RemarkCode = QualityAccident.RemarkCode;
            db.Comprehensive_QualityAccident.InsertOnSubmit(newQualityAccident);
            db.SubmitChanges();
        }
        /// 
        /// 修改质量事故处理记录
        /// 
        /// 
        public static void UpdateQualityAccident(Model.Comprehensive_QualityAccident QualityAccident)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_QualityAccident newQualityAccident = db.Comprehensive_QualityAccident.FirstOrDefault(e => e.QualityAccidentId == QualityAccident.QualityAccidentId);
            if (newQualityAccident != null)
            {
                newQualityAccident.ProjectId = QualityAccident.ProjectId;
                newQualityAccident.UnitId = QualityAccident.UnitId;
                newQualityAccident.Time = QualityAccident.Time;
                newQualityAccident.Place = QualityAccident.Place;
                newQualityAccident.DirectEconomicLoss = QualityAccident.DirectEconomicLoss;
                newQualityAccident.RemedialMeasures = QualityAccident.RemedialMeasures;
                newQualityAccident.ResponsibilityDetermination = QualityAccident.ResponsibilityDetermination;
                newQualityAccident.CorrectiveActions = QualityAccident.CorrectiveActions;
                newQualityAccident.AttachUrl = QualityAccident.AttachUrl;
                newQualityAccident.UnitWorkId = QualityAccident.UnitWorkId;
                newQualityAccident.Status = QualityAccident.Status;
                newQualityAccident.RemarkCode = QualityAccident.RemarkCode;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除质量事故处理记录
        /// 
        /// 
        public static void DeleteQualityAccident(string specialQualityAccidentId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_QualityAccident QualityAccident = db.Comprehensive_QualityAccident.FirstOrDefault(e => e.QualityAccidentId == specialQualityAccidentId);
            if (QualityAccident != null)
            {
                db.Comprehensive_QualityAccident.DeleteOnSubmit(QualityAccident);
                db.SubmitChanges();
            }
        }
    }
}