97 lines
2.8 KiB
C#
97 lines
2.8 KiB
C#
using APIFicheros.DTOs;
|
|
using bdAsegasa;
|
|
using bdAsegasa.db;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.IdentityModel.Tokens;
|
|
using System.IdentityModel.Tokens.Jwt;
|
|
using System.Security.Claims;
|
|
using System.Text;
|
|
using tsUtilidades;
|
|
namespace APIFicheros
|
|
{
|
|
|
|
|
|
public class Utilidades
|
|
{
|
|
public static string AuthenticateUser(DatosAuth loginDto, IConfiguration _configuration)
|
|
{
|
|
try
|
|
{
|
|
|
|
// Generar token JWT
|
|
var jwtSettings = _configuration.GetSection("Jwt");
|
|
var keyBytes = Encoding.UTF8.GetBytes(jwtSettings["Key"]);
|
|
var key = new SymmetricSecurityKey(keyBytes);
|
|
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
|
|
|
|
|
|
var claims = new List<Claim>
|
|
{
|
|
new Claim("usu", "1"),
|
|
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
|
|
};
|
|
|
|
|
|
var expiration = DateTime.UtcNow.AddMinutes(int.Parse(jwtSettings["ExpireMinutes"]));
|
|
|
|
var token = new JwtSecurityToken(
|
|
issuer: jwtSettings["Issuer"],
|
|
audience: jwtSettings["Audience"],
|
|
claims: claims,
|
|
expires: expiration,
|
|
signingCredentials: creds
|
|
);
|
|
|
|
var tokenString = new JwtSecurityTokenHandler().WriteToken(token);
|
|
|
|
return tokenString;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception($"Error en la autenticación: {ex.Message}");
|
|
}
|
|
}
|
|
|
|
|
|
public static int guardarFichero(bdAsegasa.tscgestionasegasa bd, byte[] fichero,string nombreFichero ,string descripcion, int idDocu)
|
|
{
|
|
int idFichero = 0;
|
|
|
|
try
|
|
{
|
|
|
|
int idTipoFichero = bd.enumeraciones.First(x => x.Codigo.Contains("TIPFIC.DOCPOL")).idEnumeracion;
|
|
int idPoliza = bd.documentospolizassg.First(x => x.idDocumento == idDocu).idPoliza;
|
|
|
|
ficheros nuevoFichero = new ficheros();
|
|
|
|
|
|
nuevoFichero.Fichero = fichero;
|
|
nuevoFichero.NombreFichero = nombreFichero;
|
|
nuevoFichero.Descripcion = descripcion;
|
|
nuevoFichero.Fecha = DateTime.Now;
|
|
nuevoFichero.Observaciones = "Fichero subido desde API";
|
|
nuevoFichero.idTipo = idTipoFichero;
|
|
nuevoFichero.idAplicacion = idPoliza;
|
|
|
|
|
|
bd.ficheros.Add(nuevoFichero);
|
|
|
|
bd.SaveChanges();
|
|
|
|
|
|
idFichero = nuevoFichero.idFichero;
|
|
return idFichero;
|
|
|
|
}
|
|
catch (Exception ex) {
|
|
|
|
throw new Exception("Excepción: " + ex.Message);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|