public ActionResult Edit(int id, [Bind("FirstName,LastName,Email,Password,PhoneNumber,UserRoleId")] JobFinderUser jobFinderUserNewData) { if (ModelState.IsValid) { try { JobFinderUser targetUser = _usersRepository.findUserById(id); targetUser.FirstName = jobFinderUserNewData.FirstName; targetUser.LastName = jobFinderUserNewData.LastName; targetUser.Email = jobFinderUserNewData.Email; targetUser.Password = _usersRepository.sha256_hash(jobFinderUserNewData.Password); targetUser.PhoneNumber = jobFinderUserNewData.PhoneNumber; targetUser.UserRoleId = jobFinderUserNewData.UserRoleId; targetUser.UserUpdatedAt = DateTime.Now; _usersRepository.editUser(targetUser); } catch (DbUpdateConcurrencyException) { if (!_usersRepository.UserExists(jobFinderUserNewData.UserId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["UserRoleId"] = new SelectList(_dbContext.UserRoles, "UserRoleId", "RoleName", jobFinderUserNewData.UserRoleId); ViewBag.SelectedNav = "Dashboard"; return(View(jobFinderUserNewData)); }
public ActionResult DeleteConfirmed(int id) { JobFinderUser jobFinderUser = _usersRepository.findUserById(id); _usersRepository.deleteUser(jobFinderUser, true); TempData["InfoMessage"] = $"User '{jobFinderUser.LastName} {jobFinderUser.FirstName}', with email address '{jobFinderUser.Email}' has been set as inactive and can not use the platform."; ViewBag.SelectedNav = "Dashboard"; return(RedirectToAction(nameof(Index))); }
public int addUser(JobFinderUser jobFinderUser) { jobFinderUser.Password = sha256_hash(jobFinderUser.Password); jobFinderUser.UserAddedAt = DateTime.Now; jobFinderUser.UserUpdatedAt = DateTime.Now; _dbContext.JobFinderUsers.Add(jobFinderUser); _dbContext.SaveChanges(); return(jobFinderUser.UserId); }
public async Task <JobFinderUser> FindByEmailAsync(StringValues userEmail) { JobFinderUser result = null; if (userEmail.Count >= 1) { result = await _readOnlyUnitOfWork.GetRepository <JobFinderUser>().Query().FirstOrDefaultAsync(x => x.Email.ToLower() == userEmail[0].ToLower()); } return(result); }
private async Task Handle(RegisterUserCommand command) { await HandleCommand(command, async uow => { var userRepository = uow.GetRepository <JobFinderUser> (); var salt = _passwordCryptoService.GenerateSalt(); var passwordHash = _passwordCryptoService.HashPassword(command.Password, salt); var user = JobFinderUser.Create(Guid.NewGuid(), command.Name, command.Surname, command.Email, passwordHash, salt, UserType.Client); userRepository.Add(user); await userRepository.SaveChangesAsync(); }); }
public ActionResult UndoDelete(int?id) { if (id == null) { return(NotFound()); } JobFinderUser jobFinderUser = _usersRepository.findUserById(id); _usersRepository.deleteUser(jobFinderUser, false); TempData["SuccessMessage"] = $"User '{jobFinderUser.LastName} {jobFinderUser.FirstName}', with email address '{jobFinderUser.Email}' has been set as active and can use the platform."; ViewBag.SelectedNav = "Dashboard"; return(RedirectToAction(nameof(Index))); }
private static async void SeedUser(string name, string surname, string email, string password, UserType userType, IPasswordCryptoService passwordCryptoService, JobFinderContext JobFinderContext) { var salt = passwordCryptoService.GenerateSalt(); var passwordHash = passwordCryptoService.HashPassword(password, salt); var user = JobFinderUser.Create(Guid.NewGuid(), name, surname, email, passwordHash, salt, userType); await JobFinderContext.Set <JobFinderUser>().AddAsync(user); }
public void deleteUser(JobFinderUser user, bool status) { if (status) { user.IsActive = false; } else { user.IsActive = true; } _dbContext.JobFinderUsers.Update(user); _dbContext.SaveChanges(); }
public async Task <bool> CheckPasswordAsync(JobFinderUser user, StringValues password) { var result = false; if (password.Count >= 1) { result = await _passwordCryptoService.IsCorrectAsync(password[0], user.Password, user.Salt); } if (result) { user.UpdateLastLoginDate(); await _unitOfWork.GetRepository <JobFinderUser>().SaveChangesAsync(); } return(result); }
public ActionResult Delete(int?id) { if (id == null) { return(NotFound()); } JobFinderUser jobFinderUser = _usersRepository.findUserById(id); if (jobFinderUser == null) { return(NotFound()); } ViewBag.SelectedNav = "Dashboard"; return(View(jobFinderUser)); }
public ActionResult Unapprove(int id) { JobFinderUser targetUser = _usersRepository.findUserById(id); if (targetUser != null) { targetUser.IsApproved = false; _usersRepository.editUser(targetUser); ViewBag.SelectedNav = "Dashboard"; TempData["InfoMessage"] = $"The recruiter having email address '{targetUser.Email}' has been unapproved and can't authenticate in the platform."; } else { ViewBag.SelectedNav = "Dashboard"; return(RedirectToAction("Index")); } return(RedirectToAction("Index")); }
public ActionResult Create([Bind("FirstName,LastName,Email,Password,PhoneNumber,UserRoleId")] JobFinderUser jobFinderUser) { if (ModelState.IsValid) { if (!_usersRepository.UserEmailExists(jobFinderUser.Email)) { _usersRepository.addUser(jobFinderUser); ViewBag.SelectedNav = "Dashboard"; return(RedirectToAction("Index")); } else { ModelState.AddModelError("", "Email already exists in database!"); } } ViewBag.SelectedNav = "Dashboard"; ViewData["UserRoleId"] = new SelectList(_dbContext.UserRoles, "UserRoleId", "RoleName", jobFinderUser.UserRoleId); return(View(jobFinderUser)); }
public ActionResult RegisterCandidate([Bind("FirstName, LastName, Email, Password, PhoneNumber")] JobFinderUser jobFinderUser) { if (ModelState.IsValid) { if (!_usersRepository.UserEmailExists(jobFinderUser.Email)) { jobFinderUser.IsApproved = true; jobFinderUser.IsActive = true; jobFinderUser.UserRoleId = 3; _usersRepository.addUser(jobFinderUser); ViewBag.Message = "Your account has been succesfully created. You may now log in."; return(RedirectToAction("Login")); } else { ModelState.AddModelError("", "Email already exists in database!"); } } ViewBag.SelectedNav = "Register"; return(View()); }
public ActionResult RegisterRecruiter([Bind("FirstName, LastName, Email, Password, PhoneNumber, Name, Description, StartDate")] RecruiterRegisterViewModel recruiterRegisterViewModel) { if (ModelState.IsValid) { if (!_usersRepository.UserEmailExists(recruiterRegisterViewModel.Email)) { JobFinderUser jobFinderUser = new JobFinderUser { Password = recruiterRegisterViewModel.Password, FirstName = recruiterRegisterViewModel.FirstName, LastName = recruiterRegisterViewModel.LastName, Email = recruiterRegisterViewModel.Email, PhoneNumber = recruiterRegisterViewModel.PhoneNumber, UserAddedAt = DateTime.Now, UserUpdatedAt = DateTime.Now, UserRoleId = 2, IsApproved = false, IsActive = true }; int newUserId = _usersRepository.addUser(jobFinderUser); if (_companiesRepository.CompanyExistsByName(recruiterRegisterViewModel.Name)) { Company company = _companiesRepository.GetCompanyByName(recruiterRegisterViewModel.Name); _companyUsersRepository.AssignUserToCompany(new CompanyUser { UserId = newUserId, CKCompanyId = company.CompanyId }); SendEmail(jobFinderUser.LastName + " " + jobFinderUser.FirstName, jobFinderUser.Email, company.Name); } else { Company company = new Company { Name = recruiterRegisterViewModel.Name, StartDate = recruiterRegisterViewModel.StartDate, Description = recruiterRegisterViewModel.Description }; int newCompanyId = _companiesRepository.AddCompany(company); _companyUsersRepository.AssignUserToCompany(new CompanyUser { UserId = newUserId, CKCompanyId = newCompanyId }); SendEmail(jobFinderUser.LastName + " " + jobFinderUser.FirstName, jobFinderUser.Email, company.Name); } ViewBag.Message = "Your account needs to be approved by the system administrator."; ViewBag.SelectedNav = "Home"; return(Redirect("/")); } else { ModelState.AddModelError("", "Email already exists in database!"); } } ViewBag.SelectedNav = "Register"; return(View()); }
public void editUser(JobFinderUser targetUser) { _dbContext.Update(targetUser); _dbContext.SaveChanges(); }