示例#1
0
        /// <summary>
        /// 获取用户个人信息
        /// </summary>
        public GetProfileDTO GetProfile()
        {
            GetProfileDTO profileDTO = null;
            var           userid     = HttpContext.Current.User.Identity.Name;

            using (var db = new AspodesDB())
            {
                var user = db.Users.FirstOrDefault(c => c.UserId == userid);
                if (user != null)
                {
                    profileDTO = Mapper.Map <GetProfileDTO>(user.Person);

                    if (!string.IsNullOrEmpty(user.Person.EducationHistor))
                    {
                        profileDTO.EducationList = JsonConvert
                                                   .DeserializeObject <List <EducationDTO> >(user.Person.EducationHistor)
                                                   .OrderBy(c => c.BeginTime)
                                                   .ThenBy(c => c.EndTime)
                                                   .ToList();
                    }
                    if (!string.IsNullOrEmpty(user.Person.WorkingHistory))
                    {
                        profileDTO.WorkingList = JsonConvert
                                                 .DeserializeObject <List <WorkingDTO> >(user.Person.WorkingHistory)
                                                 .OrderBy(c => c.BeginTime)
                                                 .ThenBy(c => c.EndTime)
                                                 .ToList();
                    }
                    if (!string.IsNullOrEmpty(user.Person.Achievements))
                    {
                        profileDTO.AchievementList = JsonConvert
                                                     .DeserializeObject <List <AchievementDTO> >(user.Person.Achievements)
                                                     .OrderBy(c => c.AchievementTime)
                                                     .ThenBy(c => c.Name)
                                                     .ToList();
                    }

                    //判断是否为专家
                    var expertInfo = db.Authorizes.FirstOrDefault(c => c.UserId == userid && c.RoleId == 5);
                    if (expertInfo != null)
                    {
                        profileDTO.Expert = true;
                    }
                    else
                    {
                        profileDTO.Expert = false;
                    }
                }
                else
                {
                    throw new NotFoundException("找不到用户!");
                }
                return(profileDTO);
            }
        }
        public async Task <IActionResult> GetProfile([FromQuery] GetProfileDTO getProfileDTO)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }
                var user  = userManager.Users.FirstOrDefault(u => u.Email == getProfileDTO.Email);
                var roles = await userManager.GetRolesAsync(user);

                var roleId = await roleManager.FindByNameAsync(roles.SingleOrDefault());

                if (roleId.Id == getProfileDTO.Role.ToString())
                {
                    var res = new ProfileDTO
                    {
                        Email           = user.Email,
                        FirstName       = user.FirstName,
                        LastName        = user.LastName,
                        Role            = getProfileDTO.Role,
                        Gender          = user.Gender,
                        DateOfBirth     = user.DateOfBirth,
                        PhoneNumber     = user.PhoneNumber,
                        LinkedInProfile = user.LinkedInProfile,
                        Status          = user.Status,
                        Experience      = user.Experience
                    };
                    // return newly formatted data as -- res
                    return(Created("getUser",
                                   new { Message = "User data obtained successfully!", user = res }));
                }
                return(NotFound(getProfileDTO));
            }
            catch (Exception e)
            {
                throw;
            }
        }