Example #1
0
            public async Task <UsuarioResponse> Handle(RequestLogger request, CancellationToken cancellationToken)
            {
                var user = await _userManager.FindByEmailAsync(request.Email);

                if (user == null)
                {
                    throw new Exception("No permisos");
                }

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

                var responseRoles = await _userManager.GetRolesAsync(user);

                var lstRoles = responseRoles.MapTo <List <string> >();

                if (resultado.Succeeded)
                {
                    return(new UsuarioResponse
                    {
                        NombreCompleto = user.NombreCompleto,
                        Token = _jWT.CrearToken(user, lstRoles),
                        Username = user.UserName,
                        Email = user.Email,
                        RoleUser = user.RoleUser
                    });
                }

                throw new Exception("No se logro el loggin");
            }
Example #2
0
            public async Task <UsuarioResponse> Handle(RequestRegisterUser request, CancellationToken cancellationToken)
            {
                var existe = await _pruebaBdContext.Users.Where(x => x.Email == request.Email).AnyAsync();

                if (existe)
                {
                    throw new Exception("Error existe el email");
                }

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

                if (existeUserName)
                {
                    throw new Exception("Error existe el username");
                }

                var existRole = await _roleManager.FindByNameAsync(request.RoleUser);

                if (existRole == null)
                {
                    throw new Exception("No existe el role");
                }

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

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

                if (resultado.Succeeded)
                {
                    var user = await _userManager.FindByNameAsync(request.UserName);

                    var role = await _userManager.AddToRoleAsync(user, request.RoleUser);

                    return(new UsuarioResponse
                    {
                        NombreCompleto = usuario.NombreCompleto,
                        Token = _jWT.CrearToken(usuario, null),
                        Email = usuario.Email,
                        Username = usuario.UserName,
                        RoleUser = usuario.RoleUser
                    });
                }

                throw new Exception("Error registrar");
            }