using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Web.UI.WebControls;
namespace BLL
{
    public class DivisionService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        public static int count
        {
            get;
            set;
        }
        /// 
        /// 定义变量
        ///                   
        private static IQueryable qq = from x in db.WBS_Division orderby x.SortIndex select x;
        /// 
        /// 获取项目列表
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable getListData(int startRowIndex, int maximumRows)
        {
            IQueryable q = qq;
            count = q.Count();
            if (count == 0)
            {
                return new object[] { "" };
            }
            return from x in q.Skip(startRowIndex).Take(maximumRows)
                   select new
                   {
                       x.DivisionId,
                       x.DivisionCode,
                   };
        }
        /// 
        /// 获取列表数
        /// 
        /// 
        /// 
        /// 
        public static int getListCount()
        {
            return count;
        }
        /// 
        /// 添加分部/子分部
        /// 
        /// 
        public static void AddDivision(Model.WBS_Division division)
        {
            Model.SGGLDB db = Funs.DB;
            Model.WBS_Division newDivision = new Model.WBS_Division();
            newDivision.DivisionId = division.DivisionId;
            newDivision.DivisionCode = division.DivisionCode;
            newDivision.DivisionName = division.DivisionName;
            newDivision.SortIndex = division.SortIndex;
            newDivision.SuperDivisionId = division.SuperDivisionId;
            newDivision.CNProfessionalId = division.CNProfessionalId;
            newDivision.SubItemType = division.SubItemType;
            db.WBS_Division.InsertOnSubmit(newDivision);
            db.SubmitChanges();
        }
        /// 
        /// 修改分部/子分部
        /// 
        /// 
        public static void UpdateDivision(Model.WBS_Division division)
        {
            Model.SGGLDB db = Funs.DB;
            Model.WBS_Division newDivision = db.WBS_Division.First(e => e.DivisionId == division.DivisionId);
            newDivision.DivisionCode = division.DivisionCode;
            newDivision.DivisionName = division.DivisionName;
            newDivision.SortIndex = division.SortIndex;
            newDivision.SuperDivisionId = division.SuperDivisionId;
            newDivision.CNProfessionalId = division.CNProfessionalId;
            newDivision.SubItemType = division.SubItemType;
            db.SubmitChanges();
        }
        /// 
        /// 删除一个分部/子分部信息
        /// 
        /// 
        public static void DeleteDivision(string divisionId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.WBS_Division division = db.WBS_Division.First(e => e.DivisionId == divisionId);
            db.WBS_Division.DeleteOnSubmit(division);
            db.SubmitChanges();
        }
        /// 
        /// 获取施工分部/子分部项
        /// 
        /// 
        public static ListItem[] GetDivisionNameList()
        {
            var q = (from x in Funs.DB.WBS_Division orderby x.SortIndex select x).ToList();
            ListItem[] list = new ListItem[q.Count()];
            for (int i = 0; i < q.Count(); i++)
            {
                list[i] = new ListItem(q[i].DivisionName ?? "", q[i].DivisionId.ToString());
            }
            return list;
        }
        /// 
        /// 根据主键返回一个分部/子分部信息
        /// 
        /// 分部/子分部编号
        /// 
        public static Model.WBS_Division GetDivisionById(string divisionId)
        {
            return Funs.DB.WBS_Division.FirstOrDefault(x => x.DivisionId == divisionId);
        }
        /// 
        /// 获取所有分部/子分部信息
        /// 
        /// 
        public static List GetAllDivisions()
        {
            return (from x in Funs.DB.WBS_Division select x).ToList();
        }
        /// 
        /// 判断分部/子分部编号是否存在
        /// 
        /// 
        /// 
        public static bool IsExistDivisionCode(string divisionCode, string divisionId)
        {
            Model.WBS_Division m = Funs.DB.WBS_Division.FirstOrDefault(e => e.DivisionCode == divisionCode && e.DivisionId != divisionId);
            if (m != null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        /// 
        /// 判断分部/子分部名称是否存在
        /// 
        /// 
        /// 
        public static bool IsExistProfessionalName(string divisionName, string divisionId)
        {
            Model.WBS_Division m = Funs.DB.WBS_Division.FirstOrDefault(e => e.DivisionName == divisionName && e.DivisionId != divisionId);
            if (m != null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}