/// <summary>
        /// Get a specific project
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Project GetProjectById(int id)
        {
            ProjectEntity projectEntity = _projectDao.Query(new ProjectEntity()
            {
                Id = id
            }).FirstOrDefault();
            List <UserEntity> userEntitys = _userDao.Query().ToList();

            Project project = projectEntity.ObjectConvert <Project>();

            if (project != null)
            {
                var relations = _projectDao.GetRelationByProjectId(project.Id);

                List <User> developers = new List <User>();
                List <User> generals   = new List <User>();
                // 取得該 project 下的 developer
                foreach (var r in relations)
                {
                    User tmp = userEntitys.Find(u => u.Id == r.UserId).ObjectConvert <User>();
                    if (r.ProjectCharactorId == 1) //manager
                    {
                        project.Manager = tmp;
                    }
                    else if (r.ProjectCharactorId == 2) //developer
                    {
                        developers.Add(tmp);
                    }
                    else if (r.ProjectCharactorId == 3) // general
                    {
                        generals.Add(tmp);
                    }
                }
                project.Developers = developers;
                project.Generals   = generals;
            }
            return(project);
        }