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 ObtenerControlCartera(bool? Generada) { List respuesta = new List(); 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.
No es posible registrar la línea nuevamente.

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.
No es posible registrarla nuevamente.
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 } }