public bool Register(User user) { try { switch (user.UserRole) { case UserRole.Student: var student = _studentRepository.ReadStudentByEmail(user.Email); if (student != null) { student.FirstName = user.FirstName; student.LastName = user.LastName; student.PasswordHash = _hashService.HashPassword(user.PasswordHash); return(_studentRepository.UpdateStudent(student.Id, student)); } break; case UserRole.Lecturer: var lecturer = _lecturerRepository.ReadLecturerByEmail(user.Email); if (lecturer != null) { lecturer.FirstName = user.FirstName; lecturer.LastName = user.LastName; lecturer.PasswordHash = _hashService.HashPassword(user.PasswordHash); return(_lecturerRepository.UpdateLecturer(lecturer.Id, lecturer)); } break; case UserRole.Administrator: user.PasswordHash = _hashService.HashPassword(user.PasswordHash); return(_administratorRepository.CreateAdministrator(new Administrator { Email = user.Email, FirstName = user.FirstName, LastName = user.LastName, UserRole = user.UserRole, PasswordHash = user.PasswordHash })); default: return(false); } return(false); } catch (Exception e) { return(false); } }
public bool CreateAdministrator(Administrator administrator) { try { var tokenMap = Guid.NewGuid().ToString().Replace("-", "0"); if (administrator != null && _administratorRepository.CreateAdministrator(administrator)) { _mailService.SendRegisterMail(administrator.Email, $"{administrator.FirstName} {administrator.LastName}", administrator.UserRole.ToString(), tokenMap); return(true); } return(false); } catch (Exception e) { return(false); } }
public async Task <ActionResult <ReturnResponse> > PostAdministrator([FromBody] AdministratorRequest administratorRequest) { var dbTransaction = await _dataContext.Database.BeginTransactionAsync(); var result = await _administratorRepository.CreateAdministrator(administratorRequest); if (result.StatusCode == Utils.Success) { result.ObjectValue = _mapper.Map <AdministratorResponse>((Administrator)result.ObjectValue); await dbTransaction.CommitAsync(); return(StatusCode(StatusCodes.Status200OK, result.ObjectValue)); } else { await dbTransaction.RollbackAsync(); return(StatusCode(StatusCodes.Status400BadRequest, result)); } }