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"); }
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"); }