using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BLL
{
    public static class ForeignBreakdownProjectService
    {
        /// <summary>
        /// 根据主键获取分项信息
        /// </summary>
        /// <param name="breakdownProjectId"></param>
        /// <returns></returns>
        public static Model.WBS_ForeignBreakdownProject GetForeignBreakdownProjectById(string breakdownProjectId)
        {
            return Funs.DB.WBS_ForeignBreakdownProject.FirstOrDefault(e => e.BreakdownProjectId == breakdownProjectId);
        }

        /// <summary>
        /// 添加分项
        /// </summary>
        /// <param name="Installation"></param>
        public static void AddForeignBreakdownProject(Model.WBS_ForeignBreakdownProject breakdown)
        {
            Model.WBS_ForeignBreakdownProject newBreakdown = new Model.WBS_ForeignBreakdownProject();
            newBreakdown.BreakdownProjectId = breakdown.BreakdownProjectId;
            newBreakdown.BreakdownCode = breakdown.BreakdownCode;
            newBreakdown.BreakdownName = breakdown.BreakdownName;
            newBreakdown.ProjectId = breakdown.ProjectId;
            newBreakdown.UnitWorkId = breakdown.UnitWorkId;
            newBreakdown.CNProfessionalId = breakdown.CNProfessionalId;
            newBreakdown.AttachUrl = breakdown.AttachUrl;
            newBreakdown.SortIndex = breakdown.SortIndex;
            newBreakdown.BreakdownDef = breakdown.BreakdownDef;
            newBreakdown.ModelURL = breakdown.ModelURL;
            newBreakdown.Remark = breakdown.Remark;

            Funs.DB.WBS_ForeignBreakdownProject.InsertOnSubmit(newBreakdown);
            Funs.DB.SubmitChanges();
        }

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="foreignBreakdownProject"></param>
        public static void UpdateForeignBreakdownProject(Model.WBS_ForeignBreakdownProject breakdown)
        {
            Model.WBS_ForeignBreakdownProject newBreakdown = Funs.DB.WBS_ForeignBreakdownProject.FirstOrDefault(e => e.BreakdownProjectId == breakdown.BreakdownProjectId);
            if (newBreakdown != null)
            {
                newBreakdown.BreakdownCode = breakdown.BreakdownCode;
                newBreakdown.BreakdownName = breakdown.BreakdownName;
                newBreakdown.AttachUrl = breakdown.AttachUrl;
                newBreakdown.SortIndex = breakdown.SortIndex;
                newBreakdown.BreakdownDef = breakdown.BreakdownDef;
                newBreakdown.ModelURL = breakdown.ModelURL;
                newBreakdown.Remark = breakdown.Remark;
                newBreakdown.IsSelected = breakdown.IsSelected;
                Funs.DB.SubmitChanges();
            }
        }

        /// <summary>
        /// 根据主键删除分项
        /// </summary>
        /// <param name="breakdownId"></param>
        public static void DeleteForeignBreakdownProjectById(string breakdownId)
        {
            Model.WBS_ForeignBreakdownProject breakdown = Funs.DB.WBS_ForeignBreakdownProject.FirstOrDefault(e => e.BreakdownProjectId == breakdownId);
            if (breakdown != null)
            {
                Funs.DB.WBS_ForeignBreakdownProject.DeleteOnSubmit(breakdown);
                Funs.DB.SubmitChanges();
            }
        }

        /// <summary>
        /// 判断分项编号是否存在
        /// </summary>
        /// <param name="breakdownCode"></param>
        /// <returns></returns>
        public static bool IsExistForeignBreakdownProjectCode(string breakdownCode, string breakdownId, string projectId)
        {
            Model.WBS_ForeignBreakdownProject m = Funs.DB.WBS_ForeignBreakdownProject.FirstOrDefault(e => e.BreakdownCode == breakdownCode && e.ProjectId == projectId && e.BreakdownProjectId != breakdownId);
            if (m != null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 判断分项名称是否存在
        /// </summary>
        /// <param name="professionalName"></param>
        /// <returns></returns>
        public static bool IsExistForeignProfessionalProjectName(string breakdownName, string breakdownId, string projectId)
        {
            Model.WBS_ForeignBreakdownProject m = Funs.DB.WBS_ForeignBreakdownProject.FirstOrDefault(e => e.BreakdownName == breakdownName && e.ProjectId == projectId && e.BreakdownProjectId != breakdownId);
            if (m != null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}