コード例 #1
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="request"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuario = await _userManager.FindByEmailAsync(request.Email);

                if (usuario == null)
                {
                    throw new ManejadorExcepcion(System.Net.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,
                        Email = usuario.Email,
                        Token = _jwtGenerador.crearToken(usuario, listaRoles),
                        UserName = usuario.UserName,
                        Imagen = null
                    });
                }



                throw new ManejadorExcepcion(System.Net.HttpStatusCode.Unauthorized);
            }
コード例 #2
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="request"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var usuarioToken = await _userManager.FindByNameAsync(request.UserName);


                if (usuarioToken == null)
                {
                    throw new ManejadorExcepcion(System.Net.HttpStatusCode.NotFound, new
                    {
                        Mensaje = "No existe un usuario con este userName"
                    });
                }


                ///Evaluar si un usuario ya tiene ese email.
                var result = await _contex.Users.Where(x => x.Email == request.Email &&
                                                       x.UserName != request.UserName).AnyAsync();



                if (result)
                {
                    throw new ManejadorExcepcion(System.Net.HttpStatusCode.InternalServerError, new
                    {
                        Mensaje = "Este email pertenece a otro usuario"
                    });
                }



                usuarioToken.NombreCompleto = request.NombreCompleto;
                //Método para encriptar el password
                usuarioToken.PasswordHash = _passwordHasher.HashPassword(usuarioToken, request.Password);
                usuarioToken.Email        = request.Email;



                var resultUpdate = await _userManager.UpdateAsync(usuarioToken);

                var resultRoles = await _userManager.GetRolesAsync(usuarioToken);

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


                if (resultUpdate.Succeeded)
                {
                    return(new UsuarioData
                    {
                        NombreCompleto = usuarioToken.NombreCompleto,
                        UserName = usuarioToken.UserName,
                        Imagen = usuarioToken.Email,
                        Token = _jwtGenerador.crearToken(usuarioToken, listRoles)
                    });
                }


                throw new Exception("No se pudo actualizar el usuario");
            }
コード例 #3
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="request"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <UsuarioData> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var existe = await _cursosContext.Users.Where(
                    x => x.Email == request.Email).AnyAsync();


                if (existe)
                {
                    throw new ManejadorExcepcion(System.Net.HttpStatusCode.BadRequest,
                                                 new { mensaje = "Ya éxiste un usuario registrado con ese Email" });
                }


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



                if (existeUserName)
                {
                    throw new ManejadorExcepcion(System.Net.HttpStatusCode.BadRequest, new
                    {
                        mensaje = "Existe ya un usuario 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),
                        UserName = usuario.UserName,
                        Email = usuario.Email
                    });
                }


                throw new Exception("No se pudo agregar al nuevo usuario");
            }
コード例 #4
0
ファイル: UsuarioActual.cs プロジェクト: magefra/CursosOnline
            /// <summary>
            ///
            /// </summary>
            /// <param name="request"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            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
                {
                    UserName = usuario.UserName,
                    NombreCompleto = usuario.NombreCompleto,
                    Token = _jwtGenerador.crearToken(usuario, listaRoles),
                    Email = usuario.Email,
                    Imagen = usuario.Email
                });
            }