using EmitMapper;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
    public static class APIProjectService
    {
        /// 
        /// 根据userId获取用户信息
        /// 
        /// 
        /// 
        public static List geProjectsByUserId(string userId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                List projects = new List();
                if (CommonService.IsThisUnitLeaderOfficeOrManage(userId))
                {
                    projects = (from x in db.Base_Project
                                where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1
                                select x).ToList();
                }
                else
                {
                    projects = (from x in db.Project_ProjectUser
                                join y in db.Base_Project on x.ProjectId equals y.ProjectId
                                where x.UserId == userId && (y.ProjectState == null || y.ProjectState == BLL.Const.ProjectState_1)
                                && (x.IsPost == true || x.IsPost == null)
                                select y).ToList();
                }
                return ObjectMapperManager.DefaultInstance.GetMapper, List>().Map(projects);
            }
        }
        /// 
        /// 根据userId获取用户信息
        /// 
        /// 
        /// 
        public static List getALLProjectsByUserId(string userId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                var projects = (from x in db.Project_ProjectUser
                                join y in db.Base_Project on x.ProjectId equals y.ProjectId
                                where x.UserId == userId && (x.IsPost == true || x.IsPost == null)
                                orderby y.ProjectCode
                                select y).ToList();
                return ObjectMapperManager.DefaultInstance.GetMapper, List>().Map(projects);
            }
        }
        /// 
        /// 根据项目ID获取用户信息
        /// 
        /// 
        /// 
        public static Model.ProjectItem getProjectByProjectId(string projectId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                var getproject = db.Base_Project.FirstOrDefault(x => x.ProjectId == projectId);
                return ObjectMapperManager.DefaultInstance.GetMapper().Map(getproject);
            }
        }      
    }
}