public async Task <DatabaseResponseWithoutData> UpdateCurrentUserAsync(CurrentUserModel user) { if (user != null) { if (!user.IsValid()) { string message = ""; user.GetErrorMessages().ForEach(error => message += error); return(new DatabaseResponseWithoutData(false, message)); } var currentUser = await _userRepository.GetUserAsync(user.Id); if (currentUser.Password != user.Password) { user.Password = PasswordHashingHelper.HashPassword(user.Password); } var newUser = _databaseMapper.ToUserFrom(user); try { await _userRepository.UpdateUserAsync(newUser); } catch (SQLiteException sqliteEx) { return(new DatabaseResponseWithoutData(false, sqliteEx.Message)); } catch (Exception ex) { return(new DatabaseResponseWithoutData(false, ex.Message)); } return(new DatabaseResponseWithoutData(true)); } return(new DatabaseResponseWithoutData(false, "")); }
public async Task <UserTable> GetLoginUserAsync(string email, string password) { var loginUser = await _connection.FindAsync <UserTable> (user => user.Email == email); var hashedPassword = PasswordHashingHelper.HashPassword(password); if (PasswordHashingHelper.ValidatePassword(password, loginUser.Password)) { await _connection.GetChildrenAsync(loginUser, true); return(loginUser); } return(null); }
private async Task <User> TryLoginAsync(CancellationToken cancelToken, LoginModel loginModel) { var usersWithSameUsername = await userRepository.GetUsersByUsernameAsync(cancelToken, loginModel.Username); if (!usersWithSameUsername.Any()) { return(null); } foreach (var user in usersWithSameUsername) { var hahsedPassword = PasswordHashingHelper.HashPassword(user.PasswordSalt, loginModel.Password); if (user.PasswordHash.CompareTo(hahsedPassword) == 0) { return(user); } } return(null); }
public Tokens(IUserRepository repo, ILogger <Tokens> logger, IMapper mapper, IOptions <AppSettingsConfigurationModel> settings, IHandleTokens tokenHandler) : base(repo, logger, mapper, settings, tokenHandler) { _passwordHashingHelper = new PasswordHashingHelper(AppSettings.Value.PasswordAdditive); }
public static void Initialize(MovieDBContext context) { context.Database.EnsureCreated(); // Look for any students. if (EnumerableExtensions.Any(context.Users)) { return; // DB has been seeded } var random = new Random(); #region User DataSeed var userList = new List <User>(); for (int i = 0; i < 10; i++) { var salt = PasswordHashingHelper.GenerateSalt(); var usernamePassword = "******" + i; userList.Add(new User { Username = usernamePassword, PasswordSalt = salt, PasswordHash = PasswordHashingHelper.HashPassword(salt, usernamePassword) }); } context.Users.AddRange(userList); context.SaveChanges(); userList = userList.OrderBy(u => u.Id).ToList(); var userIdMin = userList.First().Id; var userIdMax = userList.Last().Id; #endregion #region Movie DataSeed var movieList = DBSeedHelper.GetMovies(); context.Movies.AddRange(movieList); context.SaveChanges(); movieList = movieList.OrderBy(m => m.Id).ToList(); var movieIdMin = movieList.First().Id; var movieIdMax = movieList.Last().Id; #endregion #region Actor DataSeed var actorList = DBSeedHelper.GetActors(); context.Actors.AddRange(actorList); context.SaveChanges(); actorList = actorList.OrderBy(a => a.Id).ToList(); var actorIdMin = actorList.First().Id; var actorIdMax = actorList.Last().Id; #endregion #region MovieActor DataSeed var movieActorList = new List <MovieActor>(); for (int i = 0; i < movieList.Count; i++) { for (int j = 0; j < 2; j++) { var movieActorForAdd = new MovieActor { MovieId = movieList[i].Id, ActorId = random.Next(actorIdMin, actorIdMax + 1) }; if (movieActorList.Find(ma => ma.ActorId == movieActorForAdd.ActorId && ma.MovieId == movieActorForAdd.MovieId) == null) { movieActorList.Add(movieActorForAdd); } } } context.MovieActors.AddRange(movieActorList); context.SaveChanges(); #endregion #region MovieRating DataSeed var movieRatingsList = new List <MovieRatings>(); var allMovies = movieList.Count; var allUsers = userList.Count; for (int i = 0; i < allMovies * 3; i++) { var movieRatingForAdd = new MovieRatings { MovieId = random.Next(movieIdMin, movieIdMax + 1), UserId = random.Next(userIdMin, userIdMax + 1), Rating = random.Next(1, 6) }; if (movieRatingsList.Find(mr => mr.MovieId == movieRatingForAdd.MovieId && mr.UserId == movieRatingForAdd.UserId) == null) { movieRatingsList.Add(movieRatingForAdd); } } context.MovieRatings.AddRange(movieRatingsList); context.SaveChanges(); #endregion }