public async Task <bool> ResetPassword(UserDTO userDTO) { var existedUser = await database.UserRepository.GetEntityByIdAsync(userDTO.Id); if (existedUser == null) { return(false); } string newPass = RandomNumbers.Generate(); EmailSender sender = new EmailSender($"Hello, {userDTO.Firstname}." + $" Your new password: <br>" + $" <b>{newPass}</b> <br> " + $" If you want, you can change it in your profile. <br> " + $" Have a nice day :) "); await sender.SendAsync("Reset password on BookingSector", userDTO.Email, $"{userDTO.Lastname} {userDTO.Firstname}"); existedUser.Password = SHA256Hash.Compute(newPass); var updatedUser = database.UserRepository.UpdateEntity(existedUser); bool isSaved = await database.SaveAsync(); return(isSaved ? true : false); }
public async Task <UserDTO> InsertUserAsync(UserDTO userDTO) { // Check email string inputEmail = userDTO.Email.Trim(); var existingEmail = await GetUserByEmailAsync(inputEmail); if (existingEmail != null) { throw new HttpStatusCodeException(HttpStatusCode.Conflict, $"User with email: {inputEmail}, Already exists."); } // Password generate string inputPassword = (IsNullOrEmpty(userDTO.Password)) ? RandomNumbers.Generate() : userDTO.Password; // Get data var insertUser = mapper.Map <UserDTO, User>(userDTO); insertUser.Password = SHA256Hash.Compute(inputPassword); // Update user (from guest) var existingUser = await database.UserRepository .GetByCondition(x => x.Phone == userDTO.Phone) .FirstOrDefaultAsync(); // User data after update/insert User insertedUser = new User(); if (existingUser != null && existingUser.RoleId == (int)UserRolesEnum.Guest) { existingUser.Email = userDTO.Email; existingUser.Role.Id = (int)UserRolesEnum.User; existingUser.Password = insertUser.Password; insertedUser = database.UserRepository.UpdateEntity(existingUser); } else { insertUser.RoleId = (int)UserRolesEnum.User; insertedUser = await database.UserRepository.InsertEntityAsync(insertUser); } bool isSaved = await database.SaveAsync(); if (!isSaved) { return(null); } // Send email await SendEmail(insertedUser, insertUser, inputEmail); return(mapper.Map <User, UserDTO>(insertedUser)); }
public bool IsPasswordTheSame(User user, string password) { var hashedPassword = SHA256Hash.Compute(password); return(hashedPassword .Zip(user.Password, (a, b) => a == b) .Contains(false) == false); }
public async Task <bool> CheckPasswords(string password, int id) { var entity = await database.UserRepository.GetEntityByIdAsync(id); byte[] passToCheck = SHA256Hash.Compute(password); return(entity.Password.SequenceEqual(passToCheck)); }
public async Task <UserDTO> UpdateUserPassById(int id, UserDTO userDTO) { var existedUser = await database.UserRepository.GetEntityByIdAsync(id); if (existedUser == null) { return(null); } existedUser.Password = SHA256Hash.Compute(userDTO.Password); var updatedUser = database.UserRepository.UpdateEntity(existedUser); bool isSaved = await database.SaveAsync(); return(isSaved ? mapper.Map <User, UserDTO>(updatedUser) : null); }
public async Task <UserDTO> InsertUserAsync(UserDTO userDTO) { // Check email string inputEmail = userDTO.Email.Trim(); var existingEmail = await GetUserByEmailAsync(inputEmail); if (existingEmail != null) { throw new HttpException(HttpStatusCode.Conflict, $"Користувач з поштою: {inputEmail}, вжє існує."); } // Password generate string inputPassword = (IsNullOrEmpty(userDTO.Password)) ? RandomNumbers.Generate() : userDTO.Password; // Get data var insertUser = mapper.Map <UserDTO, User>(userDTO); insertUser.Password = SHA256Hash.Compute(inputPassword); // User data after update/insert User insertedUser; insertUser.RoleId = (int)UserRolesEnum.USER; insertedUser = await database.UserRepository.InsertAsync(insertUser); bool isSaved = await database.SaveAsync(); if (!isSaved) { return(null); } //Send email await SendEmail(insertedUser, insertUser, inputEmail); return(mapper.Map <User, UserDTO>(insertedUser)); }
public static List <User> CreateUsers() { return(new List <User>() { new User { Id = 1, Firstname = "User 1", Lastname = "testUserSurname", Phone = "8888888888", RoleId = 2, Password = SHA256Hash.Compute("12345"), Email = "*****@*****.**", Photo = null, CreateDate = new DateTime(2019, 12, 28, 10, 20, 0), CreateUserId = 1, ModDate = new DateTime(2019, 12, 28, 10, 30, 0), ModUserId = 2 }, new User { Id = 2, Firstname = "User 2", Lastname = "testUserSurname", Phone = "7777777777", RoleId = 2, Password = SHA256Hash.Compute("qwe123"), Email = "*****@*****.**", Photo = null, CreateDate = new DateTime(2019, 12, 28, 10, 20, 0), CreateUserId = 1, ModDate = new DateTime(2019, 12, 28, 10, 30, 0), ModUserId = 2 }, new User { Id = 3, Firstname = "User 3", Lastname = "testUserSurname", Phone = "9999999999", RoleId = 2, Password = SHA256Hash.Compute("blabla228"), Email = "*****@*****.**", Photo = null, CreateDate = new DateTime(2019, 12, 28, 10, 20, 0), CreateUserId = 1, ModDate = new DateTime(2019, 12, 28, 10, 30, 0), ModUserId = 2 }, new User { Id = 4, Firstname = "User 4", Lastname = "testUserSurname", Phone = "9999999999", RoleId = 2, Password = SHA256Hash.Compute("dhsrtjsh5yae"), Email = "*****@*****.**", Photo = null, CreateDate = new DateTime(2019, 12, 28, 10, 20, 0), CreateUserId = 1, ModDate = new DateTime(2019, 12, 28, 10, 30, 0), ModUserId = 2 }, new User { Id = 5, Firstname = "User 5", Lastname = "testUserSurname123", Phone = "6666666666", RoleId = 2, Password = SHA256Hash.Compute("1345123"), Email = "*****@*****.**", Photo = null, CreateDate = new DateTime(2019, 12, 28, 10, 20, 0), CreateUserId = 1, ModDate = new DateTime(2019, 12, 28, 10, 30, 0), ModUserId = 2 }, new User { Id = 6, Firstname = "User 6", Lastname = "testUserSurname", Phone = "9999999999", RoleId = 2, Password = SHA256Hash.Compute("dxhsh34"), Email = "*****@*****.**", Photo = null, CreateDate = new DateTime(2019, 12, 28, 10, 20, 0), CreateUserId = 1, ModDate = new DateTime(2019, 12, 28, 10, 30, 0), ModUserId = 2 }, new User { Id = 7, Firstname = "User 7", Lastname = "testUserSurname", Phone = "9999999999", RoleId = 2, Password = SHA256Hash.Compute("ztfjrxh5rhrfxhxth"), Email = "*****@*****.**", Photo = null, CreateDate = new DateTime(2019, 12, 28, 10, 20, 0), CreateUserId = 1, ModDate = new DateTime(2019, 12, 28, 10, 30, 0), ModUserId = 2 } }); }