public async Task <IActionResult> RegisterNonRdw(RegisterNonRdwViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, Name = model.Name, Organisation = model.Organisation
                };

                var password = "******" + Guid.NewGuid().ToString("d").Substring(1, 15);

                var result = await _userManager.CreateAsync(user, password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                    var callbackUrl = Url.ResetPasswordCallbackLink(user.Id, code, Request.Scheme);
                    await _emailSender.SendEmailAsync(model.Email, "Welkom bij de RDW Techday",
                                                      $"Wij hebben een account voor u aangemaakt. Om daar toegang toe te krijgen dient u via de volgende link een wachtwoord in te stellen: <a href='{callbackUrl}'>link</a>");

                    return(RedirectToLocal(returnUrl));
                }
                AddErrors(result);
            }
            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #2
0
        public async Task <IActionResult> RegisterNonRdw(RegisterNonRdwViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, Name = model.Name, Organisation = model.Organisation
                };
                user.isRDW = false;

                var password = "******" + Guid.NewGuid().ToString("d").Substring(1, 15);

                var result = await _userManager.CreateAsync(user, password);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, "User");

                    await user.AddTijdvakkenAsync(_context);

                    await _context.SaveChangesAsync();

                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                    var    callbackUrl = Url.RegisterNonRDWCallbackLink(user.Id, code, Request.Scheme);
                    var    loginurl    = Url.LoginLink(Request.Scheme);
                    var    privacyurl  = Url.PrivacyLink(Request.Scheme);
                    string htmlMessage = $"Beste {user.Name},<br/><br/>Wij hebben een account voor u aangemaakt waarmee u zich kunt registreren voor sessies op de RDW Techday. Om toegang te krijgen, dient u een nieuw wachtwoord in te stellen via de volgende <a href='{callbackUrl}'>link</a>." +
                                         $"<br/><br/>LET OP: Bovenstaande link werkt eenmalig. Indien u deze mail al heeft bevestigd, dan kan kan u <a href='{loginurl}'>hier inloggen</a>." +
                                         $"<br/><br/><br/>Met vriendelijke groet,<br/><br/>RDW Techday" +
                                         $"<br/><br/><br/>Zie ook onze <a href='{privacyurl}'>privacyverklaring</a>";

                    string plainMessage = $"Beste {user.Name}" + Environment.NewLine + Environment.NewLine +
                                          $"Wij hebben een account voor u aangemaakt waarmee u zich kunt registreren voor sessies op de RDW Techday. Om toegang te krijgen, dient u een nieuw wachtwoord in te stellen via de volgende link: {callbackUrl}" + Environment.NewLine + Environment.NewLine +
                                          $"LET OP: Bovenstaande link werkt eenmalig. Indien u deze mail al heeft bevestigd, dan kan kan u hier inloggen: {loginurl}" + Environment.NewLine + Environment.NewLine + Environment.NewLine +
                                          $"Met vriendelijke groet," + Environment.NewLine + Environment.NewLine +
                                          $"RDW Techday" + Environment.NewLine + Environment.NewLine +
                                          $"Zie ook onze privacyverklaring: {privacyurl}";

                    await _emailSender.SendEmailAsync(model.Email, "Welkom bij de RDW Techday", plainMessage, htmlMessage);

                    return(Redirect(nameof(RegisterNonRdwConfirmation)));
                }
                AddErrors(result);
            }
            // If we got this far, something failed, redisplay form
            return(View(model));
        }