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
            });
        }
Exemplo n.º 2
0
        public async Task ApproveRequestAsync(int id)
        {
            UniversityCreateRequest request = await requestsRepository.GetByIdAsync(id);

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

            UniversityCreateRequestViewDTO registerDto = mapper.Map <UniversityCreateRequestViewDTO>(request);
            UniversityCreationResultDTO    result      = await universityRegistrationService
                                                         .CreateUniversityAsync(registerDto);

            // TODO: load html letter template and fill it in
            await emailService.SendAsync(
                receiver : result.AdminEmail,
                subject : $"{result.UniversityName} registration",
                bodyHtml : "Your university is registered! Use these credentials to sign in to the system:" +
                $"<br>Email: {result.AdminEmail}<br>Password: {result.AdminPassword}");

            requestsRepository.Remove(request);
            await requestsRepository.SaveChangesAsync();
        }