using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
namespace BLL
{
    public class DocManageService
    {
 
        /// 
        /// 根据文档信息Id获取一个文档信息
        /// 
        /// 文档信息Id
        /// 一个文档信息实体
        public static Model.Doc_DocManage GetDocByDocId(string DocId)
        {
            return Funs.DB.Doc_DocManage.FirstOrDefault(x => x.DocId == DocId);
        }
        
        public static void AddDoc(Model.Doc_DocManage Doc)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Doc_DocManage newDoc = new Model.Doc_DocManage();
            newDoc.DocId = Doc.DocId;
            newDoc.DocCode = Doc.DocCode;
            newDoc.DocName = Doc.DocName;
            newDoc.DocTypeId = Doc.DocTypeId;
            newDoc.CNProfessionalId = Doc.CNProfessionalId;
            newDoc.ProjectId = Doc.ProjectId;
            newDoc.DocContent = Doc.DocContent;
            newDoc.SendUnitId = Doc.SendUnitId;
            newDoc.ReceivUnitIds = Doc.ReceivUnitIds;
            newDoc.CompileMan = Doc.CompileMan;
            newDoc.AcceptMan = Doc.AcceptMan;
            newDoc.CompileDate = Doc.CompileDate;
            newDoc.State = Doc.State;
            newDoc.AcceptMan= Doc.AcceptMan;
            newDoc.DepartId = Doc.DepartId;
            newDoc.FinishTime = Doc.FinishTime;
            newDoc.ProjectSubjectId = Doc.ProjectSubjectId;
            db.Doc_DocManage.InsertOnSubmit(newDoc);
            db.SubmitChanges();
        }
        /// 
        /// 修改文档信息信息
        /// 
        /// 文档信息实体
        public static void UpdateDoc(Model.Doc_DocManage Doc)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Doc_DocManage newDoc = db.Doc_DocManage.First(e => e.DocId == Doc.DocId);
            newDoc.DocCode = Doc.DocCode;
            newDoc.DocName = Doc.DocName;
            newDoc.DocTypeId = Doc.DocTypeId;
            newDoc.CNProfessionalId = Doc.CNProfessionalId;
            newDoc.DocContent = Doc.DocContent;
            newDoc.SendUnitId = Doc.SendUnitId;
            newDoc.ReceivUnitIds = Doc.ReceivUnitIds;
            newDoc.State = Doc.State;
            newDoc.CompileMan = Doc.CompileMan;
            newDoc.AcceptMan= Doc.AcceptMan;
            newDoc.CompileDate = Doc.CompileDate;
            newDoc.AcceptMan=Doc.AcceptMan;
            newDoc.DepartId = Doc.DepartId;
            newDoc.FinishTime = Doc.FinishTime;
            newDoc.ProjectSubjectId = Doc.ProjectSubjectId;
            newDoc.CopyMan = Doc.CopyMan;
            db.SubmitChanges();
        }
        /// 
        /// 根据文档信息Id删除一个文档信息信息
        /// 
        /// 文档信息Id
        public static void DeleteDoc(string DocId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Doc_DocManage Doc = db.Doc_DocManage.First(e => e.DocId == DocId);
            db.Doc_DocManage.DeleteOnSubmit(Doc);
            db.SubmitChanges();
        }
        /// 
        /// 根据项目Id获取单位名称下拉选择项
        /// 
        /// 
        /// 
        public static ListItem[] GetDocStateList()
        {
            ListItem[] list = new ListItem[3];
            list[0] = new ListItem("待提交", BLL.Const.Doc_State_0);
            list[1] = new ListItem("进行中", BLL.Const.Doc_State_1);
            list[2] = new ListItem("已闭环", BLL.Const.Doc_State_2);
            return list;
        }
        /// 
        ///  文档状态下拉框
        /// 
        /// 下拉框名字
        /// 是否显示请选择
        public static void InitDocState(FineUIPro.DropDownList dropName, bool isShowPlease)
        {
            dropName.DataValueField = "Value";
            dropName.DataTextField = "Text";
            dropName.DataSource = GetDocStateList();
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        //
        //获取审批状态
        //
        //
        //
        public static string ConvertState(object state)
        {
            if (state != null)
            {
                if (state.ToString() == BLL.Const.Doc_State_0)
                {
                    return "待提交";
                }
                else if (state.ToString() == BLL.Const.Doc_State_1)
                {
                    return "进行中";
                }
                else if (state.ToString() == BLL.Const.Doc_State_2)
                {
                    return "已闭环";
                }
            }
            return "";
        }
        //
        //获取办理人姓名
        //
        //
        //
        public static string ConvertMan(object DocId)
        {
            if (DocId != null)
            {
                Model.Doc_DocManageApprove a = DocManageApproveService.GetDocManageApproveByDocId(DocId.ToString());
                if (a != null)
                {
                    if (a.ApproveMan != null)
                    {
                        return UserService.GetUserByUserId(a.ApproveMan).UserName;
                    }
                }
                else
                {
                    return "";
                }
            }
            return "";
        }
        /// 
        /// 根据id获取打印所需要的参数键值对
        /// 
        /// 
        /// 
        public static Dictionary GetPairs(string DocId)
        {
            Model.Doc_DocManage doc = DocManageService.GetDocByDocId(DocId);
            //txtDepart.Text=DepartService.getDepartNameById(doc.DepartId);
            string CompileDate = "";
            string FinishTime = "";
            if (doc.CompileDate != null)
            {
                CompileDate = string.Format("{0:d}", doc.CompileDate);
            }
            if (doc.FinishTime != null)
            {
                FinishTime = string.Format("{0:d}", doc.FinishTime);
            }
            Dictionary keyValuePairs = new Dictionary();
           /* keyValuePairs.Add("DocCode", doc.DocCode);
            keyValuePairs.Add("SendUnitName", BLL.UnitService.GetUnitNameByUnitId(doc.SendUnitId));
            keyValuePairs.Add("DocTypeName", BLL.DocTypeService.GetDocTypeNameById(doc.DocTypeId));
            keyValuePairs.Add("ProSubjectName", ProjectSubjectService.GetProjectSubjectNameById(doc.ProjectSubjectId));
            keyValuePairs.Add("CNProfessionalName", BLL.CNProfessionalService.GetCNProfessionalNameById(doc.CNProfessionalId));
            keyValuePairs.Add("CompileManName", BLL.UserService.GetUserNameByUserId(doc.CompileMan));
            keyValuePairs.Add("DocName", doc.DocName);
            keyValuePairs.Add("CompileDate", CompileDate);
            keyValuePairs.Add("FinishTime", FinishTime);
            keyValuePairs.Add("ReceivUnit", BLL.UnitService.getUnitNamesUnitIds(doc.ReceivUnitIds));
            keyValuePairs.Add("DocContent", doc.DocContent);*/
            return keyValuePairs;
        }
    }
}