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;

namespace BLL
{
    public static class Project_SysSetService
    {
        public static bool? IsAuto(string setId, string projectId)
        {
            var q = from x in Funs.DB.Project_Sys_Set where x.SetId == setId && x.ProjectId == projectId select x;
            return q.First().IsAuto;
        }

        public static Model.Project_Sys_Set GetSysSetBySetId(string setId, string projectId)
        {
            return Funs.DB.Project_Sys_Set.Where(x => x.SetId == setId && x.ProjectId == projectId).FirstOrDefault();
        }
        public static Model.Project_Sys_Set GetSysSetBySetName(string setName, string projectId)
        {
            return Funs.DB.Project_Sys_Set.Where(x => x.SetName == setName && x.ProjectId == projectId).FirstOrDefault();
        }
        /// <summary>
        /// 增加系统变量
        /// </summary>
        /// <param name="user">系统变量</param>
        public static void AddSet(Model.Project_Sys_Set set)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Project_Sys_Set newSet = new Model.Project_Sys_Set();
            newSet.SetId = set.SetId;
            newSet.ProjectId = set.ProjectId;
            newSet.SetName = set.SetName;
            newSet.IsAuto = set.IsAuto;
            newSet.SetValue = set.SetValue;

            db.Project_Sys_Set.InsertOnSubmit(newSet);
            db.SubmitChanges();
        }

        /// <summary>
        /// 修改系统变量
        /// </summary>
        /// <param name="user">系统变量</param>
        public static void UpdateSet(Model.Project_Sys_Set set)
        {
            Model.SGGLDB db = Funs.DB;
           var newSet = db.Project_Sys_Set.FirstOrDefault(e => e.SetId == set.SetId && e.ProjectId == set.ProjectId);
            if (newSet != null)
            {
                newSet.IsAuto = set.IsAuto;
                newSet.SetValue = set.SetValue;
                db.SubmitChanges();
            }
        }

        public static void InsertHjglInit(string projectId)
        {
            for (int i = 1; i <= 8; i++)
            {
                Model.Project_Sys_Set newSet = new Model.Project_Sys_Set
                {
                    SetId = i.ToString(),
                    ProjectId = projectId
                };

                if (i == 1)
                {
                    newSet.SetName = "焊接日报编号";
                    newSet.IsAuto = true;
                }
                if (i == 2)
                {
                    newSet.SetName = "点口编号";
                    newSet.IsAuto = true;
                }
                if (i == 3)
                {
                    newSet.SetName = "无损检测委托单";
                    newSet.IsAuto = false;
                }
                if (i == 4)
                {
                    newSet.SetName = "是否监理版本";
                    newSet.IsAuto = true;
                }
                if (i == 5)
                {
                    newSet.SetName = "检测单拍片数是否需自动生成";
                    newSet.IsAuto = false;
                }
                if (i ==6)
                {
                    newSet.SetName = "是否允许焊接日报导入";
                    newSet.IsAuto = true;
                }
                if (i == 7)
                {
                    newSet.SetName = "一个委托单是否只对应一条管线";
                    newSet.IsAuto = false;
                }
                if (i == 8)
                {
                    newSet.SetName = "引用PDMS模板";
                    newSet.IsAuto = false;
                }
                AddSet(newSet);
            }
        }

        /// <summary>
        ///  项目环境设置
        /// </summary>
        /// <param name="getSet"></param>
        public static void SaveProjectSysSet(Project_Sys_Set getSet)
        {
            var updateSet = Funs.DB.Project_Sys_Set.FirstOrDefault(e => e.SetId == getSet.SetId && e.ProjectId == getSet.ProjectId);
            if (updateSet != null)
            {
                updateSet.IsAuto = getSet.IsAuto;
                updateSet.SetValue = getSet.SetValue;
                Funs.DB.SubmitChanges();
            }
            else
            {
                Model.Project_Sys_Set newSet = new Project_Sys_Set
                {
                    SetId = getSet.SetId,
                    ProjectId = getSet.ProjectId,
                    SetName = getSet.SetName,
                    IsAuto = getSet.IsAuto,
                    SetValue = getSet.SetValue
                };

                Funs.DB.Project_Sys_Set.InsertOnSubmit(newSet);
                Funs.DB.SubmitChanges();
            }
        }
    }
}