private async Task InsertaAreTematicaFondoUpdate(FondoPrograma model) { try { foreach (var item in model.areasNuevos) { //Crea el objeto de la tabla en la que se desea agregar el registro TematicaPorFondoPrograma obj = new TematicaPorFondoPrograma(); //Agrega los datos de la tabla de acuerdo a lo que trae el modelo obj.FondoProgramaId = model.FondoProgramaId; obj.TematicaId = item; obj.FechaRegistro = model.FechaRegistro; obj.Autor = model.Autor; obj.Estado = true; var entities = _db.TematicaPorFondoPrograma.Add(obj); await _db.SaveChangesAsync(); } } catch (Exception e) { throw new Exception(e.Message, e); } }
private async Task EliminaSitioWebFondoPrograma(FondoPrograma model) { try { foreach (var item in model.sitiosWebAntDel) { //Crea el objeto de la tabla en la que se desea agregar el registro SitioWebFondoPrograma objSitioWebFondoPrograma = new SitioWebFondoPrograma(); var _model = await _db.SitioWebFondoPrograma.FirstOrDefaultAsync(e => e.SitioWebFondoProgramaId == item); if (_model != null) { _db.SitioWebFondoPrograma.Remove(_model); await _db.SaveChangesAsync(); } //var entities = _db.SitioWebFondoPrograma.Remove(objSitioWebFondoPrograma); //await _db.SaveChangesAsync(); } } catch (Exception e) { throw new Exception(e.Message, e); } }
private async Task InsertaSitioWebFondoProgramaUpdate(FondoPrograma model) { try { foreach (var item in model.sitiosWebNuevos) { //Crea el objeto de la tabla en la que se desea agregar el registro SitioWebFondoPrograma objSitioWebFondoPrograma = new SitioWebFondoPrograma(); //Agrega los datos de la tabla de acuerdo a lo que trae el modelo objSitioWebFondoPrograma.FondoProgramaId = model.FondoProgramaId; objSitioWebFondoPrograma.Url = item; objSitioWebFondoPrograma.Descripcion = "Url de " + model.NombreFP; objSitioWebFondoPrograma.FechaRegistro = model.FechaRegistro; objSitioWebFondoPrograma.Autor = model.Autor; objSitioWebFondoPrograma.Estado = true; var entities = _db.SitioWebFondoPrograma.Add(objSitioWebFondoPrograma); await _db.SaveChangesAsync(); } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <IHttpActionResult> Update([FromBody] FondoPrograma model) { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); await _entityRepo.Update(model); return(Ok("Registro actualizado exitosamente!")); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task <IHttpActionResult> GetConsultaParametrizadaFondo(FondoPrograma parametros) { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); var entity = await _entityRepo.GetConsultaParametrizadaFondo(parametros); return(Ok(entity)); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task UpdateEstado(FondoPrograma model) { try { var _model = await _db.FondoPrograma.FirstOrDefaultAsync(e => e.FondoProgramaId == model.FondoProgramaId); if (_model != null) { _model.Estado = model.Estado; await _db.SaveChangesAsync(); } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <IHttpActionResult> Create([FromBody] FondoPrograma model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { log.Info(new MDCSet(this.ControllerContext.RouteData)); await _entityRepo.Create(model); return(Ok("Registro creado exitosamente!")); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task Update(FondoPrograma model) { try { var _model = await _db.FondoPrograma.FirstOrDefaultAsync(e => e.FondoProgramaId == model.FondoProgramaId); if (_model != null) { //if (model.sitiosWebAntDel.Length > 0) //{ // //Elimina los sitios web que tenia dados de alta y elimino al actualizar // await EliminaSitioWebFondoPrograma(model); //} //if (model.sitiosWebNuevos.Length > 0) //{ // await InsertaSitioWebFondoProgramaUpdate(model); //} if (model.areasNuevos.Length > 0) { await InsertaAreTematicaFondoUpdate(model); } if (model.areasAntDel.Length > 0) { await EliminaAreasFondo(model); } _db.Entry(_model).CurrentValues.SetValues(model); await _db.SaveChangesAsync(); } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task Create(FondoPrograma model) { try { _db.FondoPrograma.Add(model); await _db.SaveChangesAsync(); if (model.seleccion.Length >= 0) { await ConsultaIdFondoPrograma(model); } if (model.sitiosWeb.Length >= 0) { await InsertaSitioWebFondoPrograma(model); } } catch (Exception e) { throw new Exception(e.Message, e); } }
private async Task EliminaAreasFondo(FondoPrograma model) { try { foreach (var item in model.areasAntDel) { //Crea el objeto de la tabla en la que se desea agregar el registro TematicaPorFondoPrograma obj = new TematicaPorFondoPrograma(); var _model = await _db.TematicaPorFondoPrograma.FirstOrDefaultAsync(e => e.TematicaPorFondoProgramaId == item); if (_model != null) { _db.TematicaPorFondoPrograma.Remove(_model); await _db.SaveChangesAsync(); } } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task EliminaPPFondo(FondoPrograma model) { try { if (model.propuestasAnteriores.Length > 0) { foreach (var item in model.propuestasAnteriores) { var propuesta = await _db.PropuestaPorFondo.FirstOrDefaultAsync(e => e.PropuestaId == item && e.FondoId == model.FondoProgramaId); if (propuesta != null) { _db.PropuestaPorFondo.Remove(propuesta); await _db.SaveChangesAsync(); } } } if (model.proyectosAnteriores.Length > 0) { foreach (var item in model.proyectosAnteriores) { var proyecto = await _db.ProyectoPorFondo.FirstOrDefaultAsync(e => e.ProyectoId == item); if (proyecto != null) { _db.ProyectoPorFondo.Remove(proyecto); await _db.SaveChangesAsync(); } } } } catch (Exception e) { throw new Exception(e.Message, e); } }
private async Task ConsultaIdFondoPrograma(FondoPrograma model) { try { foreach (var item in model.seleccion) { TematicaPorFondoPrograma objTema = new TematicaPorFondoPrograma(); //objTema.FondoProgramaId = item.FondoProgramaId; objTema.FondoProgramaId = model.FondoProgramaId; objTema.TematicaId = item; objTema.Autor = model.Autor; objTema.FechaRegistro = model.FechaRegistro; objTema.Estado = true; var entities = _db.TematicaPorFondoPrograma.Add(objTema); await _db.SaveChangesAsync(); } } catch (Exception e) { throw new Exception(e.Message, e); } }
/// <summary> /// Obtener todos los fondos programa por parametros /// </summary> /// <returns></returns> public async Task <IEnumerable <Object> > GetConsultaParametrizadaFondo(FondoPrograma parametros) { try { var fondos = (from fp in _db.FondoPrograma.Include(e => e.Empresa).AsNoTracking() select fp); ///Si la coleccion esta vacia retornaremos null if (fondos != null) { //busqueda por fechas if (!String.IsNullOrEmpty(parametros.busquedaFecha)) //busqueda por fecha { fondos = fondos.Where(e => (DbFunctions.TruncateTime(e.FechaRegistro) >= DbFunctions.TruncateTime(parametros.fechaInicioComparacion) && DbFunctions.TruncateTime(e.FechaRegistro) <= DbFunctions.TruncateTime(parametros.fechaFinalComparacion))); } if (!String.IsNullOrEmpty(parametros.NombreFP)) //busqueda por nombre del FP { var listaNombres = await GetFondosLikeNombreLatin1(parametros.NombreFP); fondos = fondos.Where(e => listaNombres.Contains(e.FondoProgramaId)); } if (parametros.FuenteFinanciamientoId != 0 && parametros.FuenteFinanciamientoId != null) //Busqueda por fuente de financiamiento { fondos = fondos.Where(e => e.FuenteFinanciamientoId == parametros.FuenteFinanciamientoId); } if (parametros.EmpresaId != 0 && parametros.EmpresaId != null) //Busqueda por empresa { fondos = fondos.Where(e => e.EmpresaId == parametros.EmpresaId); } //******Se inicia el proceso de proyeccion****** //Los resultados lo guardaremos en una lista de X objeto List <BusquedaParamsCR> datos = fondos.Select(x => new BusquedaParamsCR //Es una clase no mapeada que contiene caracteristicas //que nos permiten albergar SOLO los datos necesarios { FondoProgramaId = x.FondoProgramaId, //Rescatamos los parametros que se requieren para el front NombreFP = x.NombreFP, NombreEmpresa = x.Empresa.NombreEmpresa, TematicaPorFondoPrograma = x.TematicaPorFondoPrograma, numConvocatorias = x.Convocatoria.Count(), Estado = x.Estado, }).ToList(); var listaFKTematicas = await(from t in _db.TematicaPorFondoPrograma select new { TematicaId = t.TematicaId, FondoProgramaId = t.FondoProgramaId }).AsNoTracking().ToListAsync(); foreach (var c in datos) { //obtenemos los fks de las tematicas asociadas al fondo programa de la iteracion actual var fks = listaFKTematicas.Where(e => e.FondoProgramaId == c.FondoProgramaId).Select(e => e.TematicaId); //Obtenemos el nombre de las tematicas del cat_Tematica c.listaNombretematicas = await(from tematica in _db.Tematica where fks.Contains(tematica.TematicaId) select tematica.Nombre).AsNoTracking().ToListAsync(); } return(datos); //retornamos los datos, y al hacer esto ya no pasamos por el siguiente return (el de abajo) } return(null); //por default, en caso de que no tengamos datos desde el inicio retornamos null } catch (Exception e) { throw new Exception(e.Message, e); } }