public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var usuario = await userManager.FindByNameAsync(usuarioSesion.ObtenerUsuarioSesion()); var rolesUsuario = await userManager.GetRolesAsync(usuario); var listaRoles = new List <string>(rolesUsuario); var imagenPerfil = await context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); ImagenGeneral imagenGeneral = null; if (imagenPerfil != null) { imagenGeneral = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Nombre = imagenPerfil.Nombre, Extension = imagenPerfil.Extension }; } return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, UserName = usuario.UserName, Token = jwtGenerador.CrearToken(usuario, listaRoles), Email = usuario.Email, ImagenPerfil = imagenGeneral }); }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var usuario = await _userManager.FindByEmailAsync(request.Email); if (usuario == null) { throw new ManejadorException(HttpStatusCode.Unauthorized); } var resultado = await _signInManager.CheckPasswordSignInAsync(usuario, request.Password, false); //Sacar lista de roles var resulRoles = await _userManager.GetRolesAsync(usuario); //para transformar de IList(resulRoles) a List var listaRoles = new List <string>(resulRoles); // var imagenPerfil = await _context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); if (resultado.Succeeded) { if (imagenPerfil != null) { var imagenCliente = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Extension = imagenPerfil.Extension, Nombre = imagenPerfil.Nombre }; return(new UsuarioData() { //NombreCompleto = usuario.NombreCompleto, Nombre = usuario.Nombre, Apellidos = usuario.Apellidos, Token = _jwtGenerador.CrearToken(usuario, listaRoles), UserName = usuario.UserName, Email = usuario.Email, ImagenPerfil = imagenCliente }); } else { return(new UsuarioData() { //NombreCompleto = usuario.NombreCompleto, Nombre = usuario.Nombre, Apellidos = usuario.Apellidos, Token = _jwtGenerador.CrearToken(usuario, listaRoles), UserName = usuario.UserName, Email = usuario.Email, //Imagen = null }); } } throw new ManejadorException(HttpStatusCode.Unauthorized); }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var usuario = await _userManager.FindByEmailAsync(request.Email); if (usuario == null) { //throw new ManejadorExcepcion(HttpStatusCode.Unauthorized); usuario = await _userManager.FindByNameAsync(request.Email); if (usuario == null) { throw new ManejadorExcepcion(HttpStatusCode.Unauthorized, new { mensaje = "El email/usuario ingresado no existe" }); } } var resultado = await _singInManager.CheckPasswordSignInAsync(usuario, request.Password, false); if (resultado.Succeeded) { var resultadoRoles = await _userManager.GetRolesAsync(usuario); var listaRoles = new List <string>(resultadoRoles); var imagenPerfil = await _context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstAsync(); if (imagenPerfil != null) { var imagenCliente = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Extension = imagenPerfil.Extension, Nombre = imagenPerfil.Nombre }; return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, Token = _ijwtgenerador.CrearToken(usuario, listaRoles), UserName = usuario.UserName, Email = usuario.Email, ImagenPerfil = imagenCliente }); } else { return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, Token = _ijwtgenerador.CrearToken(usuario, listaRoles), UserName = usuario.UserName, Email = usuario.Email }); } } else { throw new ManejadorExcepcion(HttpStatusCode.Unauthorized); } }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { //buscar usuario var usuario = await _userManager.FindByEmailAsync(request.Email); if (usuario == null) { throw new ExceptionHandler(HttpStatusCode.Unauthorized); } //checkar password var resultado = await _signInManager.CheckPasswordSignInAsync(usuario, request.Password, false); //agregar roles var resultadoRoles = await _userManager.GetRolesAsync(usuario); var listaRoles = new List <string>(resultadoRoles); var imagenPerfil = await _context.Documento.Where(x => x.ObjectoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); //generar if (resultado.Succeeded) { //obtener imagen if (imagenPerfil != null) { var imagenCliente = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Extension = imagenPerfil.Extension, Nombre = imagenPerfil.Nombre }; return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, Token = _jwtGenerador.CrearToken(usuario, listaRoles), Username = usuario.UserName, Email = usuario.Email, ImagenPerfil = imagenCliente }); } else { return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, Token = _jwtGenerador.CrearToken(usuario, listaRoles), Username = usuario.UserName, Email = usuario.Email, Imagen = null }); } } throw new ExceptionHandler(HttpStatusCode.Unauthorized); }
public async Task<UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var usuario = await this.userManager.FindByEmailAsync(request.Email); if (usuario == null) { throw new ManejadorExcepcion(HttpStatusCode.Unauthorized); } var resultado = await signInManager.CheckPasswordSignInAsync(usuario, request.Password, false); if (resultado.Succeeded) { var listaRoles = await this.userManager.GetRolesAsync(usuario); var roles = new List<string>(listaRoles); var imagen = await this.context.Documento.Where(d => d.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); ImagenGeneral imagenUsuario = null; if (imagen != null) { imagenUsuario = new ImagenGeneral { Data = Convert.ToBase64String(imagen.Contenido), Extension = imagen.Extension, Nombre = imagen.Nombre }; } return new UsuarioData { NombreCompleto = usuario.NombreCompleto, Token = this.jwtGenerador.CrearToken(usuario, new List<string>(listaRoles)), Email = usuario.Email, UserName = usuario.UserName, ImagenPerfil = imagenUsuario, }; } throw new ManejadorExcepcion(HttpStatusCode.Unauthorized); }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var usuario = await _userManager.FindByNameAsync(_iusuarioSesion.ObtenerUsuarioSesion()); //Console.WriteLine("usuario: "+usuario.Email); if (usuario == null) { throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No existe usuario o token no es valido" }); } var resultadoRoles = await _userManager.GetRolesAsync(usuario); var listaRoles = new List <string>(resultadoRoles); var imagenPerfil = await _context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); if (imagenPerfil != null) { var imagenCliente = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Extension = imagenPerfil.Extension, Nombre = imagenPerfil.Nombre }; return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, UserName = usuario.UserName, Token = _ijwtGenerador.CrearToken(usuario, listaRoles), Email = usuario.Email, ImagenPerfil = imagenCliente }); } else { return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, UserName = usuario.UserName, Token = _ijwtGenerador.CrearToken(usuario, listaRoles), Email = usuario.Email }); } }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var user = await _userManager.FindByNameAsync(_userSesion.ObtenerUsuarioSesion()); //Sacar lista de roles var resulRoles = await _userManager.GetRolesAsync(user); //para transformar de IList(resulRoles) a List var listaRoles = new List <string>(resulRoles); //Validaa si el usuario tiene una imagen de perfil var imagenPerfil = await _context.Documento.Where(x => x.ObjetoReferencia == new Guid(user.Id)).FirstOrDefaultAsync(); if (imagenPerfil != null)//Si es imagenPerfil existe, si es diferente de nulo { var imagenCliente = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Extension = imagenPerfil.Extension, Nombre = imagenPerfil.Nombre }; return(new UsuarioData { Nombre = user.Nombre, Apellidos = user.Apellidos, UserName = user.UserName, Token = _jwtGenerador.CrearToken(user, listaRoles), Email = user.Email, ImagenPerfil = imagenCliente }); } else { return(new UsuarioData { //NombreCompleto = user.NombreCompleto, Nombre = user.Nombre, Apellidos = user.Apellidos, UserName = user.UserName, Token = _jwtGenerador.CrearToken(user, listaRoles), Email = user.Email, }); } }
public async Task <UsuarioData> Handle(Ejecutar request, CancellationToken cancellationToken) { var usuario = await _userManager.FindByNameAsync(_usuarioSesion.ObtenerUsuarioSesion()); var resultadoRoles = await _userManager.GetRolesAsync(usuario); var listaRoles = new List <string>(resultadoRoles); var imagenPerfil = await _context.Documento .Where(x => x.ObjetoReferencia == new System.Guid(usuario.Id)).FirstOrDefaultAsync(); if (imagenPerfil != null) { var imagenCliente = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Extension = imagenPerfil.Extension, Nombre = imagenPerfil.Nombre }; return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, Username = usuario.UserName, Token = _jwtGenerator.CrearToken(usuario, listaRoles), Email = usuario.Email, ImagenPerfil = imagenCliente }); } else { return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, Username = usuario.UserName, Token = _jwtGenerator.CrearToken(usuario, listaRoles), Email = usuario.Email, }); } }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var usuarioIden = await _userManager.FindByNameAsync(request.Username); if (usuarioIden == null) { throw new ExceptionHandler(HttpStatusCode.NotFound, new { mensaje = "El usuario no existe" }); } var resultado = await _context.Users.Where(x => x.Email == request.Email && x.UserName != request.Username).AnyAsync(); if (resultado) { throw new ExceptionHandler(HttpStatusCode.InternalServerError, new { mensaje = "El email ya esta en uso" }); } //Actualizar o guardar imagenes if (request.ImagenPerfil != null) { var resultadoImagen = await _context.Documento.Where(x => x.ObjectoReferencia == new Guid(usuarioIden.Id)).FirstOrDefaultAsync(); if (resultadoImagen == null) { var imagen = new Documento { Contenido = System.Convert.FromBase64String(request.ImagenPerfil.Data), Nombre = request.ImagenPerfil.Nombre, Extension = request.ImagenPerfil.Extension, ObjectoReferencia = new Guid(usuarioIden.Id), DocumentoId = Guid.NewGuid(), FechaCreacion = DateTime.UtcNow }; _context.Documento.Add(imagen); } else { resultadoImagen.Contenido = System.Convert.FromBase64String(request.ImagenPerfil.Data); resultadoImagen.Nombre = request.ImagenPerfil.Nombre; resultadoImagen.Extension = request.ImagenPerfil.Extension; } } usuarioIden.NombreCompleto = request.NombreCompleto; usuarioIden.PasswordHash = _passwordHasher.HashPassword(usuarioIden, request.Password); usuarioIden.Email = request.Email; var resultadoUpdate = await _userManager.UpdateAsync(usuarioIden); var resultadoRoles = await _userManager.GetRolesAsync(usuarioIden); var listaRoles = new List <string>(resultadoRoles); var imagenPerfil = await _context.Documento.Where(X => X.ObjectoReferencia == new Guid(usuarioIden.Id)).FirstAsync(); ImagenGeneral imagenGeneral = null; if (imagenPerfil != null) { imagenGeneral = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Nombre = imagenPerfil.Nombre, Extension = imagenPerfil.Extension }; } if (resultadoUpdate.Succeeded) { return(new UsuarioData { NombreCompleto = usuarioIden.NombreCompleto, Username = usuarioIden.UserName, Email = usuarioIden.Email, Token = _jwtGenerador.CrearToken(usuarioIden, listaRoles), ImagenPerfil = imagenGeneral }); } throw new Exception("No se pudo actualizar"); }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var usuario = await _userManager.FindByNameAsync(request.UserName); if (usuario == null) { throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No se encontro un usuario con ese UserName" }); } var resultado = await _context.Users.Where(x => x.Email == request.Email && x.UserName != request.UserName).AnyAsync(); if (resultado) { throw new ManejadorExcepcion(HttpStatusCode.InternalServerError, "Este email pertenece a otro usuario"); } if (request.ImagenPerfil != null) { Console.WriteLine("Le estoy enviando una imagen desde el front"); var resultadoImagen = await _context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); if (resultadoImagen == null) { var imagen = new Documento { Contenido = System.Convert.FromBase64String(request.ImagenPerfil.Data), Nombre = request.ImagenPerfil.Nombre, Extension = request.ImagenPerfil.Extension, ObjetoReferencia = new Guid(usuario.Id), DocumentoId = Guid.NewGuid(), FechaCreacion = DateTime.UtcNow }; Console.WriteLine("Añadir nueva imagen de perfil"); _context.Documento.Add(imagen); } else { Console.WriteLine("Actualizar imagen de perfil"); resultadoImagen.Contenido = System.Convert.FromBase64String(request.ImagenPerfil.Data); resultadoImagen.Nombre = request.ImagenPerfil.Nombre; resultadoImagen.Extension = request.ImagenPerfil.Extension; } } usuario.NombreCompleto = request.NombreCompleto; usuario.PasswordHash = _ipasswordHasher.HashPassword(usuario, request.Password); usuario.Email = request.Email; var updateUsuario = await _userManager.UpdateAsync(usuario); var listaRolesIList = await _userManager.GetRolesAsync(usuario); var listaRoles = new List <string>(listaRolesIList); var imagenPerfil = await _context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); ImagenGeneral imagenGeneral = null; if (imagenPerfil != null) { imagenGeneral = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Nombre = imagenPerfil.Nombre, Extension = imagenPerfil.Extension }; } if (updateUsuario.Succeeded) { return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, UserName = usuario.UserName, Email = usuario.Email, Token = _ijwtGenerador.CrearToken(usuario, listaRoles), ImagenPerfil = imagenGeneral }); } throw new Exception("No se pudo actualizar los datos del usuario"); }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var usuario = await userManager.FindByNameAsync(request.UserName); if (usuario is null) { throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No se encontro el usuario" }); } var existeEmail = await context.Users.Where(x => x.Email == request.Email && x.UserName != request.UserName).AnyAsync(); if (existeEmail) { throw new ManejadorExcepcion(HttpStatusCode.InternalServerError, new { mensaje = "este email pertenece a otro usuario" }); } if (request.ImagenPerfil != null) { var resultadoImagen = await context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); if (resultadoImagen is null) { var imagen = new Documento { Contenido = Convert.FromBase64String(request.ImagenPerfil.Data), Nombre = request.ImagenPerfil.Nombre, Extension = request.ImagenPerfil.Extension, ObjetoReferencia = new Guid(usuario.Id), DocumentoId = Guid.NewGuid(), FechaCreacion = DateTime.UtcNow }; context.Documento.Add(imagen); } else { resultadoImagen.Contenido = Convert.FromBase64String(request.ImagenPerfil.Data); resultadoImagen.Nombre = request.ImagenPerfil.Nombre; resultadoImagen.Extension = request.ImagenPerfil.Extension; } } usuario.NombreCompleto = request.NombreCompleto; usuario.PasswordHash = passwordHasher.HashPassword(usuario, request.Password); usuario.Email = request.Email; var resultado = await userManager.UpdateAsync(usuario); var usuarioRoles = await userManager.GetRolesAsync(usuario); var imagenPerfil = await context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); ImagenGeneral imagenCliente = null; if (imagenPerfil != null) { imagenCliente = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Extension = imagenPerfil.Extension, Nombre = imagenPerfil.Nombre }; } if (resultado.Succeeded) { return new UsuarioData { NombreCompleto = usuario.NombreCompleto, UserName = usuario.UserName, Email = usuario.Email, Token = jwtGenerador.CrearToken(usuario, usuarioRoles.ToList()), ImagenPerfil = imagenCliente } } ; throw new Exception("No se pudo actualizar el usuario"); } }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var user = await this.userManager.FindByNameAsync(request.Username); if (user == null) { throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No existe el usuario ingresado." }); } var existeOtroUsuario = await this.context.Users.Where(u => u.Email == request.Email && u.UserName != request.Username).AnyAsync(); if (existeOtroUsuario) { throw new ManejadorExcepcion(HttpStatusCode.InternalServerError, new { mensaje = "Ya existe ese mail en otro usuario" }); } if (request.ImagenPerfil != null) { var userIdGuid = new Guid(user.Id); var resultadoImagen = await this.context.Documento.Where(d => d.ObjetoReferencia == userIdGuid).FirstOrDefaultAsync(); if (resultadoImagen == null) { var imagen = new Documento { DocumentoId = Guid.NewGuid(), Contenido = Convert.FromBase64String(request.ImagenPerfil.Data), Nombre = request.ImagenPerfil.Nombre, Extension = request.ImagenPerfil.Extension, ObjetoReferencia = userIdGuid, FechaCreacion = DateTime.UtcNow }; await this.context.Documento.AddAsync(imagen); } else { resultadoImagen.Contenido = Convert.FromBase64String(request.ImagenPerfil.Data); resultadoImagen.Nombre = request.ImagenPerfil.Nombre; resultadoImagen.Extension = request.ImagenPerfil.Extension; resultadoImagen.ObjetoReferencia = userIdGuid; } await this.context.SaveChangesAsync(); //??? } user.NombreCompleto = request.NombreCompleto; user.PasswordHash = this.passwordHasher.HashPassword(user, request.Password); user.Email = request.Email; var resultado = await this.userManager.UpdateAsync(user); if (resultado.Succeeded) { var imagenPerfil = await this.context.Documento.Where(x => x.ObjetoReferencia == new Guid(user.Id)).FirstOrDefaultAsync(); ImagenGeneral imagenUsuario = null; if (imagenPerfil != null) { imagenUsuario = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Nombre = imagenPerfil.Nombre, Extension = imagenPerfil.Extension }; } var roles = await this.userManager.GetRolesAsync(user); return(new UsuarioData { NombreCompleto = user.NombreCompleto, Email = user.Email, UserName = user.UserName, Token = this.jwtGenerador.CrearToken(user, new List <string>(roles)), ImagenPerfil = imagenUsuario }); } throw new Exception("Ocurrio un error al actualizar el usuario"); }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { var usuario = await userManager.FindByNameAsync(request.UserName); if (usuario == null) { throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No se encuentra el usuario con este UserName" }); } var correoUsado = await context.Users.Where(x => x.Email == request.Email && x.UserName != usuario.UserName).AnyAsync(); if (correoUsado) { throw new ManejadorExcepcion(HttpStatusCode.InternalServerError, new { mensaje = "No este email ya está usado por otro usuario." }); } if (request.ImagenPerfil != null) { var imagenPerfilActual = await context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); if (imagenPerfilActual == null) { var imagen = new Documento { Contenido = Convert.FromBase64String(request.ImagenPerfil.Data), Nombre = request.ImagenPerfil.Nombre, Extension = request.ImagenPerfil.Extension, ObjetoReferencia = new Guid(usuario.Id), DocumentoId = Guid.NewGuid(), FechaCreacion = DateTime.UtcNow }; context.Documento.Add(imagen); } else { imagenPerfilActual.Contenido = Convert.FromBase64String(request.ImagenPerfil.Data); imagenPerfilActual.Nombre = request.ImagenPerfil.Nombre; imagenPerfilActual.Extension = request.ImagenPerfil.Extension; } } usuario.NombreCompleto = request.NombreCompleto; usuario.PasswordHash = passwordHasher.HashPassword(usuario, request.Password); usuario.Email = request.Email; var resultado = await userManager.UpdateAsync(usuario); var roles = await userManager.GetRolesAsync(usuario); var listaRoles = new List <string>(roles); var imagenPerfil = await context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuario.Id)).FirstOrDefaultAsync(); ImagenGeneral imagenGeneral = null; if (imagenPerfil != null) { imagenGeneral = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Nombre = imagenPerfil.Nombre, Extension = imagenPerfil.Extension }; } if (!resultado.Succeeded) { throw new Exception("No se puedo actualizar el usuario"); } return(new UsuarioData { NombreCompleto = usuario.NombreCompleto, Token = jwtGenerador.CrearToken(usuario, listaRoles), Email = usuario.Email, UserName = usuario.UserName, ImagenPerfil = imagenGeneral }); }
public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken) { //Logica para actualizar un usuario //Evaluar la existencia de un usuario var usuarioIden = await _userManager.FindByNameAsync(request.UserName); if (usuarioIden == null) { throw new ManejadorException(HttpStatusCode.NotFound, new { mensaje = "No existe el usuario indicado" }); } //Valida el email si fue utilizado por otro usuario del sistema var resultado = await _context.Users.Where(x => x.Email == request.Email && x.UserName != request.UserName).AnyAsync(); if (resultado) { throw new ManejadorException(HttpStatusCode.InternalServerError, new { mensaje = "Este email pertenece a otro usuario" }); } if (request.ImagenPerfil != null) { //Valida si el usuario tiene una imagen y lo agrega o se modifica con una nueva imagen var resultadoImagen = await _context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuarioIden.Id)).FirstOrDefaultAsync(); if (resultadoImagen == null) { var imagen = new Documento { //Convierte de Base64(string) a un tipo byte[] Contenido = Convert.FromBase64String(request.ImagenPerfil.Data), Nombre = request.ImagenPerfil.Nombre, Extension = request.ImagenPerfil.Extension, ObjetoReferencia = new Guid(usuarioIden.Id), DocumentoId = Guid.NewGuid(), FechaCreacion = DateTime.UtcNow }; _context.Documento.Add(imagen); } else { resultadoImagen.Contenido = Convert.FromBase64String(request.ImagenPerfil.Data); resultadoImagen.Nombre = request.ImagenPerfil.Nombre; resultadoImagen.Extension = request.ImagenPerfil.Extension; } } //Actualizando los datos del usuario usuarioIden.Nombre = request.Nombre; usuarioIden.Apellidos = request.Apellidos; usuarioIden.PasswordHash = _passwordHasher.HashPassword(usuarioIden, request.Password); usuarioIden.Email = request.Email; //Obtener lista de roles para este usuario que estamos evaluando var resultadoRoles = await _userManager.GetRolesAsync(usuarioIden); var roles = new List <string>(resultadoRoles); var resultadoUpdate = await _userManager.UpdateAsync(usuarioIden); var imagenPerfil = await _context.Documento.Where(x => x.ObjetoReferencia == new Guid(usuarioIden.Id)).FirstAsync(); ImagenGeneral imagenGeneral = null; if (imagenPerfil != null) { imagenGeneral = new ImagenGeneral { Data = Convert.ToBase64String(imagenPerfil.Contenido), Nombre = imagenPerfil.Nombre, Extension = imagenPerfil.Extension }; } if (resultadoUpdate.Succeeded) { return(new UsuarioData() { // NombreCompleto = usuarioIden.NombreCompleto, Nombre = usuarioIden.Nombre, Apellidos = usuarioIden.Apellidos, UserName = usuarioIden.UserName, Email = usuarioIden.Email, Token = _jwtGnerador.CrearToken(usuarioIden, roles), ImagenPerfil = imagenGeneral }); } throw new Exception("No se pudo actualizar los cambios"); }