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()); }
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); }
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); }
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)); }
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); } }