using System;
using System.Collections;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Linq;
using System.Data.Linq;
using System.Web.Security;
using System.Web.UI.WebControls;
using Model;
using BLL;
using System.Collections.Generic;

namespace BLL
{
    public class UnitProjectInitService
    {
        /// <summary>
        /// 根据单位/子单位工程Id获取单位/子单位工程信息
        /// </summary>
        /// <param name="unitProjectId">单位/子单位工程Id</param>
        /// <returns></returns>
        public static Model.Wbs_UnitProjectInit GetUnitProjectInitByUnitProjectCode(string unitProjectCode)
        {
            return Funs.DB.Wbs_UnitProjectInit.FirstOrDefault(e => e.UnitProjectCode == unitProjectCode);
        }
        public static int GetUnitProjectInitcountByUnitProjectCode(string unitProjectCode)
        {
            return Funs.DB.Wbs_UnitProjectInit.Where(e => e.UnitProjectCode == unitProjectCode).Count();
        }
        /// <summary>
        /// 根据专业寻找单位工程数量
        /// </summary>
        /// <param name="cnProfessionId"></param>
        /// <returns></returns>
        public static int GetUnitProcountByCnProfessionId(int cnProfessionId)
        {
            return Funs.DB.Wbs_UnitProjectInit.Where(e => e.CnProfessionId == cnProfessionId).Count();
        }


        /// <summary>
        /// 根据单位工程Id获取子单位工程集合信息
        /// </summary>
        /// <param name="unitProjectId">单位工程Id</param>
        /// <returns></returns>
        public static List<Model.Wbs_UnitProjectInit> GetUnitProjectInitsBySuperUnitProject(string superUnitProject)
        {
            return (from x in Funs.DB.Wbs_UnitProjectInit where x.SuperUnitProject == superUnitProject orderby x.UnitProjectCode select x).ToList();
        }

        /// <summary>
        /// 增加单位工程/子单位工程
        /// </summary>
        /// <param name="user">单位工程/子单位工程</param>
        public static void AddUnitProjectInit(Model.Wbs_UnitProjectInit unitProjectInit)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Wbs_UnitProjectInit newUP = new Model.Wbs_UnitProjectInit();
            newUP.UnitProjectCode = unitProjectInit.UnitProjectCode;
            newUP.UnitProjectName = unitProjectInit.UnitProjectName;
            newUP.SuperUnitProject = unitProjectInit.SuperUnitProject;
            newUP.CnProfessionId = unitProjectInit.CnProfessionId;
            newUP.IsIn = unitProjectInit.IsIn;
            newUP.Remark = unitProjectInit.Remark;

            db.Wbs_UnitProjectInit.InsertOnSubmit(newUP);
            db.SubmitChanges();
        }

        /// <summary>
        /// 修改单位工程/子单位工程
        /// </summary>
        /// <param name="user">单位工程/子单位工程</param>
        public static void UpdateUnitProjectInit(Model.Wbs_UnitProjectInit unitProjectInit)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Wbs_UnitProjectInit newUP = db.Wbs_UnitProjectInit.First(e => e.UnitProjectCode == unitProjectInit.UnitProjectCode);

            newUP.UnitProjectName = unitProjectInit.UnitProjectName;
            newUP.Remark = unitProjectInit.Remark;
            db.SubmitChanges();
        }

        /// <summary>
        /// 根据Id删除单位工程/子单位工程信息
        /// </summary>
        /// <param name="userId"></param>
        public static void DeleteUnitProjectInit(string unitProjectCode)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Wbs_UnitProjectInit UP = db.Wbs_UnitProjectInit.First(e => e.UnitProjectCode == unitProjectCode);
            db.Wbs_UnitProjectInit.DeleteOnSubmit(UP);
            db.SubmitChanges();
        }

        /// <summary>
        /// 根据Id删除所有子级单位工程/子单位工程信息
        /// </summary>
        /// <param name="userId"></param>
        public static void DeleteUnitProjectInitBySuperUnitProject(string superUnitProject)
        {
            Model.SGGLDB db = Funs.DB;
            var q = from x in db.Wbs_UnitProjectInit where x.SuperUnitProject == superUnitProject select x;
            db.Wbs_UnitProjectInit.DeleteAllOnSubmit(q);
            db.SubmitChanges();
        }
    }
}