示例#1
0
        public async Task <Resultado <UsuarioViewModel> > Update(AtualizacaoUsuarioViewModel atualizacaoUsuario)
        {
            var usuario = base.Mapper.Map <Usuario>(atualizacaoUsuario);
            await Service.Update(usuario);

            var usuarioViewModel = base.MapToViewModel(usuario);

            usuarioViewModel.usuarioPerfil = atualizacaoUsuario.UsuarioPerfil;

            return(Notificador.HasNotification()
                ? Resultado <UsuarioViewModel> .Failed(Notificador.GetNotificationsMessages())
                : Resultado <UsuarioViewModel> .Successfull(usuarioViewModel));
        }
示例#2
0
        public async Task <ActionResult <Resultado <UsuarioViewModel> > > Put(int id, AtualizacaoUsuarioViewModel atualizacaoUsuario)
        {
            if (id != atualizacaoUsuario.id)
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(Ok(Resultado <CursoViewModel> .Failed(ModelState.Values.Select(x => x.Errors).ToString())));
            }

            var result = await _service.Update(atualizacaoUsuario);

            if (result.Success)
            {
                var user = await _userManager.FindByIdAsync(result.Data.id.ToString());

                var claims = await _userManager.GetClaimsAsync(user);

                if (claims.Count > 0 && atualizacaoUsuario.UsuarioPerfil == UsuarioPerfil.Usuario)
                {
                    await _userManager.RemoveClaimsAsync(user, claims);
                }
                else if (atualizacaoUsuario.UsuarioPerfil != UsuarioPerfil.Usuario)
                {
                    var claim = new Claim(atualizacaoUsuario.UsuarioPerfil.ToString(),
                                          atualizacaoUsuario.UsuarioPerfil.ToString());

                    if (claims.Count > 0 && !claims.Select(x => x.Type).Contains(claim.Type))
                    {
                        await _userManager.RemoveClaimsAsync(user, claims);

                        await _userManager.AddClaimAsync(user, claim);
                    }
                    else if (claims.Count == 0)
                    {
                        await _userManager.AddClaimAsync(user, claim);
                    }
                }
            }
            return(Ok(result));
        }