using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace BLL
{
    /// 
    /// 重大施工方案审批过程描述
    /// 
    public static class MajorPlanApprovalItemService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        public static int count
        {
            get;
            set;
        }
        /// 
        /// 获取分页列表
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable GetListData(string majorPlanApprovalId, int startRowIndex, int maximumRows)
        {
            IQueryable q = from x in db.Comprehensive_MajorPlanApprovalItem
                                                                      where x.MajorPlanApprovalId == majorPlanApprovalId
                                                                      orderby x.SubmitDate descending
                                                                      select x;
            count = q.Count();
            if (count == 0)
            {
                return new object[] { "" };
            }
            return from x in q.Skip(startRowIndex).Take(maximumRows)
                   select new
                   {
                       x.MajorPlanApprovalItemId,
                       x.MajorPlanApprovalId,
                       x.UnitId,
                       UnitName = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).FirstOrDefault(),
                       x.Counts,
                       x.SubmitDate,
                       x.ReturnDate,
                       x.ModifyContents,
                       x.AttachUrl
                   };
        }
        /// 
        /// 获取分页列表数
        /// 
        /// 
        /// 
        public static int GetListCount(string majorPlanApprovalId)
        {
            return count;
        }
        /// 
        /// 根据主键获取重大施工方案审批过程描述
        /// 
        /// 
        /// 
        public static Model.Comprehensive_MajorPlanApprovalItem GetMajorPlanApprovalItemById(string majorPlanApprovalItemId)
        {
            return Funs.DB.Comprehensive_MajorPlanApprovalItem.FirstOrDefault(e => e.MajorPlanApprovalItemId == majorPlanApprovalItemId);
        }
        /// 
        /// 添加重大施工方案审批过程描述
        /// 
        /// 
        public static void AddMajorPlanApprovalItem(Model.Comprehensive_MajorPlanApprovalItem majorPlanApprovalItem)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_MajorPlanApprovalItem newMajorPlanApprovalItem = new Model.Comprehensive_MajorPlanApprovalItem();
            newMajorPlanApprovalItem.MajorPlanApprovalItemId = majorPlanApprovalItem.MajorPlanApprovalItemId;
            newMajorPlanApprovalItem.MajorPlanApprovalId = majorPlanApprovalItem.MajorPlanApprovalId;
            newMajorPlanApprovalItem.UnitId = majorPlanApprovalItem.UnitId;
            newMajorPlanApprovalItem.Counts = majorPlanApprovalItem.Counts;
            newMajorPlanApprovalItem.SubmitDate = majorPlanApprovalItem.SubmitDate;
            newMajorPlanApprovalItem.ReturnDate = majorPlanApprovalItem.ReturnDate;
            newMajorPlanApprovalItem.ModifyContents = majorPlanApprovalItem.ModifyContents;
            newMajorPlanApprovalItem.AttachUrl = majorPlanApprovalItem.AttachUrl;
            db.Comprehensive_MajorPlanApprovalItem.InsertOnSubmit(newMajorPlanApprovalItem);
            db.SubmitChanges();
        }
        /// 
        /// 修改重大施工方案审批过程描述
        /// 
        /// 
        public static void UpdateMajorPlanApprovalItem(Model.Comprehensive_MajorPlanApprovalItem majorPlanApprovalItem)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_MajorPlanApprovalItem newMajorPlanApprovalItem = db.Comprehensive_MajorPlanApprovalItem.FirstOrDefault(e => e.MajorPlanApprovalItemId == majorPlanApprovalItem.MajorPlanApprovalItemId);
            if (newMajorPlanApprovalItem != null)
            {
                newMajorPlanApprovalItem.UnitId = majorPlanApprovalItem.UnitId;
                newMajorPlanApprovalItem.Counts = majorPlanApprovalItem.Counts;
                newMajorPlanApprovalItem.SubmitDate = majorPlanApprovalItem.SubmitDate;
                newMajorPlanApprovalItem.ReturnDate = majorPlanApprovalItem.ReturnDate;
                newMajorPlanApprovalItem.ModifyContents = majorPlanApprovalItem.ModifyContents;
                newMajorPlanApprovalItem.AttachUrl = majorPlanApprovalItem.AttachUrl;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除重大施工方案审批过程描述
        /// 
        /// 
        public static void DeleteMajorPlanApprovalItemById(string majorPlanApprovalItemId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_MajorPlanApprovalItem newMajorPlanApprovalItem = db.Comprehensive_MajorPlanApprovalItem.FirstOrDefault(e => e.MajorPlanApprovalItemId == majorPlanApprovalItemId);
            if (newMajorPlanApprovalItem != null)
            {
                if (!string.IsNullOrEmpty(newMajorPlanApprovalItem.AttachUrl))
                {
                    BLL.UploadAttachmentService.DeleteFile(Funs.RootPath, newMajorPlanApprovalItem.AttachUrl);//删除附件
                }
                db.Comprehensive_MajorPlanApprovalItem.DeleteOnSubmit(newMajorPlanApprovalItem);
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据重大施工方案审批主键删除所有项目过程描述
        /// 
        /// 
        public static void DeleteMajorPlanApprovalItemByMajorPlanApprovalId(string majorPlanApprovalId)
        {
            Model.SGGLDB db = Funs.DB;
            var q = (from x in db.Comprehensive_MajorPlanApprovalItem where x.MajorPlanApprovalId == majorPlanApprovalId select x).ToList();
            if (q != null)
            {
                foreach (var att in q)
                {
                    if (!string.IsNullOrEmpty(att.AttachUrl))
                    {
                        BLL.UploadAttachmentService.DeleteFile(Funs.RootPath, att.AttachUrl);//删除附件
                    }
                }
                db.Comprehensive_MajorPlanApprovalItem.DeleteAllOnSubmit(q);
                db.SubmitChanges();
            }
        }
    }
}