public Resultado InsertRecurso(Recurso recurso)
        {
            MapperManager.GetInstance();

            try
            {
                var recursoDb = Mapper.Map <Recurso, DataAccess.Models.Recurso>(recurso);
                recursoDb.Activo            = true;
                recursoDb.FechaCreacion     = DateTime.Now;
                recursoDb.FechaModificacion = DateTime.Now;
                dbContext.Recursos.Add(recursoDb);
                dbContext.SaveChanges();

                var recursoMesDb = new DataAccess.Models.RecursoMes
                {
                    RecursoId           = recursoDb.Id,
                    Enero               = 0,
                    Febrero             = 0,
                    Marzo               = 0,
                    Abril               = 0,
                    Mayo                = 0,
                    Junio               = 0,
                    Julio               = 0,
                    Agosto              = 0,
                    Septiembre          = 0,
                    Octubre             = 0,
                    Noviembre           = 0,
                    Diciembre           = 0,
                    TipoPresupuesto     = "P",
                    Activo              = true,
                    UsuarioCreacion     = recurso.UsuarioCreacion,
                    FechaCreacion       = DateTime.Now,
                    UsuarioModificacion = recurso.UsuarioCreacion,
                    FechaModificacion   = DateTime.Now
                };
                dbContext.RecursosMeses.Add(recursoMesDb);
                dbContext.SaveChanges();

                return(new Resultado("El Recurso se guardó correctamente."));
            }
            catch (Exception excepcion)
            {
                LogHelper.RegisterError(excepcion.Message);
                return(new Resultado("Ocurrio un error. Favor contactarse con el administrador."));
            }
        }
        public Resultado UpdateRecurso(Recurso recurso)
        {
            MapperManager.GetInstance();

            try
            {
                var recursoDb = dbContext.Recursos.Find(recurso.Id);
                if (recursoDb != null)
                {
                    recursoDb.AccionNacionalId   = recurso.AccionNacionalId;
                    recursoDb.CodigoAuditoriaId  = recurso.CodigoAuditoriaId;
                    recursoDb.ContraparteId      = recurso.ContraparteId;
                    recursoDb.CuentaContableId   = recurso.CuentaContableId;
                    recursoDb.PlanProgramaticoId = recurso.PlanProgramaticoId;
                    recursoDb.TerritorioId       = recurso.TerritorioId;
                    recursoDb.MarcoLogicoId      = recurso.MarcoLogicoId;

                    recursoDb.NotasAdicionales    = recurso.NotasAdicionales;
                    recursoDb.Descripcion         = recurso.Descripcion;
                    recursoDb.Monto               = recurso.Monto;
                    recursoDb.Cobertura           = recurso.Cobertura;
                    recursoDb.IndiceTransferencia = recurso.IndiceTransferencia;

                    recursoDb.UsuarioModificacion = recurso.UsuarioModificacion;
                    recursoDb.FechaModificacion   = DateTime.Now;

                    dbContext.Entry(recursoDb).State = EntityState.Modified;
                    dbContext.SaveChanges();
                    return(new Resultado("El Recurso se guardó correctamente."));
                }
                return(new Resultado("No se encontró el recurso especificado."));
            }
            catch (Exception excepcion)
            {
                LogHelper.RegisterError(excepcion.Message);
                return(new Resultado("Ocurrio un error. Favor contactarse con el administrador."));
            }
        }