187 lines
6.7 KiB
C#
187 lines
6.7 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using ULA.Cathay.CreditoModel.Credito;
|
||
using Ultimus.Interfaces;
|
||
using Ultimus.Utilitarios;
|
||
|
||
namespace ULA.Cathay.CreditoModel.DAL.Credito
|
||
{
|
||
|
||
public class ControlVisitasDAL
|
||
{
|
||
private UltimusLogs logger = new UltimusLogs("ClienteDAL");
|
||
|
||
|
||
#region Obtener
|
||
|
||
public List<ControlVisitas> Obtener(int IdSolicitud)
|
||
{
|
||
List<ControlVisitas> listaControlVisitas = null;
|
||
|
||
try
|
||
{
|
||
using (CreditoContex db = new CreditoContex())
|
||
{
|
||
listaControlVisitas = new List<ControlVisitas>();
|
||
listaControlVisitas = db.ControlVisitas.Where(cv => cv.IdSolicitud == IdSolicitud).ToList();
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
logger.Error(ex);
|
||
throw ex;
|
||
}
|
||
return listaControlVisitas;
|
||
}
|
||
|
||
public ControlVisitas ObtenerDatosCorreo(int? IdSolicitud, int IdControlVisitas)
|
||
{
|
||
ControlVisitas listaControlVisitas = null;
|
||
|
||
try
|
||
{
|
||
using (CreditoContex db = new CreditoContex())
|
||
{
|
||
listaControlVisitas = new ControlVisitas();
|
||
listaControlVisitas = db.ControlVisitas.Where(cv => cv.IdSolicitud == IdSolicitud && cv.IdControlVisitas== IdControlVisitas ).FirstOrDefault();
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
logger.Error(ex);
|
||
throw ex;
|
||
}
|
||
return listaControlVisitas;
|
||
}
|
||
#endregion
|
||
|
||
#region Insertar
|
||
|
||
|
||
public int InsertarActualizar(ControlVisitas model)
|
||
{
|
||
|
||
EmailSolicitud ModeloEmailActual = new EmailSolicitud();
|
||
List<EmailSolicitud> ModeloEmailnew = new List<EmailSolicitud>();
|
||
ControlVisitas ModeloControlVisitasnew = new ControlVisitas();
|
||
|
||
int IdControlVisita=0;
|
||
int? Next_idvisita;
|
||
int idvisitaActual=0;
|
||
|
||
try
|
||
{
|
||
|
||
using (CreditoContex dataContex = new CreditoContex())
|
||
{
|
||
|
||
|
||
ControlVisitas ModeloActual = dataContex.ControlVisitas.Where(e => e.IdSolicitud == model.IdSolicitud && e.IdControlVisitas == model.IdControlVisitas).FirstOrDefault();
|
||
|
||
Vehiculo ModelVehiculo = dataContex.Vehiculo.Where(x => x.IdVehiculo == model.IdVehiculo).FirstOrDefault();
|
||
if (ModelVehiculo != null)
|
||
model.ValorKilometro = ModelVehiculo.ValorKilometro;
|
||
|
||
|
||
ModeloEmailnew = model.EmailSolicitud.ToList();
|
||
ModeloControlVisitasnew = model;
|
||
ModeloControlVisitasnew.EmailSolicitud = null;
|
||
|
||
|
||
if (ModeloActual != null)
|
||
{
|
||
dataContex.Entry(ModeloActual).State = System.Data.Entity.EntityState.Detached;
|
||
dataContex.ControlVisitas.Attach(ModeloControlVisitasnew);
|
||
dataContex.Entry(ModeloControlVisitasnew).State = System.Data.Entity.EntityState.Modified;
|
||
}
|
||
else
|
||
{
|
||
Next_idvisita = dataContex.ControlVisitas.Max(t => (int?)t.IdControlVisitas);
|
||
idvisitaActual = (Next_idvisita == null) ? 0 : Convert.ToInt32(Next_idvisita);
|
||
ModeloControlVisitasnew.IdControlVisitas = (idvisitaActual+ 1);
|
||
dataContex.ControlVisitas.Add(ModeloControlVisitasnew);
|
||
}
|
||
|
||
dataContex.SaveChanges();
|
||
IdControlVisita = ModeloControlVisitasnew.IdControlVisitas;
|
||
|
||
|
||
#region EmailSolicitud
|
||
|
||
//Remueve los email existentes
|
||
new EmailSolicitudDAL().Remover(new EmailSolicitud() { IdSolicitud = model.IdSolicitud, IdControlVisitas = model.IdControlVisitas });
|
||
|
||
|
||
//Registra los email nuevos
|
||
foreach (EmailSolicitud ItemEmail in ModeloEmailnew)
|
||
{
|
||
ItemEmail.IdSolicitud = model.IdSolicitud;
|
||
|
||
if (ModeloActual == null || ModeloActual.IdControlVisitas == 0)
|
||
ItemEmail.IdControlVisitas = (idvisitaActual + 1);
|
||
else
|
||
ItemEmail.IdControlVisitas = ModeloActual.IdControlVisitas;
|
||
|
||
|
||
EmailSolicitud respInsEmailSolicitud = new EmailSolicitudDAL().Insertar(ItemEmail);
|
||
if (respInsEmailSolicitud == null)
|
||
{
|
||
throw new Exception("Ha ocurrido un error al intentar registrar la informaci<63>n de correo(s)");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
logger.Error(ex);
|
||
throw ex;
|
||
}
|
||
|
||
return IdControlVisita;
|
||
}
|
||
#endregion
|
||
|
||
public BaseJson EliminarControlVisita(ControlVisitas model)
|
||
{
|
||
BaseJson respuesta = new BaseJson();
|
||
try
|
||
{
|
||
using (CreditoContex dataContex = new CreditoContex())
|
||
{
|
||
List<EmailSolicitud> lista = dataContex.EmailSolicitud.Where(x => x.IdControlVisitas == model.IdControlVisitas && x.IdSolicitud == model.IdSolicitud).ToList();
|
||
|
||
foreach (var email in lista)
|
||
{
|
||
List<RecipienteEmailSolicitud> listaRecipiente = dataContex.RecipienteEmailSolicitud.Where(x => x.IdEmailSolicitud == email.IdEmailSolicitud).ToList();
|
||
dataContex.RecipienteEmailSolicitud.RemoveRange(listaRecipiente);
|
||
dataContex.SaveChanges();
|
||
}
|
||
|
||
|
||
|
||
|
||
dataContex.EmailSolicitud.RemoveRange(lista);
|
||
dataContex.SaveChanges();
|
||
|
||
List<ControlVisitas> listaVisita = dataContex.ControlVisitas.Where(x => x.IdControlVisitas == model.IdControlVisitas ).ToList();
|
||
dataContex.ControlVisitas.RemoveRange(listaVisita);
|
||
|
||
dataContex.SaveChanges();
|
||
respuesta.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
logger.Error(ex);
|
||
throw ex;
|
||
}
|
||
return respuesta;
|
||
}
|
||
}
|
||
}
|