Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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));
            }
        }
Exemple #6
0
        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));
            }
        }
Exemple #8
0
        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);
            }
        }
Exemple #9
0
        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);
            }
        }
Exemple #10
0
        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);
            }
        }
Exemple #11
0
        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);
            }
        }
Exemple #12
0
        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);
            }
        }
Exemple #13
0
        /// <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);
            }
        }