public async Task <bool> Update(DVUserVM userRegister)
        {
            var user = await _userManager.FindByIdAsync(userRegister.IdentityRerefenceId.ToString());

            if (user != null)
            {
                if (userRegister.ChangePassword)
                {
                    string resetToken = await _userManager.GeneratePasswordResetTokenAsync(user);

                    var passwordChangeResult = await _userManager.ResetPasswordAsync(user, resetToken, userRegister.Password);

                    // implementar mensagens de erro
                }

                if (user.UserName != userRegister.UserName)
                {
                    user.UserName = userRegister.UserName;
                    var result5 = await _userManager.UpdateAsync(user);

                    // implementar mensagens de erro
                }
                await RemoveClaimsByUser(user);
                await InsertClaimsByUser(user, userRegister.UserPerfilId);
            }

            return(true);
        }
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> Delete(DVUserVM dvUserVM)
        {
            var deleted = await _identityService.Delete(dvUserVM.IdentityRerefenceId.ToString());

            if (!deleted)
            {
                return(View(dvUserVM));
            }

            await _dvUserService.Delete(dvUserVM.Id);

            await _dvUserService.Commited();

            var url = Url.Action("Index", "Identity");

            return(Json(new { success = true, url }));
        }
        public async Task <IActionResult> Edit(DVUserVM userPW)
        {
            ModelState.Remove("Code");
            ModelState.Remove("Description");
            ModelState.Remove("UserPerfilId");
            ModelState.Remove("ConfirmPassword");
            ModelState.Remove("UserPerfils");

            if (!userPW.ChangePassword)
            {
                ModelState.Remove("Password");
            }

            if (!ModelState.IsValid)
            {
                return(View(userPW));
            }

            //if (!Email.Validar(usuarioRegistro.Email))
            //{
            //	NotificarErro("E-mail inválido");
            //
            //	return View(usuarioRegistro);
            //}

            var result = await _identityService.Update(userPW);

            if (!result)
            {
                //foreach (var error in result.Errors)
                //	NotificarErro(error.Description);

                return(View(userPW));
            }

            await _dvUserService.Update(_mapper.Map <DVUser>(userPW));

            await _dvUserService.Commited();

            var url = Url.Action("Index", "Identity");

            return(Json(new { success = true, url }));
        }
        public async Task <bool> Insert(DVUserVM userRegister)
        {
            var user = new IdentityUser
            {
                UserName = userRegister.UserName
                           //Email = "*****@*****.**",
                           //EmailConfirmed = true
            };

            var result = await _userManager.CreateAsync(user, userRegister.Password);

            if (!result.Succeeded)
            {
                return(false);
            }

            if (result.Succeeded)
            {
                await InsertClaimsByUser(user, userRegister.UserPerfilId);
            }

            return(true);
        }
 private async Task <DVUserVM> PopulateUserPerfil(DVUserVM pwUser)
 {
     pwUser.PerfilUsuario = _mapper.Map <IEnumerable <PerfilUsuarioVM> >(await _perfilUsuarioRepository.ObterTodos());
     return(pwUser);
 }