118 lines
4.9 KiB
C#
118 lines
4.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Ultimus.Utilitarios;
|
|
using ULA.Cathay.CreditoModel.Credito;
|
|
using System.Data.Entity;
|
|
using Ultimus.Interfaces;
|
|
using System.Data.Entity.Validation;
|
|
|
|
namespace ULA.Cathay.CreditoModel.DAL.Credito
|
|
{
|
|
public class FuncionarioJSON : Funcionario
|
|
{
|
|
public string CodigoRespuesta { get; set; }
|
|
public string DescripcionRespuesta { get; set; }
|
|
}
|
|
|
|
|
|
public class FuncionarioDAL
|
|
{
|
|
|
|
private UltimusLogs logs = new UltimusLogs("FuncionarioDAL");
|
|
|
|
|
|
/// <summary>
|
|
/// Obtiene la información de la tabla Global.Funcionario para la solicitud específica.
|
|
/// </summary>
|
|
/// <param name="IdSolicitud">Número de la solicitud</param>
|
|
/// <returns></returns>
|
|
public List<Funcionario> Obtener(int IdSolicitud, int? Incidente)
|
|
{
|
|
List<Funcionario> _model = null;
|
|
try
|
|
{
|
|
using (CreditoContex db = new CreditoContex())
|
|
{
|
|
_model = db.Funcionario
|
|
.Where(c => c.IdSolicitud == IdSolicitud && ((Incidente == null) || (c.Incident == Incidente)))
|
|
.Include(c => c.Procesos)
|
|
.Include(c => c.RolFuncional)
|
|
.Include(c => c.EstructuraOrgChart)
|
|
.Include(c => c.EstructuraOrgChart.RolFuncionalEstructuraOrgChart)
|
|
//.Include("EstructuraOrgChart.RolFuncionalEstructuraOrgChart.RolFuncional")
|
|
.ToList();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logs.Error(ex);
|
|
}
|
|
return _model;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Registra(insertando o actualizando) en la tabla Global.Funcionario la información enviada por parámetro.
|
|
/// </summary>
|
|
/// <param name="model">Objeto de la clase Funcionario cargado con la informacion a ser registrada en la BD</param>
|
|
/// <returns>Objeto de la clase FuncionarioJSON actualizado con la informacion de los indices y data que se registró en la BD</returns>
|
|
public FuncionarioJSON InsertarActualizar(Funcionario model)
|
|
{
|
|
Funcionario _modeloActual = null;
|
|
FuncionarioJSON ValorRetorno = new FuncionarioJSON();
|
|
|
|
try
|
|
{
|
|
using (CreditoContex Conn = new CreditoContex())
|
|
{
|
|
_modeloActual = Conn.Funcionario.Where(q => q.IdSolicitud == model.IdSolicitud).FirstOrDefault();
|
|
if (model.IdProceso == 0) { model.IdProceso = new ProcesosDAL().ObtenerIdProceso(model.Procesos); }
|
|
|
|
model.Procesos = null;
|
|
model.Solicitud = null;
|
|
model.EstructuraOrgChart = null;
|
|
model.RolFuncional = null;
|
|
|
|
if (_modeloActual != null)
|
|
{
|
|
Conn.Entry(_modeloActual).State = System.Data.Entity.EntityState.Detached;
|
|
Conn.Funcionario.Attach(_modeloActual);
|
|
Conn.Entry(_modeloActual).State = System.Data.Entity.EntityState.Deleted;
|
|
|
|
model.IdRolFuncional = model.IdRolFuncional > 0 ? model.IdRolFuncional : _modeloActual.IdRolFuncional;
|
|
model.IdEstructuraOrgChart = model.IdEstructuraOrgChart > 0 ? model.IdEstructuraOrgChart : _modeloActual.IdEstructuraOrgChart;
|
|
model.UserId = !string.IsNullOrEmpty(model.UserId) ? model.UserId : _modeloActual.UserId;
|
|
model.FullName = !string.IsNullOrEmpty(model.FullName) ? model.FullName : _modeloActual.FullName;
|
|
model.Email = !string.IsNullOrEmpty(model.Email) ? model.Email : _modeloActual.Email;
|
|
}
|
|
|
|
Conn.Funcionario.Add(model);
|
|
Conn.SaveChanges();
|
|
}
|
|
|
|
ValorRetorno.CopyValueProperties(model);
|
|
ValorRetorno.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
|
|
}
|
|
catch (DbEntityValidationException exs)
|
|
{
|
|
ValorRetorno.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
logs.Error(exs);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ValorRetorno.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
|
|
ValorRetorno.DescripcionRespuesta = ex.Message;
|
|
|
|
logs.Error(ex);
|
|
}
|
|
finally
|
|
{
|
|
_modeloActual = null;
|
|
}
|
|
|
|
return ValorRetorno;
|
|
}
|
|
|
|
}
|
|
}
|