Beispiel #1
0
        public async Task <IActionResult> DeniedProfile(ConfirmProfileViewModel model)
        {
            //deze actie kan alleen de admin uitvoeren
            //ingelogde user moet een admin zijn
            //huidige admin user object wordt opgehaald
            var adminid   = userManager.GetUserId(HttpContext.User);
            var adminuser = await userManager.FindByIdAsync(adminid);

            //user van te beoordelen profiel wordt uit de model gehaald middels userid
            var             userid      = model.Profiles[0].Id;
            ApplicationUser currentUser = await userManager.FindByIdAsync(userid);

            if (currentUser == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {userid} cannot be found";
                return(View("NotFound"));
            }
            else
            {
                //de wijzigen in het profiel dat werd opgeslagen in de newprofile property wordt leeg gemaakt. omdat het profiel is afgekeurd
                currentUser.NewProfile = null;
                // Update the user using UpdateAsync
                var result = await userManager.UpdateAsync(currentUser);

                if (result.Succeeded)
                {
                    var activeUser = userManager.FindByIdAsync(userManager.GetUserId(HttpContext.User)).Result;
                    //activiteit wordt gelogd
                    repox.LogActivity(activeUser, "DeniedProfile", $"{activeUser.Firstname[0]}. {activeUser.Lastname} heeft profielverzoek van {currentUser.Firstname[0]}. {currentUser.Lastname} afgewezen.");
                    //er wordt een mail verzonden aan de gebruiker, dat profiel is afgekeurd
                    mailServer.SendDeclinedProfileMail(currentUser.UserName, currentUser.Firstname, currentUser.Lastname, adminuser.Firstname, adminuser.Lastname);

                    return(View(@"~/Views/Account/Profile/DeniedProfile.cshtml"));
                }
                return(View(currentUser));
            }
        }