158 lines
5.1 KiB
C#
158 lines
5.1 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using REC_HUMA.CORE.Entities;
|
|
using REC_HUMA.CORE.Interfaces;
|
|
using REC_HUMA.INFRASTRUCTURE;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace REC_HUMA.INFRASTRUCTURE.Repositories
|
|
{
|
|
public class PersonaRepo : IPersonaRepo
|
|
{
|
|
private readonly RECHUMAContext _Context;
|
|
private readonly ISolicitudVacacionesRepo _solicitudVacaciones;
|
|
private readonly IDiasAcreditadosPeriodoRepo _diasAcreditadosPeriodoRepo;
|
|
|
|
public PersonaRepo(RECHUMAContext Context, ISolicitudVacacionesRepo solicitudVacaciones, IDiasAcreditadosPeriodoRepo diasAcreditadosPeriodoRepo)
|
|
{
|
|
_Context = Context;
|
|
_solicitudVacaciones = solicitudVacaciones;
|
|
_diasAcreditadosPeriodoRepo = diasAcreditadosPeriodoRepo;
|
|
}
|
|
|
|
public async Task<IEnumerable<Persona>> GetPersonas()
|
|
{
|
|
try
|
|
{
|
|
var personas = await _Context.Persona.ToListAsync();
|
|
return personas;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw;
|
|
}
|
|
}
|
|
|
|
public async Task<Persona> GetPersona(int IdPersona)
|
|
{
|
|
try
|
|
{
|
|
var persona = await _Context.Persona.FirstOrDefaultAsync(p => p.IdPersona == IdPersona);
|
|
return persona;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
public async Task<Persona> GetPersonaEmail(string Correo)
|
|
{
|
|
try
|
|
{
|
|
var persona = await _Context.Persona.FirstOrDefaultAsync(p => p.Correo.ToLower().Trim() == Correo.ToLower().Trim());
|
|
return persona;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
public async Task<bool> PutPersona(Persona persona)
|
|
{
|
|
try
|
|
{
|
|
var personaActual = await GetPersona(persona.IdPersona);
|
|
|
|
personaActual.IdTipoIdentificacion = persona.IdTipoIdentificacion;
|
|
personaActual.NoIdentificacion = persona.NoIdentificacion;
|
|
personaActual.Nombre = persona.Nombre;
|
|
personaActual.PrimerApellido = persona.PrimerApellido;
|
|
personaActual.SegundoApellido = persona.SegundoApellido;
|
|
personaActual.FechaNacimiento = persona.FechaNacimiento;
|
|
personaActual.IdPaisNacionalidad = persona.IdPaisNacionalidad;
|
|
personaActual.IdEstadoCivil = persona.IdEstadoCivil;
|
|
personaActual.Direccion = persona.Direccion;
|
|
personaActual.Correo = persona.Correo;
|
|
personaActual.IdUniversidad = persona.IdUniversidad;
|
|
personaActual.IdGradoAcademico = personaActual.IdGradoAcademico;
|
|
personaActual.Titulo = persona.Titulo;
|
|
personaActual.IdEmpresa = persona.IdEmpresa;
|
|
personaActual.IdPuesto = persona.IdPuesto;
|
|
personaActual.IdTipoNombramiento = persona.IdTipoNombramiento;
|
|
personaActual.FechaIngreso = persona.FechaIngreso;
|
|
personaActual.FechaAscenso = persona.FechaAscenso;
|
|
personaActual.FechaSalida = persona.FechaSalida;
|
|
personaActual.SalarioBruto = persona.SalarioBruto;
|
|
//personaActual.TelefonoPrincipal = persona.TelefonoPrincipal;
|
|
//personaActual.TelefonoSecundario = persona.TelefonoSecundario;
|
|
//personaActual.IdEstado = persona.IdEstado;
|
|
|
|
int rows = await _Context.SaveChangesAsync();
|
|
return rows > 0;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public async Task PostPersona(Persona persona)
|
|
{
|
|
try
|
|
{
|
|
_Context.Persona.Add(persona);
|
|
await _Context.SaveChangesAsync();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw;
|
|
}
|
|
}
|
|
|
|
public async Task<bool> DeletePersona(int IdPersona)
|
|
{
|
|
try
|
|
{
|
|
var solicitudes = await _solicitudVacaciones.GetSolicitudesId(IdPersona);
|
|
|
|
if (solicitudes.Count() != 0)
|
|
{
|
|
_Context.SolicitudVacaciones.RemoveRange(solicitudes);
|
|
await _Context.SaveChangesAsync();
|
|
}
|
|
|
|
var dias = await _diasAcreditadosPeriodoRepo.GetAllDiasAcreditadosId(IdPersona);
|
|
|
|
if (dias.Count() != 0)
|
|
{
|
|
_Context.DiasAcreditadosPeriodo.RemoveRange(dias);
|
|
await _Context.SaveChangesAsync();
|
|
}
|
|
|
|
var personaActual = await GetPersona(IdPersona);
|
|
_Context.Persona.Remove(personaActual);
|
|
|
|
int rows = await _Context.SaveChangesAsync();
|
|
return rows > 0;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|