TFS_ANTIGUO/SInCathay/ULA.Cathay.ModuloMantenimiento/ControllersWebApi/ControlCarteraAPIController.cs

187 lines
No EOL
8.1 KiB
C#

using NLog;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using ULA.Cathay.CreditoModel.Credito;
using ULA.Cathay.ModuloMantenimiento.Commons;
using ULA.Cathay.ModuloMantenimiento.Json;
using Ultimus.Interfaces;
using System.Data.Entity;
using System.Data.Entity.Validation;
using Ultimus.Utilitarios;
namespace ULA.Cathay.ModuloMantenimiento.ControllersWebApi
{
public class ControlCarteraAPIController : ApiController
{
private static Logger logger = LogManager.GetLogger("ControlCarteraAPIController");
private string _IDLogger;
public string IDLogger
{
get { return _IDLogger; }
set { _IDLogger = string.Format("INCIDENT {0}|", value); }
}
#region ControlCartera
#region ObtenerControlCartera
[HttpGet]
public List<ControlCartera> ObtenerControlCartera(bool? Generada)
{
List<ControlCartera> respuesta = new List<ControlCartera>();
try
{
using (CreditoContex db = new CreditoContex())
{
respuesta = db.ControlCartera.Include(e => e.TipoCategoria)
.Include(e => e.TipoCliente)
.Include(e => e.ClasificacionCliente)
.Include(e => e.TipoFuenteIngreso)
.Include(e => e.TipoSolicitante)
.Include(e => e.Moneda)
.Where(e => Generada == false ? (e.SolicitudGenerada == null || e.SolicitudGenerada == false) : e.SolicitudGenerada == true)
.AsNoTracking().ToList();
}
}
catch (Exception ex)
{
logger.Error(IDLogger + " Error " + Utilities.GetCurrentMethodName() + "=" + ex.Message + ex.StackTrace);
}
return respuesta;
}
#endregion
#region ModificarItem
[HttpPost]
public BaseJson ModificarItem(ControlCartera model)
{
BaseJson ModelReturn = new BaseJson();
try
{
ModelReturn.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
using (CreditoContex db = new CreditoContex())
{
if (db.ControlCartera.Where(t => t.IdLinea == model.IdLinea && t.SolicitudGenerada != true && t.IdCartera != model.IdCartera).Any())
{
ModelReturn.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
ModelReturn.DescripcionRespuesta = "Ya existe el número de línea registrado dentro de Control Cartera en otro Item. <br>No es posible registrar la línea nuevamente.<br><br>De ser requerido proceda con la selección y actualización de los datos asociados a la línea que está tratando de registrar.";
return ModelReturn;
}
ControlCartera _model = db.ControlCartera.Where(t => t.IdCartera == model.IdCartera).FirstOrDefault();
model.ClearVirtualProperties();
if (_model != null)
{
//_model.IdLinea = model.IdLinea;
//_model.NombreCliente = model.NombreCliente;
//_model.MontoLinea = model.MontoLinea;
//_model.IdMoneda = model.IdMoneda;
//_model.FechaVencimiento = model.FechaVencimiento;
//_model.Comentarios = model.Comentarios;
//_model.ForzarRenovacion = model.ForzarRenovacion;
//_model.IdTipoCategoria = model.IdTipoCategoria;
//_model.IdTipoCliente = model.IdTipoCliente;
//_model.IdClasificacionCliente = model.IdClasificacionCliente;
//_model.IdTipoIngreso = model.IdTipoIngreso;
//_model.IdTipoSolicitante = model.IdTipoSolicitante;
db.Entry(_model).State = System.Data.Entity.EntityState.Detached;
db.ControlCartera.Attach(model);
db.Entry(model).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
}
}
}
catch (Exception ex)
{
ModelReturn.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
ModelReturn.DescripcionRespuesta = ex.Message;
logger.Error(IDLogger + " Error " + Utilities.GetCurrentMethodName() + "=" + ex.Message + ex.StackTrace);
}
return ModelReturn;
}
#endregion
#region InsertarItem
[HttpPost]
public BaseJson InsertarItem(ControlCartera model)
{
int? Next_id;
int idActual;
BaseJson ModelReturn = new BaseJson();
ControlCartera _model = new ControlCartera();
try
{
ModelReturn.CodigoRespuesta = TipoCodigoRespuesta.EXITOSO.ToString();
using (CreditoContex db = new CreditoContex())
{
_model = db.ControlCartera.Where(t => t.IdLinea == model.IdLinea && t.SolicitudGenerada != true).FirstOrDefault();
if (_model != null)
{
ModelReturn.CodigoRespuesta = TipoCodigoRespuesta.ADVERTENCIA.ToString();
ModelReturn.DescripcionRespuesta = "Ya existe el número de línea registrado dentro de Control Cartera. <br>No es posible registrarla nuevamente.<br>De ser requerido proceda con la selección y actualización de los datos asociados a la línea";
return ModelReturn;
}
Next_id = db.ControlCartera.Max(t => (int?)t.IdCartera);
idActual = (Next_id == null) ? 0 : Convert.ToInt32(Next_id);
_model = new ControlCartera();
_model.IdCartera = (idActual + 1);
_model.IdLinea = model.IdLinea;
_model.NombreCliente = model.NombreCliente;
_model.MontoLinea = model.MontoLinea;
_model.IdMoneda = model.IdMoneda;
_model.FechaVencimiento = model.FechaVencimiento;
_model.Comentarios = model.Comentarios;
_model.UsuarioCreador = model.UsuarioCreador;// no esta aceptando null da error si no lo trae
_model.FechaCreacion = DateTime.Now;
_model.SolicitudGenerada = model.SolicitudGenerada;
_model.IdSolicitud = model.IdSolicitud;
_model.FechaIncidente = model.FechaIncidente;
_model.ForzarRenovacion = model.ForzarRenovacion;
_model.Incidente = null;
_model.IdTipoCategoria = model.IdTipoCategoria;
_model.IdTipoCliente = model.IdTipoCliente;
_model.IdClasificacionCliente = model.IdClasificacionCliente;
_model.IdTipoIngreso = model.IdTipoIngreso;
_model.IdTipoSolicitante = model.IdTipoSolicitante;
_model.ClearVirtualProperties();
db.ControlCartera.Add(_model);
db.SaveChanges();
}
}
catch (Exception ex)
{
ModelReturn.CodigoRespuesta = TipoCodigoRespuesta.ERROR.ToString();
ModelReturn.DescripcionRespuesta = ex.Message;
logger.Error(IDLogger + " Error " + Utilities.GetCurrentMethodName() + "=" + ex.Message + ex.StackTrace);
}
return ModelReturn;
}
#endregion
#endregion
}
}