Ejemplo n.º 1
0
        public async Task <IActionResult> ConfirmProfile(string id)
        {
            //middels userid wordt user opgehaald
            var userid      = id;
            var currentUser = await userManager.FindByIdAsync(userid);

            if (currentUser == null)
            {
                ViewBag.ErrorMessage = $"User with Id = {userid} cannot be found";
                return(View(@"~/Views/Account/NotFound.cshtml"));
            }

            //jsonobject wordt uit de property new profile gehaald
            var jsonProfile = currentUser.NewProfile;

            //huidige profiel zoals die is en was
            var currentProfile = new ProfileViewModel
            {
                Id              = currentUser.Id,
                UserName        = currentUser.UserName,
                FirstName       = currentUser.Firstname,
                LastName        = currentUser.Lastname,
                Street          = currentUser.Street,
                PhoneNumber     = currentUser.PhoneNumber,
                Zipcode         = currentUser.Zipcode,
                City            = currentUser.City,
                Country         = currentUser.Country,
                BankNumber      = currentUser.BankNumber,
                ProfileImageUrl = currentUser.ProfileImageUrl
            };

            //de jsonobject met nieuwe profiel wordt opgehaald
            var x = JsonConvert.DeserializeObject <ApplicationUser>(jsonProfile);

            //de jsonobject met nieuwe profiel wordt omgezet naar de juiste model
            var tempProfile = new ProfileViewModel {
                Id              = userid,
                UserName        = currentUser.UserName,
                FirstName       = currentUser.Firstname,
                LastName        = currentUser.Lastname,
                Street          = x.Street,
                PhoneNumber     = x.PhoneNumber,
                Zipcode         = x.Zipcode,
                City            = x.City,
                Country         = x.Country,
                BankNumber      = x.BankNumber,
                ProfileImageUrl = x.ProfileImageUrl
            };

            var profiles = new ConfirmProfileViewModel();

            //huidige profiel is currentProfile
            //nieuwe profiel is tempProfile
            //deze profielen worden samengevoegd in een model om door te geven aan de view
            profiles.Profiles.Add(tempProfile);         //index 0
            profiles.Profiles.Add(currentProfile);      //index 1

            return(View(@"~/Views/Account/Profile/ConfirmProfile.cshtml", profiles));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> AcceptedProfile(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"));
            }
            //nieuwe profiel wordt erin gezet door tempprofile over te nemen naar currentprofile
            else
            {
                currentUser.Street          = model.Profiles[0].Street;
                currentUser.PhoneNumber     = model.Profiles[0].PhoneNumber;
                currentUser.Zipcode         = model.Profiles[0].Zipcode;
                currentUser.City            = model.Profiles[0].City;
                currentUser.Country         = model.Profiles[0].Country;
                currentUser.BankNumber      = model.Profiles[0].BankNumber;
                currentUser.ProfileImageUrl = model.Profiles[0].ProfileImageUrl;
                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, "AcceptedProfile", $"{activeUser.Firstname[0]}. {activeUser.Lastname} heeft profielverzoek van {currentUser.Firstname[0]}. {currentUser.Lastname} goedgekeurd.");
                    // mail wordt naar gebruiker verstuurd met bericht goedkeuring
                    mailServer.SendAcceptedProfileMail(currentUser.UserName, currentUser.Firstname, currentUser.Lastname, adminuser.Firstname, adminuser.Lastname);
                    return(View(@"~/Views/Account/Profile/StatusProfile.cshtml"));
                }
                return(View(currentUser));
            }
        }
Ejemplo n.º 3
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));
            }
        }