private void SendActivationEmail(UserDto user, ActivationDto activation) { var email = new EmailRabbitMq { EmailAddress = user.Email, TemplateName = "ActivateAccount", Subject = "Activatie Eindhovense vriendjes", KeyWordValues = new List <EmailKeyWordValue> { new EmailKeyWordValue { Key = "Username", Value = user.Username }, new EmailKeyWordValue { Key = "ActivationCode", Value = activation.Code } } }; _publisher.Publish(new List <EmailRabbitMq> { email }, RabbitMqRouting.SendMail, RabbitMqExchange.MailExchange); }
public async Task <IHttpActionResult> Activation(ActivationDto activationData) { var operationResult = await devicesControllerHelper.ActivateDevice(activationData); if (operationResult.Status.HasFlag(ActivateDeviceStatus.DeviceNotFound)) { return(Content( HttpStatusCode.NotFound, new ErrorResponseDto() { Error = ErrorCode.InvalidRequest, Message = ErrorCode.InvalidRequest.Description(), Details = operationResult.Status.Description() } )); } if (!operationResult.Status.HasFlag(ActivateDeviceStatus.Success)) { return(Content( HttpStatusCode.BadRequest, new ErrorResponseDto() { Error = ErrorCode.InvalidRequest, Message = ErrorCode.InvalidRequest.Description(), Details = operationResult.Status.Description() } )); } return(Ok(operationResult.Content)); }
public async Task Delete(Guid uuid) { ActivationDto activation = await _context.Activation .FindAsync(uuid); _context.Activation.Remove(activation); await _context.SaveChangesAsync(); }
public async Task ActivateUser(string code) { ActivationDto activationDto = await _activationDal.Find(code); if (activationDto == null) { throw new KeyNotFoundException(); } await _disabledUserDal.Delete(activationDto.UserUuid); await _activationDal.Delete(activationDto.Uuid); }
/// <summary> /// Saves the user in the database /// </summary> /// <param name="user">The form data the user send</param> public async Task Register(User user) { if (!await UserModelValid(user) || user.Password.Length < 8) { throw new UnprocessableException(); } bool usernameOrEmailInUse = await _userDal.Exists(user.Username, user.Email); if (usernameOrEmailInUse) { throw new DuplicateNameException(); } bool databaseContainsUsers = await _userDal.Any(); var userDto = _mapper.Map <UserDto>(user); userDto.AccountRole = databaseContainsUsers ? AccountRole.User : AccountRole.SiteAdmin; userDto.Uuid = Guid.NewGuid(); var disabledUserDto = new DisabledUserDto { Reason = DisableReason.EmailVerificationRequired, UserUuid = userDto.Uuid, Uuid = Guid.NewGuid() }; var activationDto = new ActivationDto { Code = Guid.NewGuid().ToString(), UserUuid = userDto.Uuid, Uuid = Guid.NewGuid() }; await _disabledUserDal.Add(disabledUserDto); await _activationDal.Add(activationDto); var userRabbitMq = _mapper.Map <UserRabbitMqSensitiveInformation>(user); userRabbitMq.Uuid = userDto.Uuid; userRabbitMq.AccountRole = databaseContainsUsers ? AccountRole.User : AccountRole.SiteAdmin; _publisher.Publish(userRabbitMq, RabbitMqRouting.AddUser, RabbitMqExchange.AuthenticationExchange); await _userDal.Add(userDto); SendActivationEmail(userDto, activationDto); }
/// <summary> /// Activates the device. /// </summary> /// <param name="activationData">The activation data.</param> /// <returns></returns> public async Task <OperationResultDto <ActivationResponseDto, ActivateDeviceStatus> > ActivateDevice(ActivationDto activationData) { Device device = await deviceService.GetDevice(activationData.ActivationCode, DateTime.Parse(activationData.BirthDate)); if (device == null) { return(new OperationResultDto <ActivationResponseDto, ActivateDeviceStatus>() { Status = ActivateDeviceStatus.DeviceNotFound }); } X509Certificate2 certificate = GenerateClientCertificate(activationData.Certificate, device.Id); if (certificate == null) { return(new OperationResultDto <ActivationResponseDto, ActivateDeviceStatus>() { Status = ActivateDeviceStatus.CertificateSigningRequestInvalid }); } var activation = Mapper.Map <Activation>(activationData); activation.Certificate = Convert.ToBase64String(certificate.RawData); activation.Thumbprint = certificate.Thumbprint; var activationResult = await deviceService.ActivateDevice(activation); if (activationResult.Status != ActivateDeviceStatus.Success) { return(new OperationResultDto <ActivationResponseDto, ActivateDeviceStatus>() { Status = activationResult.Status }); } var activationResponseDto = Mapper.Map <ActivationResponseDto>(activationResult.Content); activationResponseDto.Certificate = Convert.ToBase64String(certificate.GetRawCertData()); return(new OperationResultDto <ActivationResponseDto, ActivateDeviceStatus>() { Status = ActivateDeviceStatus.Success, Content = activationResponseDto }); }
public async Task Add(ActivationDto activation) { await _context.Activation.AddAsync(activation); await _context.SaveChangesAsync(); }
private static bool ActivationModelValid(ActivationDto activation) { return(!string.IsNullOrEmpty(activation.Code) && activation.UserUuid != Guid.Empty && activation.Uuid != Guid.Empty); }