public async Task <UniversityCreationResultDTO> CreateUniversityAsync(UniversityCreateRequestViewDTO createRequestDTO)
        {
            var university = new University
            {
                Name = createRequestDTO.UniversityName,
            };
            await universityRepository.AddAsync(university);

            await universityRepository.SaveChangesAsync();

            UniversityAdminRegistrationDTO adminRegisterRequest = new UniversityAdminRegistrationDTO
            {
                FirstName    = createRequestDTO.SubmitterFirstName,
                LastName     = createRequestDTO.SubmitterLastName,
                Email        = createRequestDTO.Email,
                Password     = passwordGenerator.GeneratePassword(),
                UniversityId = university.Id
            };
            await authService.RegisterUniversityAdminAsync(adminRegisterRequest);

            return(new UniversityCreationResultDTO
            {
                UniversityId = university.Id,
                UniversityName = university.Name,
                AdminEmail = adminRegisterRequest.Email,
                AdminPassword = adminRegisterRequest.Password
            });
        }
예제 #2
0
        public async Task RegisterUniversityAdminAsync(UniversityAdminRegistrationDTO request)
        {
            University university = await universityRepository.GetByIdAsync(request.UniversityId);

            if (university == null)
            {
                throw new BadRequestException("University doesn't exist!");
            }

            User universityAdminUser = await RegisterAsync(request);

            await usersRepository.AddUserToRoleAsync(universityAdminUser, RoleName.UNIVERSITY_ADMIN);

            await universityAdminRepository.AddAsync(new UniversityAdmin
            {
                UserId       = universityAdminUser.Id,
                UniversityId = request.UniversityId
            });

            await universityAdminRepository.SaveChangesAsync();
        }