Пример #1
0
        public async Task <IActionResult> Edit(string UtilizadorId, [Bind("UtilizadorId,NomeUtilizador,Email,AntigaPassword,NovaPassword,ConfirmarPassword,Perfil")] GestaoPerfisEditarViewModel gestaoPerfisEditarViewModel)
        {
            if (UtilizadorId != gestaoPerfisEditarViewModel.UtilizadorId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var user = await _context.Users.SingleOrDefaultAsync(u => u.Id == UtilizadorId);

                    var current_role = await _userManager.GetRolesAsync(user);

                    var result_passwd = await _userManager.ChangePasswordAsync(user, gestaoPerfisEditarViewModel.AntigaPassword, gestaoPerfisEditarViewModel.NovaPassword);

                    if (result_passwd.Succeeded)
                    {
                        user.UserName = gestaoPerfisEditarViewModel.NomeUtilizador;
                        user.Email    = gestaoPerfisEditarViewModel.Email;

                        var result = await _userManager.UpdateAsync(user);

                        if (result.Succeeded)
                        {
                            await _userManager.RemoveFromRoleAsync(user, current_role.First());

                            await _userManager.AddToRoleAsync(user, Enum.GetName(typeof(PerfilEnum), gestaoPerfisEditarViewModel.Perfil));
                        }
                    }
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!UtilizadorExists(gestaoPerfisEditarViewModel.UtilizadorId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(gestaoPerfisEditarViewModel));
        }
Пример #2
0
        // GET: GestaoPerfis/Edit/5
        public async Task <IActionResult> Edit(string NomeUtilizador)
        {
            if (NomeUtilizador == null)
            {
                return(NotFound());
            }

            var utilizador = await _context.Users.SingleOrDefaultAsync(m => m.UserName == NomeUtilizador);

            if (utilizador == null)
            {
                return(NotFound());
            }

            var role = await _userManager.GetRolesAsync(utilizador);

            GestaoPerfisEditarViewModel gestaoPerfisEditarVM = new GestaoPerfisEditarViewModel {
                UtilizadorId = utilizador.Id, NomeUtilizador = utilizador.UserName, Email = utilizador.Email, Perfil = (PerfilEnum)Enum.Parse(typeof(PerfilEnum), role.First())
            };

            return(View(gestaoPerfisEditarVM));
        }