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);
            }
        }
Esempio n. 2
0
        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));
            }
        }