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

namespace BLL
{
   public class OneTimeContractManagementService
    {
        /// <summary>
        /// 根据主键获取Contract Management
        /// </summary>
        /// <param name="contractManagementId"></param>
        /// <returns></returns>
        public static Model.EMC_OneTimeContractManagement GetOneTimeContractManagementById(string fileId)
        {
            return Funs.DB.EMC_OneTimeContractManagement.FirstOrDefault(e => e.FileId == fileId);
        }

        /// <summary>
        /// 添加Contract Management
        /// </summary>
        /// <param name="contractManagement"></param>
        public static void AddOneTimeContractManagement(Model.EMC_OneTimeContractManagement contractManagement)
        {
            Model.EMC_OneTimeContractManagement newContractManagement = new Model.EMC_OneTimeContractManagement();
            newContractManagement.FileId = contractManagement.FileId;
            newContractManagement.OneTimeContractsId = contractManagement.OneTimeContractsId;
            newContractManagement.FileName = contractManagement.FileName;
            newContractManagement.FileTypeId = contractManagement.FileTypeId;
            newContractManagement.FileTypeCode = contractManagement.FileTypeCode;
            newContractManagement.UploadMan = contractManagement.UploadMan;
            newContractManagement.UploadDate = contractManagement.UploadDate;
            newContractManagement.Remark = contractManagement.Remark;
            newContractManagement.AttachUrl = contractManagement.AttachUrl;

            Funs.DB.EMC_OneTimeContractManagement.InsertOnSubmit(newContractManagement);
            Funs.DB.SubmitChanges();
        }

        /// <summary>
        /// 修改Contract Management
        /// </summary>
        /// <param name="contractManagement"></param>
        public static void UpdateOneTimeContractManagement(Model.EMC_OneTimeContractManagement contractManagement)
        {
            Model.EMC_OneTimeContractManagement newContractManagement = Funs.DB.EMC_OneTimeContractManagement.FirstOrDefault(e => e.FileId == contractManagement.FileId);
            if (newContractManagement != null)
            {
                newContractManagement.FileName = contractManagement.FileName;
                //newContractManagement.FileTypeId = contractManagement.FileTypeId;
                //newContractManagement.FileTypeCode = contractManagement.FileTypeCode;
                newContractManagement.UploadMan = contractManagement.UploadMan;
                newContractManagement.UploadDate = contractManagement.UploadDate;
                //newContractManagement.Remark = contractManagement.Remark;
                newContractManagement.AttachUrl = contractManagement.AttachUrl;
                Funs.DB.SubmitChanges();
            }
        }

        /// <summary>
        /// 根据主键删除Contract Management
        /// </summary>
        /// <param name="id"></param>
        public static void DeleteOneTimeContractManagementById(string fileId)
        {
            Model.EMC_OneTimeContractManagement con = Funs.DB.EMC_OneTimeContractManagement.FirstOrDefault(e => e.FileId == fileId);
            if (con != null)
            {
                Funs.DB.EMC_OneTimeContractManagement.DeleteOnSubmit(con);
                Funs.DB.SubmitChanges();
            }
        }

        /// <summary>
        /// 根据合同Id获取相关附件信息
        /// </summary>
        /// <param name="oneTimeContractsId"></param>
        /// <returns></returns>
        public static List<Model.EMC_OneTimeContractManagement> GetOneTimeContractManagementByOneTimeId(string oneTimeContractsId)
        {
            return (from x in Funs.DB.EMC_OneTimeContractManagement where x.OneTimeContractsId == oneTimeContractsId select x).ToList();
        }

        /// <summary>
        /// 根据合同主键删除相关附件
        /// </summary>
        /// <param name="oneTimeContractsId"></param>
        public static void DeleteOneTimeContractManagementList(string oneTimeContractsId)
        {
            var q = (from x in Funs.DB.EMC_OneTimeContractManagement where x.OneTimeContractsId == oneTimeContractsId select x).ToList();
            if (q != null)
            {
                Funs.DB.EMC_OneTimeContractManagement.DeleteAllOnSubmit(q);
                Funs.DB.SubmitChanges();
            }
        }
    }
}