コード例 #1
0
        public async Task <IActionResult> ChangePasswordCandidate(EditCandidateProfileViewModel model)
        {
            ModelState.ClearValidationState("Candidate");
            if (ModelState.IsValid)
            {
                var user = await signInManager.UserManager.GetUserAsync(this.User);

                if (user == null)
                {
                    return(RedirectToAction("Login", "Account"));
                }
                var reuslt = await signInManager.UserManager.ChangePasswordAsync(user, model.CurrentPassword, model.NewPassword);

                if (!reuslt.Succeeded)
                {
                    foreach (var error in reuslt.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
                    return(View("EditCandidateProfile"));
                }
                await signInManager.RefreshSignInAsync(user);

                toastNotification.AddSuccessToastMessage("Password Updated !", new NotyOptions
                {
                    Theme   = "metroui",
                    Timeout = 1500,
                    Layout  = "topCenter"
                });
                return(RedirectToAction("EditCandidateProfile"));
            }
            return(View("EditCandidateProfile", model));
        }
コード例 #2
0
        public async Task <IActionResult> EditCandidateProfile()
        {
            var currentUser = this.User;
            var user        = await signInManager.UserManager.GetUserAsync(currentUser);

            var model = new EditCandidateProfileViewModel
            {
                Candidate = user
            };

            return(View(model));
        }
コード例 #3
0
        public async Task <IActionResult> EditCandidateProfile(EditCandidateProfileViewModel model)
        {
            ModelState.MarkAllFieldsAsSkipped("Password");
            var user = await signInManager.UserManager.GetUserAsync(this.User);

            if (user == null)
            {
                return(RedirectToAction("Login", "Account"));
            }
            if (model.ImageFile == null)
            {
                model.Candidate.Picture = user.Picture;
            }
            if (ModelState.IsValid)
            {
                try
                {
                    if (model.ImageFile != null)
                    {
                        string imageFileName = new string(Path.GetFileNameWithoutExtension(model.ImageFile.FileName).Take(10).ToArray()).Replace(' ', '-');
                        string newFileName   = imageFileName + '-' + Guid.NewGuid().ToString() + '.' + Path.GetExtension(model.ImageFile.FileName);
                        string destination   = Path.Combine(hostEnvironment.WebRootPath, "uploads/UserImages");
                        destination = Path.Combine(destination, newFileName);
                        using (var fileStream = new FileStream(destination, FileMode.Create))
                        {
                            model.ImageFile.CopyTo(fileStream);
                        }
                        user.Picture = newFileName;
                    }
                    user.Firstname   = model.Candidate.Firstname;
                    user.Lastname    = model.Candidate.Lastname;
                    user.Email       = model.Candidate.Email;
                    user.Address     = model.Candidate.Address;
                    user.PhoneNumber = model.Candidate.PhoneNumber;
                    db.Update <User>(user);
                    await db.SaveChangesAsync();

                    toastNotification.AddSuccessToastMessage("User Updated !", new NotyOptions
                    {
                        Theme   = "metroui",
                        Timeout = 1500,
                        Layout  = "topCenter"
                    });
                    return(RedirectToAction("EditCandidateProfile"));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            return(View(model));
        }