using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace BLL
{
    /// 
    /// 资料接收登记
    /// 
    public static class DataReceivingService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        private static int count
        {
            get;
            set;
        }
        /// 
        /// 获取分页列表
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable GetListData(string projectId, string startDate, string endDate, string fileCode, string fileName, int startRowIndex, int maximumRows)
        {
            IQueryable q = from x in db.Comprehensive_DataReceiving
                                                              where x.ProjectId == projectId
                                                              orderby x.DataReceivingDate descending
                                                              select x;
            if (!string.IsNullOrEmpty(startDate) && !string.IsNullOrEmpty(endDate) && (Convert.ToDateTime(startDate) <= Convert.ToDateTime(endDate)))
            {
                q = q.Where(e => e.DataReceivingDate >= Convert.ToDateTime(startDate) && e.DataReceivingDate <= Convert.ToDateTime(endDate));
            }
            if (!string.IsNullOrEmpty(fileCode))
            {
                q = q.Where(e => e.FileCode.Contains(fileCode));
            }
            if (!string.IsNullOrEmpty(fileName))
            {
                q = q.Where(e => e.FileName.Contains(fileName));
            }
            count = q.Count();
            if (count == 0)
            {
                return new object[] { };
            }
            return from x in q.Skip(startRowIndex).Take(maximumRows)
                   select new
                   {
                       x.DataReceivingId,
                       x.ProjectId,
                       x.DataReceivingDate,
                       x.FileCode,
                       x.FileName,
                       SendUnit = BLL.UnitService.getUnitNamesUnitIds(x.SendUnit),
                       x.SendMan,
                       FileType = x.FileType == "1" ? "纸质" : "电子",
                       x.CopiesCount,
                       x.ReceivingMan,
                       x.FileHandler,
                       IsReply = x.IsReply == true ? "是" : "否",
                       x.ReplyCode,
                       x.ReplyDate,
                       x.Remark,
                       x.AttachUrl
                   };
        }
        /// 
        /// 
        /// 
        public static int GetListCount(string projectId, string startDate, string endDate, string fileCode, string fileName)
        {
            return count;
        }
        /// 
        /// 根据主键获取资料接收登记
        /// 
        /// 
        /// 
        public static Model.Comprehensive_DataReceiving GetDataReceivingById(string DataReceivingId)
        {
            return Funs.DB.Comprehensive_DataReceiving.FirstOrDefault(e => e.DataReceivingId == DataReceivingId);
        }
        /// 
        /// 添加资料接收登记
        /// 
        /// 
        public static void AddDataReceiving(Model.Comprehensive_DataReceiving DataReceiving)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_DataReceiving newDataReceiving = new Model.Comprehensive_DataReceiving();
            newDataReceiving.DataReceivingId = DataReceiving.DataReceivingId;
            newDataReceiving.ProjectId = DataReceiving.ProjectId;
            newDataReceiving.DataReceivingDate = DataReceiving.DataReceivingDate;
            newDataReceiving.FileCode = DataReceiving.FileCode;
            newDataReceiving.FileName = DataReceiving.FileName;
            newDataReceiving.SendUnit = DataReceiving.SendUnit;
            newDataReceiving.SendMan = DataReceiving.SendMan;
            newDataReceiving.FileType = DataReceiving.FileType;
            newDataReceiving.CopiesCount = DataReceiving.CopiesCount;
            newDataReceiving.ReceivingMan = DataReceiving.ReceivingMan;
            newDataReceiving.FileHandler = DataReceiving.FileHandler;
            newDataReceiving.IsReply = DataReceiving.IsReply;
            newDataReceiving.ReplyCode = DataReceiving.ReplyCode;
            newDataReceiving.ReplyDate = DataReceiving.ReplyDate;
            newDataReceiving.Remark = DataReceiving.Remark;
            newDataReceiving.AttachUrl = DataReceiving.AttachUrl;
            newDataReceiving.CompileMan = DataReceiving.CompileMan;
            newDataReceiving.CompileDate = DataReceiving.CompileDate;
            newDataReceiving.Status = DataReceiving.Status;
            db.Comprehensive_DataReceiving.InsertOnSubmit(newDataReceiving);
            db.SubmitChanges();
        }
        /// 
        /// 修改资料接收登记
        /// 
        /// 
        public static void UpdateDataReceiving(Model.Comprehensive_DataReceiving DataReceiving)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_DataReceiving newDataReceiving = db.Comprehensive_DataReceiving.FirstOrDefault(e => e.DataReceivingId == DataReceiving.DataReceivingId);
            if (newDataReceiving != null)
            {
                newDataReceiving.ProjectId = DataReceiving.ProjectId;
                newDataReceiving.DataReceivingDate = DataReceiving.DataReceivingDate;
                newDataReceiving.FileCode = DataReceiving.FileCode;
                newDataReceiving.FileName = DataReceiving.FileName;
                newDataReceiving.SendUnit = DataReceiving.SendUnit;
                newDataReceiving.SendMan = DataReceiving.SendMan;
                newDataReceiving.FileType = DataReceiving.FileType;
                newDataReceiving.CopiesCount = DataReceiving.CopiesCount;
                newDataReceiving.ReceivingMan = DataReceiving.ReceivingMan;
                newDataReceiving.FileHandler = DataReceiving.FileHandler;
                newDataReceiving.IsReply = DataReceiving.IsReply;
                newDataReceiving.ReplyCode = DataReceiving.ReplyCode;
                newDataReceiving.ReplyDate = DataReceiving.ReplyDate;
                newDataReceiving.Remark = DataReceiving.Remark;
                newDataReceiving.AttachUrl = DataReceiving.AttachUrl;
                newDataReceiving.Status = DataReceiving.Status;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除资料接收登记
        /// 
        /// 
        public static void DeleteDataReceiving(string dataReceivingId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_DataReceiving DataReceiving = db.Comprehensive_DataReceiving.FirstOrDefault(e => e.DataReceivingId == dataReceivingId);
            if (DataReceiving != null)
            {
                if (!string.IsNullOrEmpty(DataReceiving.AttachUrl))
                {
                    UploadAttachmentService.DeleteFile(Funs.RootPath, DataReceiving.AttachUrl);
                }
                db.Comprehensive_DataReceiving.DeleteOnSubmit(DataReceiving);
                db.SubmitChanges();
            }
        }
    }
}