public async Task <IActionResult> Login([FromBody] UserInfo user) { //Response.Headers.Add("access-control-allow-origin", "*"); Services.SecurityServices.UserService userService = new Services.SecurityServices.UserService(_configuration, _context); try { var result = userService.AutenticateLogin(user.Email, user.Password); if (result) { var usuarioActivo = await _context.Usuario.FirstOrDefaultAsync(x => x.Email == user.Email); var rolActivo = await _context.Rol.Include(x => x.Vista).Include(x => x.Usuario).FirstOrDefaultAsync(x => x.IdRol == usuarioActivo.IdRol); rolActivo.Usuario = new List <Usuario>() { usuarioActivo }; return(Ok(rolActivo)); } else { ModelState.AddModelError(string.Empty, "Usuario o Contraseña Inválido"); return(BadRequest(ModelState)); } } catch (ArgumentException aeg) { ModelState.AddModelError(string.Empty, aeg.Message); return(BadRequest(ModelState)); } catch (Exception ex) { throw ex; } }
public async Task <IActionResult> AddUsuario([FromBody] Usuario usuario) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } usuario.NombreSuscripcion = usuario.Nombre.ToLower() .Replace(" ", "_") .Replace("á", "a") .Replace("é", "e") .Replace("í", "i") .Replace("ó", "o") .Replace("ú", "u") .Replace("ñ", "n"); usuario.Activo = false; _context.Usuario.Add(usuario); try { await _context.SaveChangesAsync().ConfigureAwait(false); var user = new UserInfo(usuario); Services.SecurityServices.IUserService userService = new Services.SecurityServices.UserService(_configuration, _context); if (await userService.AutenticateAndGenerateNewTokenAsync(user).ConfigureAwait(false)) { usuario.TokenMedio = user.Token; _context.TokenUser.Add(new TokenUser() { IdUser = user.IdUsuario, Email = user.Email, Token = user.Token, SignToken = user.Token.Split('.')[2] }); await _context.SaveChangesAsync().ConfigureAwait(false); Services.MailServices.IMessagingServiceMail messaging = new Services.MailServices.MessageServiceMail(_configuration); await messaging.SendEmailAsync(user.Nombre, user.Email, "Token", GetBodyToken(user), null).ConfigureAwait(false); } await UpdateUsuario(usuario.IdUsuario, usuario); } catch (ArgumentException aex) { ModelState.AddModelError("", aex.Message); return(BadRequest(ModelState)); } catch (DbUpdateException) { if (EmailExists(usuario.Email)) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } else { throw; } } catch (Exception ex) { throw ex; } return(CreatedAtAction("GetUsuario", new { id = usuario.IdUsuario }, usuario)); }