예제 #1
0
        internal override async Task <User> AuthenticateUser(string email, string password)
        {
            IdentityUser identityUser = await _userManager.FindByEmailAsync(email);

            SignInResult result = await _signInManager.CheckPasswordSignInAsync(identityUser, password, false);

            if (!result.Succeeded)
            {
                throw new ConduitUnauthorizedException($"Failed to sign in {email}");
            }
            UserPersonalizationDAO userPersonalization = _userPersonalizationRepository.GetUserPersonalization(identityUser.Id);

            return(new User(identityUser.Email, GenerateJWTToken(identityUser), identityUser.UserName, userPersonalization.Bio, userPersonalization.Image));
        }
        public override async Task <Profile> GetProfile(String username, String authedUsername = null)
        {
            Profile      profile     = new Profile(null, null, null, false);
            IdentityUser profileUser = null;

            try
            {
                profileUser = await _userManager.FindByNameAsync(username);

                profile.Username = profileUser.UserName;
                UserPersonalizationDAO userPersonalization = _userPersonalizationRepository.GetUserPersonalization(profileUser.Id);
                profile.Bio   = userPersonalization.Bio;
                profile.Image = userPersonalization.Image;
            } catch (Exception ex)
            {
                throw ex;
            }
            if (null != authedUsername)
            {
                try
                {
                    IdentityUser authedUser = await _userManager.FindByNameAsync(authedUsername);

                    string authedUserId = authedUser.Id;
                    profile.Following = _userIsFollowingRepository.IsUserFollowing(authedUserId, profileUser.Id);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(profile);
        }