コード例 #1
0
            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 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,
                        Email = usuario.Email,
                        Token = _jwtGenerador.CrearToken(usuario, listaRoles),
                        ImagenPerfil = imagenCliente
                    });
                }
                else
                {
                    return(new UsuarioData {
                        NombreCompleto = usuario.NombreCompleto,
                        Username = usuario.UserName,
                        Email = usuario.Email,
                        Token = _jwtGenerador.CrearToken(usuario, listaRoles),
                    });
                }
            }
コード例 #2
0
            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);
            }
コード例 #3
0
            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);
                }
            }
コード例 #4
0
ファイル: Login.cs プロジェクト: Bruno191927/ProyectoCoreBack
            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);
            }
コード例 #5
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuario = await _userManager.FindByEmailAsync(request.Email);

                if (usuario == null)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.Unauthorized);
                }
                var result = await _signInManager.CheckPasswordSignInAsync(usuario, request.Password, false);

                if (result.Succeeded)
                {
                    return(new UsuarioData
                    {
                        NombreCompleto = usuario.NombreCompleto,
                        Token = _IJwtGenerador.CrearToken(usuario),
                        UserName = usuario.UserName,
                        EMail = usuario.Email,
                        Imagen = null,
                    });
                }
                else
                {
                    throw new ManejadorExcepcion(HttpStatusCode.Unauthorized);
                }
            }
コード例 #6
0
ファイル: Login.cs プロジェクト: terror-jake/ProyectoCore
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuario = await userManager.FindByEmailAsync(request.Email); // busca por email

                if (usuario == null)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.Unauthorized);
                }

                // false corresponde a si la cuenta debe bloquearse
                var resultado = await signInManager.CheckPasswordSignInAsync(usuario, request.Password, false);

                var resultadoRoles = await userManager.GetRolesAsync(usuario);

                var listaRoles = new List <string>(resultadoRoles); // debe ser List

                if (resultado.Succeeded)
                {
                    return(new UsuarioData
                    {
                        NombreCompleto = usuario.NombreCompleto,
                        Token = jwtGenerador.CrearToken(usuario, listaRoles),
                        Username = usuario.UserName,
                        Email = usuario.Email,
                        Image = null
                    });
                }

                // si falló la autenticación
                throw new ManejadorExcepcion(HttpStatusCode.Unauthorized);
            }
コード例 #7
0
            public async Task <UsuarioData> Handle(Ejecutar request, CancellationToken cancellationToken)
            {
                var usuario = await userManager.FindByNameAsync(usuarioSesion.ObtenerUsuarioSesion());

                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
                {
                    Email = usuario.Email,
                    NombreCompleto = usuario.NombreCompleto,
                    UserName = usuario.UserName,
                    Token = jwtGenerador.CrearToken(usuario, new List <string>(listaRoles)),
                    ImagenPerfil = imagenUsuario
                });
            }
コード例 #8
0
            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);

                var resultadoRoles = await _userManager.GetRolesAsync(_Usuario);

                var listaRoles = new List <string>(resultadoRoles);

                if (resultado.Succeeded)
                {
                    return(new UsuarioData {
                        NombreCompleto = _Usuario.NombreCompleto,
                        Token = _IJwtGenerador.CrearToken(_Usuario, listaRoles),
                        UserName = _Usuario.UserName,
                        Email = _Usuario.Email,
                        Imagen = null
                    });
                }
                throw new ManejadorException(HttpStatusCode.Unauthorized);
            }
コード例 #9
0
            public async Task <UsuarioData> Handle(Ejecutar request, CancellationToken cancellationToken)
            {
                var usuario = await userManager.FindByEmailAsync(usuarioSesion.ObtenerUsuarioSesion());

                var resultadoRoles = await userManager.GetRolesAsync(usuario);

                var listaRoles = new List <string>(resultadoRoles);

                return(new UsuarioData
                {
                    NombreCompleto = usuario.NombreCompleto,
                    Username = usuario.UserName,
                    Token = jwtGenerador.CrearToken(usuario, listaRoles),
                    Imagen = null,
                    Email = usuario.Email,
                    SucursalId = usuario.SucursalId,
                    sucursalesDTO = context.sucursales
                                    .Where(c => c.Id == usuario.SucursalId)
                                    .Select(c => new SucursalesDTO
                    {
                        Id = c.Id,
                        Codigo = c.Codigo,
                        Nombre = c.Nombre,
                        ProvinciaId = c.ProvinciaId,
                        Localidad = c.Localidad,
                        CodigoPostal = c.CodigoPostal,
                        Calle = c.Calle,
                        NroCalle = c.NroCalle,
                        PisoDpto = c.PisoDpto,
                        OtrasReferencias = c.OtrasReferencias,
                        Estado = c.Estado
                    }).FirstOrDefault()
                });
            }
コード例 #10
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuarioIden = await _userManager.FindByNameAsync(request.Username);

                if (usuarioIden == null)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No existe usuario con este Username" });
                }
                var resultado = await _context.Users.Where(x => x.Email == request.Email && x.UserName != request.Username).AnyAsync();

                if (resultado)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.InternalServerError, new { mensaje = "Ya existe un usuario con este email" });
                }
                usuarioIden.NombreCompleto = request.NombreCompleto;
                usuarioIden.PasswordHash   = _passwordHasser.HashPassword(usuarioIden, request.Password);
                usuarioIden.Email          = request.Email;
                var resultadoUpdate = await _userManager.UpdateAsync(usuarioIden);

                var resultadoRoles = await _userManager.GetRolesAsync(usuarioIden);

                var listRoles = new List <string>(resultadoRoles);

                if (resultadoUpdate.Succeeded)
                {
                    return(new UsuarioData {
                        NombreCompleto = usuarioIden.NombreCompleto,
                        Username = usuarioIden.UserName,
                        Email = usuarioIden.Email,
                        Token = _jwtGenerador.CrearToken(usuarioIden, listRoles)
                    });
                }
                throw new Exception("No se ha podido actualizar el usuario");
            }
コード例 #11
0
ファイル: UsuarioActualizar.cs プロジェクト: dagsis/CursosWeb
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuario = await _userManager.FindByNameAsync(request.Username);

                if (usuario == null)
                {
                    throw new ManejadorExepcion(HttpStatusCode.NotFound, new { mensasaje = "El Usuario no existe" });
                }

                var resultado = await _context.Users.Where(x => x.Email == request.Email && x.UserName != request.Username).AnyAsync();

                if (resultado)
                {
                    throw new ManejadorExepcion(HttpStatusCode.InternalServerError, new { mensasaje = "El Email Existe en la base de datos" });
                }
                usuario.NombreCompleto = request.Nombre + ' ' + request.Apellidos;
                usuario.PasswordHash   = _passwordHasher.HashPassword(usuario, request.Password);
                usuario.Email          = request.Email;
                var resultadoUpdate = await _userManager.UpdateAsync(usuario);

                var resultadoRoles = (List <string>) await _userManager.GetRolesAsync(usuario);

                if (resultadoUpdate.Succeeded)
                {
                    return(new UsuarioData {
                        NombreCompleto = usuario.NombreCompleto,
                        UserName = usuario.UserName,
                        Email = usuario.Email,
                        Token = _jwtGenerador.CrearToken(usuario, resultadoRoles)
                    });
                }

                throw new ManejadorExepcion(HttpStatusCode.InternalServerError, new { mensasaje = "No se pudo actualizar el usuario" });
            }
コード例 #12
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuario = await _userManager.FindByEmailAsync(request.Email);

                if (usuario == null)
                {
                    throw new ExceptionHandler(System.Net.HttpStatusCode.Unauthorized);
                }

                var resultado = await _sigInManager.CheckPasswordSignInAsync(usuario, request.Password, false);

                if (resultado.Succeeded)
                {
                    return(new UsuarioData
                    {
                        NombreCompleto = usuario.NombreCompleto,
                        Token = _jwtGenerador.CrearToken(usuario),
                        Username = usuario.UserName,
                        Email = usuario.Email,
                        Image = null
                    });
                }

                throw new ExceptionHandler(System.Net.HttpStatusCode.Unauthorized);
            }
コード例 #13
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var existeEmail = await context.Users.Where(x => x.Email == request.Email).AnyAsync();

                if (existeEmail)
                {
                    throw new ManejadorException(HttpStatusCode.BadRequest, new { mensaje = "Existe ya un usuario registrado con ese Email" });
                }

                var existeUser = await context.Users.Where(x => x.UserName == request.UserName).AnyAsync();

                if (existeUser)
                {
                    throw new ManejadorException(HttpStatusCode.BadRequest, new { mensaje = "Existe ya un usuario registrado con ese UserName" });
                }

                var usuario = new Usuarios
                {
                    NombreCompleto = request.NombreCompleto,
                    UserName       = request.UserName,
                    Email          = request.Email,
                    SucursalId     = request.SucursalId
                };

                var result = await userManager.CreateAsync(usuario, request.Password);

                if (result.Succeeded)
                {
                    return(new UsuarioData
                    {
                        NombreCompleto = usuario.NombreCompleto,
                        Token = jwtGenerador.CrearToken(usuario, null),
                        Username = usuario.UserName,
                        Email = usuario.Email,
                        Imagen = null,
                        SucursalId = usuario.SucursalId,
                        sucursalesDTO = context.sucursales
                                        .Where(c => c.Id == usuario.SucursalId)
                                        .Select(c => new SucursalesDTO {
                            Id = c.Id,
                            Codigo = c.Codigo,
                            Nombre = c.Nombre,
                            ProvinciaId = c.ProvinciaId,
                            Localidad = c.Localidad,
                            CodigoPostal = c.CodigoPostal,
                            Calle = c.Calle,
                            NroCalle = c.NroCalle,
                            PisoDpto = c.PisoDpto,
                            OtrasReferencias = c.OtrasReferencias,
                            Estado = c.Estado
                        }).FirstOrDefault()
                    });
                }

                throw new Exception("No se pudo agregar al Usuario");
            }
コード例 #14
0
            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
                    });
                }
            }
コード例 #15
0
            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());

                return(new UsuarioData {
                    NombreCompleto = usuario.NombreCompleto,
                    Username = usuario.UserName,
                    Token = _jwtGenerador.CrearToken(usuario),
                    Imagen = null,
                    Email = usuario.Email,
                });
            }
コード例 #17
0
            public async Task <Usuario> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuario = await _userManager.FindByEmailAsync(request.Email);

                if (usuario == null)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.Unauthorized);
                }

                var resultado = await _signInManager.CheckPasswordSignInAsync(usuario, request.Password, false);

                //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 (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,
                    //            Token = _jwtGenerador.CrearToken(usuario, listaRoles),
                    //            Username = usuario.UserName,
                    //            Email = usuario.Email,
                    //            ImagenPerfil = imagenCliente
                    //        };
                    //    }

                    {
                        return(new Usuario
                        {
                            NombreCompleto = usuario.NombreCompleto,
                            Token = _jwtGenerador.CrearToken(usuario//, listaRoles
                                                             ),
                            UserName = usuario.UserName,
                            Email = usuario.Email,
                            //Imagen = null
                        });
                    }
                }
                throw new ManejadorExcepcion(HttpStatusCode.Unauthorized);
            }
コード例 #18
0
            public async Task <UsuarioData> Handle(Ejecutar request, CancellationToken cancellationToken)
            {
                var usuario = await userManager.FindByNameAsync(usuarioSesion.ObtenerUsuarioSesion());

                var listRoles = await userManager.GetRolesAsync(usuario);

                List <string> roles    = new List <string>(listRoles);
                UsuarioData   usuarioD = new UsuarioData();

                usuarioD.NombreCompleto = usuario.NombreCompleto;
                usuarioD.Username       = usuario.UserName;
                usuarioD.Token          = jwtGenerador.CrearToken(usuario, roles);
                usuarioD.Imagen         = null;
                usuarioD.Email          = usuario.Email;
                return(usuarioD);
            }
コード例 #19
0
            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);

                return(new UsuarioData {
                    NombreCompleto = usuario.NombreCompleto,
                    UserName = usuario.UserName,
                    Token = _jwtGenerador.CrearToken(usuario, listaRoles),
                    Image = null,
                    Email = usuario.Email
                });
            }
コード例 #20
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var existe = await _context.Users.Where(x => x.Email == request.Email).AnyAsync();

                if (existe)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.BadRequest, new
                    {
                        mensaje = "Existe ya un usuario ya registrado con este email"
                    });
                }

                var existeUserName = await _context.Users.Where(x => x.UserName == request.UserName)
                                     .AnyAsync();

                if (existeUserName)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.BadRequest, new
                    {
                        mensaje = "Existe ya un usuario ya registrado con este username"
                    });
                }

                var usuario = new Usuario
                {
                    NombreCompleto = request.NombreCompleto,
                    Email          = request.Email,
                    UserName       = request.UserName
                };

                var resultado = await _userManager.CreateAsync(usuario, request.Password);

                if (resultado.Succeeded)
                {
                    return(new UsuarioData
                    {
                        NombreCompleto = usuario.NombreCompleto,
                        Token = _jwtGenerador.CrearToken(usuario, null),
                        Email = usuario.Email,
                        Username = usuario.UserName
                    });
                }
                throw new Exception("No se pudo agregar al nuevo usuario");
            }
コード例 #21
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var existeEmail = await context.Users.Where(x => x.Email == request.Email).AnyAsync();

                if (existeEmail)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.BadRequest, new { mensaje = "El Email se encuentra en uso." });
                }
                ;

                var existeUserName = await context.Users.Where(x => x.UserName == request.UserName).AnyAsync();

                if (existeUserName)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.BadRequest, new { mensaje = "El Nombre de Usuario ya se encuentra en uso." });
                }
                ;

                var usuario = new Usuario
                {
                    NombreCompleto = request.NombreCompleto,
                    Email          = request.Email,
                    UserName       = request.UserName
                };

                var resultado = await userManager.CreateAsync(usuario, request.Password);

                if (resultado.Succeeded)
                {
                    return(new UsuarioData
                    {
                        NombreCompleto = usuario.NombreCompleto,
                        Token = jwtGenerador.CrearToken(usuario, null),
                        UserName = usuario.UserName,
                        Email = usuario.Email
                    });
                }
                else if (resultado.Errors.Count() > 0)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.BadRequest, resultado.Errors);
                }

                throw new Exception("No se pudo agregar el nuevo usuario");
            }
コード例 #22
0
ファイル: Login.cs プロジェクト: SantosPool/OnlineCurses
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuario = await userManager.FindByEmailAsync(request.Email);

                if (usuario is null)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.Unauthorized);
                }

                var resultado = await signInManager.CheckPasswordSignInAsync(usuario, request.password, false);

                var listaRoles = 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,
                               Token          = jwtGenerador.CrearToken(usuario, listaRoles.ToList()),
                               UserName       = usuario.UserName,
                               Email          = usuario.Email,
                               ImagenPerfil   = imagenCliente
                           }
                }
                ;

                throw new ManejadorExcepcion(HttpStatusCode.Unauthorized);
            }
        }
コード例 #23
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                // AnyAsync Retorna un boolean
                // Validamos si existe un usuario con ese Email
                var existe = await _context.Users.Where(x => x.Email == request.Email).AnyAsync();

                if (existe)
                {
                    throw new ManejadorExcepcion(System.Net.HttpStatusCode.BadRequest, new { mensaje = "Existe un usuario con este Email" });
                }

                // Validamos si existe un usuario con ese UserName
                var existeUserName = await _context.Users.Where(x => x.UserName == request.UserName).AnyAsync();

                if (existeUserName)
                {
                    throw new ManejadorExcepcion(System.Net.HttpStatusCode.BadRequest, new { mensaje = "Existe ya el usuario con este userName" });
                }

                // Creamos el usuario
                var usuario = new Usuario
                {
                    NombreCompleto = request.NombreCompleto,
                    Email          = request.Email,
                    UserName       = request.UserName
                };

                var result = await _userManeger.CreateAsync(usuario, request.Password);

                // Si se insertó, lo mostramos
                if (result.Succeeded)
                {
                    return(new UsuarioData {
                        NombreCompleto = usuario.NombreCompleto,
                        Token = _jwtGenerador.CrearToken(usuario, null),
                        Username = usuario.UserName,
                        Email = usuario.Email
                    });
                }

                throw new Exception("No se pudo agregar el nuevo usuario");
            }
コード例 #24
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                //Validar si el correo existe
                var existe = await _context.Users.Where(x => x.Email == request.Email).AnyAsync();

                if (existe)
                {
                    throw new ManejadorException(HttpStatusCode.BadRequest, new { mensaje = "El email ingresado ya existe" });
                }
                //Validar si el username existe
                var existeUserName = await _context.Users.Where(x => x.UserName == request.Username).AnyAsync();

                if (existeUserName)
                {
                    throw new ManejadorException(HttpStatusCode.BadRequest, new { mensaje = "El username ingresado ya existe" });
                }

                //Comenzar a crear el usuario
                var usuario = new Usuario
                {
                    NombreCompleto = request.Nombre + " " + request.Apellidos,
                    Email          = request.Email,
                    UserName       = request.Username,
                };

                var resultado = await _userManager.CreateAsync(usuario, request.Password);

                if (resultado.Succeeded)
                {
                    return new UsuarioData
                           {
                               NombreCompleto = usuario.NombreCompleto,
                               Token          = _jwtGenerador.CrearToken(usuario),
                               Username       = usuario.UserName,
                               Email          = usuario.Email
                           }
                }
                ;
                throw new Exception("No se pudo agregar al nuevo usuario");
            }
        }
コード例 #25
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuario = await userManager.FindByNameAsync(request.Username);

                if (usuario == null)
                {
                    throw new ManejadorException(HttpStatusCode.NotFound, new { mensaje = "El usuario no existe" });
                }

                var existeEmail = await gestionContext.Users.Where(x => x.Email == request.Email && x.UserName != request.Username).AnyAsync();

                if (existeEmail)
                {
                    throw new ManejadorException(HttpStatusCode.NotFound, new { mensaje = "El email pertenece a otro usuario" });
                }

                usuario.NombreCompleto = request.NombreCompleto;
                usuario.PasswordHash   = passwordHasher.HashPassword(usuario, request.Password);
                usuario.Email          = request.Email;

                var resultRoles = await userManager.GetRolesAsync(usuario);

                var listaRoles = new List <string>(resultRoles);

                var updateUsuario = await userManager.UpdateAsync(usuario);

                if (updateUsuario.Succeeded)
                {
                    return(new UsuarioData
                    {
                        NombreCompleto = usuario.NombreCompleto,
                        Username = usuario.UserName,
                        Email = usuario.Email,
                        Token = jwtGenerador.CrearToken(usuario, listaRoles),
                        Imagen = null
                    });
                }

                throw new ManejadorException(HttpStatusCode.BadRequest, new { mensaje = "no se puede actualizar el usuario" });
            }
コード例 #26
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                //Validacion del Email
                var existe = await _context.Users.Where(registros => registros.Email == request.Email).AnyAsync();

                if (existe)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.BadRequest, new { mensaje = "El email ya tiene un usuario registrado" });
                }

                //Validacion del nombre de usuario
                var existeUsername = await _context.Users.Where(evaluacion => evaluacion.UserName == request.Username).AnyAsync();

                if (existeUsername)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.BadRequest, new{ mensaje = "Actualmente existe un usuario con ese username" });
                }

                //Creacion del nuevo usuario
                var usuarioNuevo = new Usuario {
                    NombreCompleto = request.Nombre + " " + request.Apellidos,
                    Email          = request.Email,
                    UserName       = request.Username
                };

                var resultado = await _userManager.CreateAsync(usuarioNuevo, request.Password);

                if (resultado.Succeeded)
                {
                    return(new UsuarioData {
                        NombreCompleto = usuarioNuevo.NombreCompleto,
                        Token = _jwtGenerador.CrearToken(usuarioNuevo),
                        Username = usuarioNuevo.UserName,
                        Email = usuarioNuevo.Email
                    });
                }

                throw new Exception("No se pudo agregar al nuevo Usuarioo");
            }
コード例 #27
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var existe = await _context.Users.Where(x => x.Email == request.Email).AnyAsync();

                if (existe)
                {
                    throw new ManejadorException(HttpStatusCode.BadRequest, new { mensaje = "Existe un usuario registrado con ese Email" });
                }

                var existeUserName = await _context.Users.Where(x => x.UserName == request.Username).AnyAsync();

                if (existe)
                {
                    throw new ManejadorException(HttpStatusCode.BadRequest, new { mensaje = "Existe un usuario con este username" });
                }

                var usuario = new Usuario {
                    //NombreCompleto =  request.Nombre + " " + request.Apellidos,
                    Nombre    = request.Nombre,
                    Apellidos = request.Apellidos,
                    Email     = request.Email,
                    UserName  = request.Username
                };

                var resultado = await _userManager.CreateAsync(usuario, request.Password);

                if (resultado.Succeeded)//Si el resultado es exitoso
                {
                    return(new UsuarioData {
                        //NombreCompleto = usuario.NombreCompleto,
                        Nombre = usuario.Nombre,
                        Apellidos = usuario.Apellidos,
                        Token = _jwtGenerador.CrearToken(usuario, null),//Se pasa un null porque recien se esta creando el usuario y no tiene roles
                        Email = usuario.Email,
                        UserName = usuario.UserName
                    });
                }
                throw new Exception("No se pudo agregar el nuevo usuario");
            }
コード例 #28
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var existe = await _cursosbasesContext.Users.Where(x => x.Email == request.Email).AnyAsync();

                if (existe)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.BadRequest, new { mensaje = "El Email ya existe, con un usuario registrado" });
                }

                var existeUserName = await _cursosbasesContext.Users.Where(y => y.UserName == request.UserName).AnyAsync();

                if (existeUserName)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.BadRequest, new { mensaje = "El UserName ya existe, con un usuario registrado" });
                }

                var usuario = new Usuario
                {
                    NombreUsuario = request.Nombre + " " + request.Apellidos,
                    Email         = request.Email,
                    UserName      = request.UserName
                };

                var resultado = await _userManager.CreateAsync(usuario, request.Password);

                if (resultado.Succeeded)
                {
                    return(new UsuarioData {
                        NombreCompleto = usuario.NombreUsuario,
                        Token = _jwtGenerador.CrearToken(usuario),
                        UserName = usuario.UserName,
                        Email = usuario.Email
                    });
                }

                throw new Exception("No se puede agregar al usuario");
            }
コード例 #29
0
            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 = "Usuario a actualizar no encontrado" });
                }

                var email = await _context.Users.Where(x => x.Email == request.Email && x.UserName != request.UserName).AnyAsync();

                if (email)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.InternalServerError, new { mensaje = "Email ya existe " });
                }

                usuario.NombreCompleto = request.NombreCompleto;
                usuario.Email          = request.Email;
                usuario.PasswordHash   = _passwordHasher.HashPassword(usuario, request.Password);
                var resultados = await _userManager.UpdateAsync(usuario);

                var roles = await _userManager.GetRolesAsync(usuario);

                List <string> rolesLista = new List <string>(roles);

                if (resultados.Succeeded)
                {
                    return(new UsuarioData {
                        NombreCompleto = usuario.NombreCompleto,
                        Email = usuario.Email,
                        Username = usuario.UserName,
                        Token = _jwtGenerador.CrearToken(usuario, rolesLista)
                    });
                }

                throw new ManejadorExcepcion(HttpStatusCode.BadRequest, new { mensaje = "Error al actualizar, revise sus datos" });
            }
コード例 #30
0
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var existe = await _context.Users.Where(x => x.Email == request.Email).AnyAsync();

                if (existe)
                {
                    throw new ExceptionHandler(HttpStatusCode.BadRequest, new { mensaje = "El email ingresado ya existe" });
                }

                var existeUsername = await _context.Users.Where(x => x.UserName == request.Username).AnyAsync();

                if (existeUsername)
                {
                    throw new ExceptionHandler(HttpStatusCode.BadRequest, new { mensaje = "El userName ya existe" });
                }

                var usuario = new Usuario {
                    NombreCompleto = request.NombreCompleto,
                    Email          = request.Email,
                    UserName       = request.Username
                };

                var resultado = await _userManager.CreateAsync(usuario, request.Password);

                //como recien se crea el rol es nulo
                if (resultado.Succeeded)
                {
                    return(new UsuarioData {
                        NombreCompleto = usuario.NombreCompleto,
                        Token = _jwtGenerador.CrearToken(usuario, null),
                        Username = usuario.UserName,
                        Email = usuario.Email
                    });
                }

                throw new Exception("No se pudo agregar usuario");
            }