예제 #1
0
        public static async Task<UserAccounts> RegisterUser(ToracGolfContext dbContext, SignUpEnteredDataBase signUpModel)
        {
            //go either get the ref season record or add it
            var refSeasonRecord = await SeasonDataProvider.RefSeasonAddOrGet(dbContext, signUpModel.CurrentSeason).ConfigureAwait(false);

            //user to add
            var userToAdd = new UserAccounts
            {
                StateId = Convert.ToInt32(signUpModel.HomeState),
                CreatedDate = DateTime.Now,
                CurrentSeasonId = refSeasonRecord.SeasonId,
                EmailAddress = signUpModel.Email,
                FirstName = signUpModel.FirstName,
                LastName = signUpModel.LastName,
                Password = signUpModel.Password
            };

            //go try to add the user
            dbContext.Users.Add(userToAdd);

            //go save the changes
            await dbContext.SaveChangesAsync().ConfigureAwait(false);

            //add the user season now
            await SeasonDataProvider.UserSeasonAdd(dbContext, userToAdd.UserId, refSeasonRecord).ConfigureAwait(false);

            //return the user now
            return await dbContext.Users.AsNoTracking().FirstAsync(x => x.UserId == userToAdd.UserId).ConfigureAwait(false);
        }
예제 #2
0
        private async Task LogUserIn(UserAccounts userLogInAttempt)
        {
            //log the attemtp
            Logger.LogInformation("Log In Attempt: User = {0}", userLogInAttempt.EmailAddress);

            var claims = new List<Claim>();

            claims.Add(new Claim(ClaimTypes.Hash, userLogInAttempt.UserId.ToString()));
            claims.Add(new Claim(ClaimTypes.Name, userLogInAttempt.FirstName + " " + userLogInAttempt.LastName));
            claims.Add(new Claim(ClaimTypes.Email, userLogInAttempt.EmailAddress));
            claims.Add(new Claim(ClaimTypes.StateOrProvince, userLogInAttempt.StateId.ToString()));

            claims.Add(new Claim(SecuritySettings.UserImageClaimUrl, CacheFactory.GetCacheItem<ImageFinder>(CacheKeyNames.UserImageFinder, Cache).FindImage(userLogInAttempt.UserId)));
            //claims.Add(new Claim(SecuritySettings.UserImageClaimUrl, "https://lh3.googleusercontent.com/--LDT0wSuaA8/AAAAAAAAAAI/AAAAAAAAAEU/jIcMb4MHAQE/s120-c/photo.jpg"));


            //sign the user in
            await HttpContext.Authentication.SignInAsync(SecuritySettings.SecurityType, new ClaimsPrincipal(new ClaimsIdentity(claims, SecuritySettings.SecurityType)));
        }