181 lines
6.1 KiB
C#
181 lines
6.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using ULA.Cathay.CreditoModel.Credito;
|
|
using ULA.Cathay.CreditoModel.Entidades;
|
|
using Ultimus.Utilitarios;
|
|
using System.Data.Entity;
|
|
using System.Data.Entity.Validation;
|
|
|
|
namespace ULA.Cathay.CreditoModel.DAL.Credito
|
|
{
|
|
public class SolicitudDAL
|
|
{
|
|
private UltimusLogs logger = new UltimusLogs("SolicitudDAL");
|
|
|
|
public Solicitud Obtener(int IdSolicitud)
|
|
{
|
|
Solicitud ObjSolicitud = new Solicitud();
|
|
|
|
try
|
|
{
|
|
using (CreditoContex db = new CreditoContex())
|
|
ObjSolicitud = db.Solicitud.Where(x => x.IdSolicitud == IdSolicitud).FirstOrDefault();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ObjSolicitud = null;
|
|
logger.Error(ex);
|
|
}
|
|
finally
|
|
{
|
|
|
|
}
|
|
return ObjSolicitud;
|
|
}
|
|
|
|
public Solicitud Obtener(int Incident, string Proceso)
|
|
{
|
|
Solicitud ObjSolicitud = new Solicitud(); ;
|
|
|
|
try
|
|
{
|
|
using (CreditoContex db = new CreditoContex())
|
|
{
|
|
if (Proceso == "Formalizacion")
|
|
ObjSolicitud = db.DatosGeneralesFormalizacion.Include(c => c.Solicitud).Where(c => c.Incident == Incident).Select(c => c.Solicitud).FirstOrDefault();
|
|
else if(Proceso == "Seguimiento")
|
|
ObjSolicitud = db.DatosGeneralesSeguimiento.Include(c => c.Solicitud).Where(c => c.Incident == Incident).Select(c => c.Solicitud).FirstOrDefault();
|
|
else
|
|
{
|
|
ObjSolicitud = db.Solicitud
|
|
.Where(x => x.Incidente == Incident
|
|
&& x.Proceso.Trim().ToLower().Contains(Proceso.Trim().ToLower())).FirstOrDefault();
|
|
}
|
|
}
|
|
|
|
logger.Trace(string.Format("*{0}*{1}*{2}", Proceso, Incident, ObjSolicitud != null));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ObjSolicitud = null;
|
|
logger.Error(ex);
|
|
|
|
}
|
|
finally
|
|
{
|
|
|
|
}
|
|
return ObjSolicitud;
|
|
}
|
|
|
|
public void Actualizar(Solicitud model)
|
|
{
|
|
try
|
|
{
|
|
model.ClearVirtualProperties();
|
|
using (CreditoContex db = new CreditoContex())
|
|
{
|
|
Solicitud _model = db.Solicitud.AsNoTracking().Where(t => t.IdSolicitud == model.IdSolicitud).FirstOrDefault();
|
|
if (_model != null)
|
|
{
|
|
model.Solicitante = null;
|
|
db.Solicitud.Attach(model);
|
|
db.Entry(model).State = EntityState.Modified;
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
|
|
}
|
|
catch (DbEntityValidationException ex1)
|
|
{
|
|
logger.Error(ex1);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex);
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
public Solicitud Insertar(Solicitud model)
|
|
{
|
|
try
|
|
{
|
|
using (CreditoContex db = new CreditoContex())
|
|
{
|
|
Solicitud actual = db.Solicitud.AsNoTracking().Where(x => x.IdSolicitud == model.IdSolicitud).FirstOrDefault();
|
|
model.ClearVirtualProperties();
|
|
|
|
if (actual == null)
|
|
{
|
|
int? Next_id;
|
|
Next_id = db.Solicitud.Max(t => (int?)t.IdSolicitud);
|
|
model.IdSolicitud = Next_id.HasValue ? Next_id.Value + 1 : 1;
|
|
|
|
Next_id = null;
|
|
Next_id = db.Solicitud.Where(c => c.Proceso == model.Proceso).Max(t => (int?)t.IdSolicitudProceso);
|
|
model.IdSolicitudProceso = Next_id.HasValue ? Next_id.Value + 1 : 1;
|
|
|
|
model.FechaCreacion = DateTime.Now;
|
|
model.FechaModificacion = DateTime.Now;
|
|
model.IdEstadoBandeja = string.IsNullOrEmpty(model.IdEstadoBandeja) ? "N" : model.IdEstadoBandeja;
|
|
|
|
db.Solicitud.Add(model);
|
|
}
|
|
else
|
|
{
|
|
model.FechaModificacion = DateTime.Now;
|
|
model.FechaCreacion = actual.FechaCreacion;
|
|
model.UsuarioCreador = actual.UsuarioCreador;
|
|
|
|
db.Solicitud.Attach(model);
|
|
db.Entry(model).State = EntityState.Modified;
|
|
}
|
|
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
catch (DbEntityValidationException ex)
|
|
{
|
|
logger.Error(ex);
|
|
throw ex;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex);
|
|
throw ex;
|
|
}
|
|
return model;
|
|
}
|
|
|
|
|
|
public List<Solicitud> ObtenerSolicitudesNoEnviadas(string UsuarioIngresador)
|
|
{
|
|
|
|
List<Solicitud> listaSolicitudNoEnviada = new List<Solicitud>();
|
|
|
|
try
|
|
{
|
|
using (CreditoContex Conn = new CreditoContex())
|
|
{
|
|
|
|
listaSolicitudNoEnviada = Conn.Solicitud
|
|
.Include(x => x.Solicitante)
|
|
.Include("Solicitante.Cliente")
|
|
.Where(x => x.UsuarioCreador.Contains(UsuarioIngresador) == true
|
|
&& x.IdEstadoBandeja == EnumEstadoSolicitud.NOENVIADA
|
|
).ToList();
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex);
|
|
}
|
|
|
|
return listaSolicitudNoEnviada;
|
|
}
|
|
|
|
}
|
|
}
|