public override int SaveChanges()
        {
            IEnumerable <DbEntityEntry> modifiedEntities = ChangeTracker.Entries().Where(p => p.State == EntityState.Modified || p.State == EntityState.Deleted);

            foreach (DbEntityEntry change in modifiedEntities)
            {
                EntityState state      = change.State;
                IRastreavel rastreavel = change.Entity as IRastreavel;
                BaseModelo  baseModelo = change.Entity as BaseModelo;
                if (rastreavel == null)
                {
                    continue;
                }

                string nomeEntidade = change.Entity.GetType().Name;
                foreach (string prop in change.OriginalValues.PropertyNames)
                {
                    if (state == EntityState.Modified)
                    {
                        RastrearUpdate(change, prop, nomeEntidade, rastreavel, baseModelo);
                    }
                    else
                    {
                        RastrearDelete(change, prop, nomeEntidade, rastreavel, baseModelo);
                    }
                }
            }

            return(base.SaveChanges());
        }
Esempio n. 2
0
        public void Save(BaseModelo model)
        {
            var client     = new MongoClient(CONEXION);
            var server     = client.GetServer();
            var database   = server.GetDatabase(DB);
            var collection = database.GetCollection <BaseModelo>(NOMBRECOLECCION);

            collection.Insert(model);
        }
Esempio n. 3
0
        public void Update(BaseModelo model)
        {
            var client     = new MongoClient(CONEXION);
            var server     = client.GetServer();
            var database   = server.GetDatabase(DB);
            var collection = database.GetCollection <BaseModelo>(NOMBRECOLECCION);
            var query3     = Query <BaseModelo> .EQ(fd => fd.Valor, model.Valor);

            var update = Update <BaseModelo> .Set(e => e.Texto, model.Texto);

            collection.Update(query3, update);
        }
Esempio n. 4
0
        public PartialViewResult Paginador(int pagina = 1)
        {
            var cantidadRegistrosPorPagina = 4;
            var lista = from p in db.det_sede_carrera
                        select p;
            var totalDeRegistros = lista.GroupBy(x => x.id_carrera).Select(grp => grp.FirstOrDefault()).Count();

            ViewBag.totalDeRegistros = totalDeRegistros;
            var modelo = new BaseModelo();

            modelo.listaDetallesSedeCarrera = lista.ToList();
            modelo.PaginaActual             = pagina;
            modelo.TotalDeRegistros         = totalDeRegistros;
            modelo.RegistrosPorPagina       = cantidadRegistrosPorPagina;

            return(PartialView(modelo));
        }
Esempio n. 5
0
        public ActionResult IndexCards(int pagina = 1)
        {
            var cantidadRegistrosPorPagina = 4; // parámetro
            var lista = db.det_sede_carrera.GroupBy(x => x.id_carrera).Select(grp => grp.FirstOrDefault()).OrderBy(x => x.tb_carreras.nom_carrera).Skip((pagina - 1) * cantidadRegistrosPorPagina).Take(cantidadRegistrosPorPagina).ToList();

            var totalDeRegistros = db.det_sede_carrera.GroupBy(x => x.id_carrera).Select(grp => grp.FirstOrDefault()).Count();


            var modelo = new BaseModelo();

            modelo.listaDetallesSedeCarrera = lista;
            modelo.PaginaActual             = pagina;
            modelo.TotalDeRegistros         = totalDeRegistros;
            modelo.RegistrosPorPagina       = cantidadRegistrosPorPagina;

            ViewBag.totalDeRegistros = totalDeRegistros;
            return(View(modelo));
        }
        private void RastrearUpdate(DbEntityEntry change, string prop, string nomeEntidade, IRastreavel rastreavel, BaseModelo baseModelo)
        {
            if (change.OriginalValues[prop] == null || change.CurrentValues[prop] == null)
            {
                return;
            }
            string originalValue = change.OriginalValues[prop].ToString();
            string currentValue  = change.CurrentValues[prop].ToString();

            if (originalValue == currentValue)
            {
                return;
            }

            Rastro rastro = new Rastro(nomeEntidade, baseModelo.Id, prop, originalValue, currentValue, TipoRastro.Update);

            Rastros.Add(rastro);
        }
 private void RastrearDelete(DbEntityEntry change, string prop, string nomeEntidade, IRastreavel rastreavel, BaseModelo baseModelo)
 {
     if (change.OriginalValues[prop] != null)
     {
         string originalValue = change.OriginalValues[prop].ToString();
         Rastro rastro        = new Rastro(nomeEntidade, baseModelo.Id, prop, originalValue, null, TipoRastro.Delete);
         Rastros.Add(rastro);
     }
 }