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); }
/// <summary> /// The user has an possibility to login with multiple account roles if the account is admin or site admin /// This is implemented so that the user does not need multiple accounts for every functionality /// </summary> /// <param name="user">The user from the database</param> /// <returns>The login result</returns> private async Task <LoginResultViewmodel> HandleMultipleAccountRolesLogin(UserDto user) { var pendingLogin = new PendingLoginDto { UserUuid = user.Uuid }; var userFromUserService = _rpcClient.Call <List <UserRabbitMqSensitiveInformation> >(new List <Guid> { user.Uuid }, RabbitMqQueues.FindUserQueue).FirstOrDefault(); var email = new EmailRabbitMq { EmailAddress = userFromUserService.Email, Subject = "Login code", TemplateName = "LoginMultiRole", KeyWordValues = new List <EmailKeyWordValue> { new EmailKeyWordValue { Key = "Username", Value = user.Username }, new EmailKeyWordValue { Key = "LoginCode", Value = pendingLogin.AccessCode.ToString() } } }; _publisher.Publish(new List <EmailRabbitMq> { email }, RabbitMqRouting.SendMail, RabbitMqExchange.MailExchange); await _pendingLoginDal.Remove(pendingLogin.UserUuid); await _pendingLoginDal.RemoveOutdated(); await _pendingLoginDal.Add(pendingLogin); List <AccountRole> allAccountRoles = Enum.GetValues(typeof(AccountRole)) .Cast <AccountRole>() .ToList(); return(new LoginResultViewmodel { UserHasMultipleAccountRoles = true, SelectableAccountRoles = allAccountRoles .FindAll(aa => aa != AccountRole.Undefined && aa <= user.AccountRole) }); }