Example #1
0
        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, ""));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
 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);
 }
Example #5
0
        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
        }