public IActionResult Index(WachtwoordVergetenViewModel model)
        {
            var user = _userManager.Users.SingleOrDefault(u => u.Email.Equals(model.Email));

            if (user == null)
            {
                ModelState.AddModelError("Email", "Er is geen account geregistreerd op dit emailadres");
            }
            else
            {
                var code        = _userManager.GenerateEmailConfirmationTokenAsync(user).Result;
                var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code, email = model.Email },
                                             protocol: HttpContext.Request.Scheme);

                JobCoach jc = _jobCoachRepository.GetByEmail(model.Email);
                MailVerzender.VerzendMailWachtwoordVergeten(jc.Naam + " " + jc.Voornaam, model.Email, callbackUrl);
            }
            if (ModelState.IsValid)
            {
                try
                {
                    TempData["message"] =
                        "U heeft succesvol een aanvraag voor een nieuw wachtwoord gedaan, u heeft een e-mail ontvangen met een herstel link.";
                    return(RedirectToAction("Login", "Account"));
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", e.Message);
                }
            }
            TempData["error"] = "Iets is misgelopen, de er is geen herstel mail verstuurd.";
            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> ContacteerAdmin(ContacteerAdminViewModel model)
        {
            AnalyseFilter.ZetSessieLeeg(HttpContext);
            if (ModelState.IsValid)
            {
                try
                {
                    JobCoach jc = _jobCoachRepository.GetByEmail(User.Identity.Name);
                    await MailVerzender.ContacteerAdmin(jc.Naam + " " + jc.Voornaam, jc.Email, model.Onderwerp, model.Inhoud);

                    Admin     admin = _adminRepository.GetByEmail("*****@*****.**");
                    AdminMail mail  = new AdminMail(jc, admin, model.Onderwerp, model.Inhoud, DateTime.Now);
                    _adminMailRepository.Add(mail);
                    _adminMailRepository.SaveChanges();
                    TempData["message"] = "Uw bericht werd succesvol naar de admin verstuurd.";
                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", e.Message);
                }
            }
            TempData["error"] = "Iets is misgelopen, uw bericht werd niet naar de admin verstuurd.";
            return(View(model));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> VerstuurMailMetPdf(MailMetPdfViewModel model)
        {
            AnalyseFilter.ZetSessieLeeg(HttpContext);
            if (ModelState.IsValid)
            {
                try
                {
                    JobCoach jc       = _jobCoachRepository.GetByEmail(User.Identity.Name);
                    var      dir      = Path.Combine(_environment.WebRootPath, "pdfs");
                    var      fileName = "";
                    if (Directory.Exists(dir))
                    {
                        fileName = dir + "\\pdf_" + User.Identity.Name + ".pdf";
                    }


                    await MailVerzender.StuurPdf(jc.Voornaam + jc.Naam, jc.Email, model.OntvangerMail, model.Onderwerp, model.Inhoud, fileName);

                    TempData["message"] = "Uw email naar " + model.OntvangerMail + " werd succesvol verstuurd.";
                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception e)
                {
                    TempData["error"] = "Iets is misgelopen, uw email werd niet verstuurd.";
                    ModelState.AddModelError("", e.Message);
                }
            }

            return(View(model));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> DoorgaanMetOpslaan(ProfielAanpassenViewModel model)
        {
            AnalyseFilter.ZetSessieLeeg(HttpContext);
            if (ModelState.IsValid)
            {
                try
                {
                    JobCoach jc = _jobCoachRepository.GetByEmail(User.Identity.Name);
                    jc.BusBedrijf      = model.Bus;
                    jc.GemeenteBedrijf = model.Gemeente;
                    jc.Naam            = model.Naam;
                    jc.NaamBedrijf     = model.NaamBedrijf;
                    jc.NummerBedrijf   = model.Nummer;
                    jc.PostcodeBedrijf = model.Postcode;
                    jc.StraatBedrijf   = model.Straat;
                    jc.Voornaam        = model.Voornaam;
                    _jobCoachRepository.SaveChanges();
                    ApplicationUser user = await _userManager.GetUserAsync(User);

                    user.Naam     = model.Naam;
                    user.Voornaam = model.Voornaam;
                    await _userManager.UpdateAsync(user);

                    TempData["message"] = "Uw profiel is succesvol aangepast.";
                    return(RedirectToAction(nameof(WachtwoordAanpassen)));
                }
                catch
                {
                    TempData["error"] = "Iets is misgelopen, uw profiel is niet aangepast.";
                }
            }
            return(RedirectToAction(nameof(ProfielAanpassenDoorgaanMetOpslaanNietMogelijk), model));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = await _userManager.FindByNameAsync(model.Email);

            if (user == null)
            {
                // Don't reveal that the user does not exist
                return(RedirectToAction(nameof(AccountController.ResetPasswordConfirmation), "Account"));
            }
            var token = await _userManager.GeneratePasswordResetTokenAsync(user);

            var result = await _userManager.ResetPasswordAsync(user, token, model.Password);

            if (result.Succeeded)
            {
                JobCoach jc = _jobCoachRepository.GetByEmail(user.Email);

                jc.MoetWachtwoordVeranderen = false;
                _jobCoachRepository.SaveChanges();
                TempData["message"] =
                    "Uw wachtwoord werd succesvol aangepast.";
                return(RedirectToAction(nameof(AccountController.ResetPasswordConfirmation), "Account"));
            }
            AddErrors(result);
            TempData["error"] = "Iets is misgelopen.";
            return(View());
        }
Ejemplo n.º 6
0
        public IActionResult AnimatiesAanUit()
        {
            JobCoach jc = _jobCoachRepository.GetByEmail(User.Identity.Name);

            jc.WilAnimaties = !jc.WilAnimaties;
            _jobCoachRepository.SaveChanges();
            return(RedirectToAction(nameof(Index)));
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> Login(LoginViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;

            JobCoach jc = _jobCoachRepository.GetByEmail(model.Email);

            if (jc == null)
            {
                ModelState.AddModelError("Email", "Er is geen gebruiker met dit emailadres geregistreerd");
            }



            if (ModelState.IsValid)
            {
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, set lockoutOnFailure: true
                var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    //_logger.LogInformation(1, "User logged in.");
                    //return RedirectToLocal(returnUrl);

                    if (_jobCoachRepository.GetByEmail(model.Email).MoetWachtwoordVeranderen)
                    {
                        ResetPasswordViewModel myModel = new ResetPasswordViewModel();
                        myModel.Email = model.Email;
                        return(RedirectToAction(nameof(AccountController.ResetPassword), myModel));
                    }
                    return(RedirectToAction("Index", "Home"));
                }
                if (result.RequiresTwoFactor)
                {
                    return(RedirectToAction(nameof(SendCode), new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }));
                }
                if (result.IsLockedOut)
                {
                    _logger.LogWarning(2, "User account locked out.");
                    return(View("Lockout"));
                }

                ModelState.AddModelError("Password", "Incorrect wachtwoord");
                return(View(model));
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Ejemplo n.º 8
0
        public IActionResult OverzichtMailbox()
        {
            AnalyseFilter.ZetSessieLeeg(HttpContext);
            IEnumerable <InterneMailJobcoach> mails = _interneMailJobcoachRepository.GetAll(User.Identity.Name);
            JobCoach jc = _jobCoachRepository.GetByEmail(User.Identity.Name);

            foreach (InterneMailJobcoach m in mails)
            {
                m.Jobcoach = jc;
            }
            return(View(new OverzichtMailboxViewModel(mails)
            {
                WilAnimaties = jc.WilAnimaties
            }));
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (_jobCoachRepository.GetAll().Select(j => j.Email).Contains(model.Email))
            {
                ModelState.AddModelError("Email", "Email is al in gebruik");
            }
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, Naam = model.Naam, Voornaam = model.Voornaam
                };
                string wachtwoord = WachtwoordGenerator.GeefRandomWachtwoord();
                var    result     = await _userManager.CreateAsync(user, wachtwoord);

                if (result.Succeeded)
                {
                    MailVerzender.VerzendMailEersteKeerInloggen(model.Naam + " " + model.Voornaam, model.Email, wachtwoord);
                    JobCoach jc = new JobCoach(model.Naam, model.Voornaam, model.Email, model.NaamBedrijf, model.Straat, model.Nummer, model.Postcode, model.Gemeente);
                    if (model.Bus != null)
                    {
                        jc.BusBedrijf = model.Bus;
                    }
                    _jobCoachRepository.Add(jc);
                    _jobCoachRepository.SaveChanges();

                    Admin               admin        = _adminRepository.GetByEmail("*****@*****.**");
                    InterneMail         mail         = new InterneMail(admin, "Welkom op Kairos", "Dag " + jc.Voornaam + " " + jc.Naam + ",\n\nwij wensen u hartelijk welkom op Kairos,\nwij hopen dat u een aangename ervaring heeft op onze applicatie, dat u deze applicatie bruikbaar vind en er mooie resultaten mee kan behalen om mensen met een beperking aan het werk te helpen.\nIndien u vragen heeft, aarzel niet om mij te contacteren.\n\nMet vriendelijke groeten,\nUw Kairos team", DateTime.Now);
                    InterneMailJobcoach mailJobcoach = new InterneMailJobcoach(jc, mail);
                    _interneMailJobcoachRepository.Add(mailJobcoach);
                    _interneMailJobcoachRepository.SaveChanges();
                    TempData["message"] =
                        "U heeft succesvol geregistreerd, u heeft een e-mail ontvangen met uw eerste wachtwoord.";
                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713
                    // Send an email with this link
                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme);
                    //await _emailSender.SendEmailAsync(model.Email, "Confirm your account",
                    //    $"Please confirm your account by clicking this link: <a href='{callbackUrl}'>link</a>");
                    return(RedirectToAction("Login"));
                }
                AddErrors(result);
            }
            TempData["error"] = "Iets is misgelopen, de registratie is niet voltooid.";
            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Ejemplo n.º 10
0
        public IActionResult ProfielAanpassen()
        {
            AnalyseFilter.ZetSessieLeeg(HttpContext);
            JobCoach jc = _jobCoachRepository.GetByEmail(User.Identity.Name);
            ProfielAanpassenViewModel model = new ProfielAanpassenViewModel()
            {
                Bus         = jc.BusBedrijf,
                Email       = jc.Email,
                Gemeente    = jc.GemeenteBedrijf,
                Naam        = jc.Naam,
                NaamBedrijf = jc.NaamBedrijf,
                Nummer      = jc.NummerBedrijf,
                Postcode    = jc.PostcodeBedrijf,
                Straat      = jc.StraatBedrijf,
                Voornaam    = jc.Voornaam
            };

            return(View(model));
        }
Ejemplo n.º 11
0
        public async Task <IActionResult> WachtwoordAanpassen(WachtwoordAanpassenViewModel model)
        {
            AnalyseFilter.ZetSessieLeeg(HttpContext);
            if (ModelState.IsValid)
            {
                try
                {
                    ApplicationUser user = await _userManager.GetUserAsync(User);

                    bool check = await _userManager.CheckPasswordAsync(user, model.OldPassword);

                    if (!check)
                    {
                        ModelState.AddModelError("OldPassword", "Incorrect wachtwoord");
                    }
                    else
                    {
                        var token = await _userManager.GeneratePasswordResetTokenAsync(user);

                        var result = await _userManager.ResetPasswordAsync(user, token, model.Password);

                        if (result.Succeeded)
                        {
                            JobCoach jc = _jobCoachRepository.GetByEmail(user.Email);

                            jc.MoetWachtwoordVeranderen = false;
                            _jobCoachRepository.SaveChanges();
                            TempData["message"] = "Uw wachtwoord is succesvol aangepast.";
                            return(RedirectToAction(nameof(ProfielAanpassen)));
                        }
                        ModelState.AddModelError("", "Onze excuses, er is iets verkeerd gelopen.");
                    }
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", e.Message);
                }
            }
            TempData["error"] = "Uw wachtwoord is niet aangepast.";
            return(View(new WachtwoordAanpassenViewModel()));
        }
Ejemplo n.º 12
0
 public IActionResult BeantwoordMail(OverzichtMailboxViewModel model)
 {
     AnalyseFilter.ZetSessieLeeg(HttpContext);
     if (ModelState.IsValid)
     {
         try
         {
             JobCoach  jc    = _jobCoachRepository.GetByEmail(User.Identity.Name);
             Admin     admin = _adminRepository.GetByEmail(model.Ontvanger);
             AdminMail mail  = new AdminMail(jc, admin, model.Onderwerp, model.Inhoud, DateTime.Now);
             _adminMailRepository.Add(mail);
             _adminMailRepository.SaveChanges();
             TempData["message"] = "Uw antwoord werd succesvol verzonden";
             return(RedirectToAction(nameof(OverzichtMailbox)));
         }
         catch (Exception e)
         {
             ModelState.AddModelError("", e.Message);
         }
     }
     TempData["error"] = "Er is iets misgelopen, uw antwoord werd niet verzonden";
     return(View(nameof(OverzichtMailbox)));
 }
Ejemplo n.º 13
0
        public IActionResult GeselecteerdeMail(int id)
        {
            AnalyseFilter.ZetSessieLeeg(HttpContext);
            try
            {
                JobCoach            jc   = _jobCoachRepository.GetByEmail(User.Identity.Name);
                InterneMailJobcoach mail = _interneMailJobcoachRepository.GetById(User.Identity.Name, id);
                mail.IsGelezen = true;
                _interneMailJobcoachRepository.SaveChanges();
                mail.Jobcoach = jc;
                IEnumerable <InterneMailJobcoach> mails = _interneMailJobcoachRepository.GetAll(User.Identity.Name);
                foreach (InterneMailJobcoach m in mails)
                {
                    m.Jobcoach = jc;
                }
                OverzichtMailboxViewModel model = new OverzichtMailboxViewModel(mails);
                model.GeopendeMail   = new MailViewModel(mail);
                model.GeopendeMailId = mail.InterneMailId;
                model.WilAnimaties   = jc.WilAnimaties;
                return(View(nameof(OverzichtMailbox), model));
            }
            catch
            {
            }
            IEnumerable <InterneMailJobcoach> mijnMails = _interneMailJobcoachRepository.GetAll(User.Identity.Name);
            JobCoach j = _jobCoachRepository.GetByEmail(User.Identity.Name);

            foreach (InterneMailJobcoach m in mijnMails)
            {
                m.Jobcoach = j;
            }
            return(View(nameof(OverzichtMailbox), new OverzichtMailboxViewModel(mijnMails)
            {
                WilAnimaties = j.WilAnimaties
            }));
        }
Ejemplo n.º 14
0
 public void Add(JobCoach jobCoach)
 {
     _jobCoaches.Add(jobCoach);
 }
Ejemplo n.º 15
0
        private bool ControleerOfModelVerandertIs(ProfielAanpassenViewModel model)
        {
            JobCoach jc          = _jobCoachRepository.GetByEmail(User.Identity.Name);
            bool     isVerandert = (model.Bus == null && jc.BusBedrijf != null) || (model.Bus != null && jc.BusBedrijf == null);

            if (model.Naam == null)
            {
                isVerandert = true;
            }
            else if (!model.Naam.Equals(jc.Naam))
            {
                isVerandert = true;
            }

            if (model.Voornaam == null)
            {
                isVerandert = true;
            }
            else if (!model.Voornaam.Equals(jc.Voornaam))
            {
                isVerandert = true;
            }
            if (model.NaamBedrijf == null)
            {
                isVerandert = true;
            }
            else if (!model.NaamBedrijf.Equals(jc.NaamBedrijf))
            {
                isVerandert = true;
            }
            if (model.Straat == null)
            {
                isVerandert = true;
            }
            else if (!model.Straat.Equals(jc.StraatBedrijf))
            {
                isVerandert = true;
            }
            if (model.Nummer != jc.NummerBedrijf)
            {
                isVerandert = true;
            }
            if (model.Postcode != jc.PostcodeBedrijf)
            {
                isVerandert = true;
            }
            if (model.Gemeente == null)
            {
                isVerandert = true;
            }
            else if (!model.Gemeente.Equals(jc.GemeenteBedrijf))
            {
                isVerandert = true;
            }
            if (model.Bus != null && jc.BusBedrijf != null)
            {
                if (!model.Bus.Equals(jc.BusBedrijf))
                {
                    isVerandert = true;
                }
            }
            return(isVerandert);
        }