using Model;
using System;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
    /// 
    /// 自定义周
    /// 
    public class WeekItemService
    {
        /// 
        /// 根据主键获取自定义周情况
        /// 
        /// 
        /// 
        public static Model.JDGL_WeekItem GetWeekItemById(string WeekId)
        {
            Model.SGGLDB db = Funs.DB;
            return db.JDGL_WeekItem.FirstOrDefault(e => e.WeekId == WeekId);
        }
        /// 
        /// 根据项目Id和周号查询
        /// 
        /// 
        /// 
        /// 
        public static Model.JDGL_WeekItem GetWeekItemByProjectIdAndWeekNo(string ProjectId, int WeekNo)
        {
            Model.SGGLDB db = Funs.DB;
            return db.JDGL_WeekItem.FirstOrDefault(e => e.ProjectId == ProjectId && e.WeekNo == WeekNo);
        }
        /// 
        /// 根据当前时间获取所在周
        /// 
        /// 
        /// 
        public static Model.JDGL_WeekItem GetWeekItemByDateNow(string ProjectId)
        {
            Model.SGGLDB db = Funs.DB;
            return db.JDGL_WeekItem.FirstOrDefault(e => e.ProjectId == ProjectId && e.StartDate < DateTime.Now && e.EndDate > DateTime.Now);
        }
        /// 
        /// 添加自定义周情况
        /// 
        /// 
        public static void AddWeekItem(Model.JDGL_WeekItem WeekItem)
        {
            Model.SGGLDB db = Funs.DB;
            Model.JDGL_WeekItem newWeekItem = new Model.JDGL_WeekItem
            {
                WeekId = WeekItem.WeekId,
                ProjectId = WeekItem.ProjectId,
                WeekNo = WeekItem.WeekNo,
                StartDate = WeekItem.StartDate,
                EndDate = WeekItem.EndDate,
                CompileMan = WeekItem.CompileMan,
                CompileDate = WeekItem.CompileDate,
            };
            db.JDGL_WeekItem.InsertOnSubmit(newWeekItem);
            db.SubmitChanges();
        }
        /// 
        /// 修改自定义周情况
        /// 
        /// 
        public static void UpdateWeekItem(Model.JDGL_WeekItem WeekItem)
        {
            Model.SGGLDB db = Funs.DB;
            Model.JDGL_WeekItem newWeekItem = db.JDGL_WeekItem.FirstOrDefault(e => e.WeekId == WeekItem.WeekId);
            if (newWeekItem != null)
            {
                newWeekItem.WeekNo = WeekItem.WeekNo;
                newWeekItem.StartDate = WeekItem.StartDate;
                newWeekItem.EndDate = WeekItem.EndDate;
                newWeekItem.CompileMan = WeekItem.CompileMan;
                newWeekItem.CompileDate = WeekItem.CompileDate;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除自定义周情况
        /// 
        /// 
        public static void DeleteWeekItemById(string WeekId)
        {
            Model.SGGLDB db = Funs.DB;
            var q = (from x in db.JDGL_WeekItem where x.WeekId == WeekId select x).FirstOrDefault();
            if (q != null)
            {
                db.JDGL_WeekItem.DeleteOnSubmit(q);
                db.SubmitChanges();
            }
        }
        /// 
        /// 获取所有自定义周List
        /// 
        /// 
        /// 
        public static List GetWeekItemList(string ProjectId)
        {
            Model.SGGLDB db = Funs.DB;
            return (from x in db.JDGL_WeekItem where x.ProjectId == ProjectId orderby x.WeekNo descending select x).ToList();
        }
        /// 
        /// 获取自定义周下拉框
        /// 
        /// 
        /// 
        /// 
        public static void InitWeekItemDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease)
        {
            dropName.DataValueField = "WeekNo";
            dropName.DataTextField = "WeekNo";
            dropName.DataSource = GetWeekItemList(projectId);
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
    }
}