private void Borrar(dynamic listaEntidad, ParameterOverride[] parameters, dynamic mapeador, List <string[]> listaCodigos) { if (listaEntidad.Count > 0) { var tipobuscador = typeof(IBuscador <>); var tipoBuscadorGenerico = tipobuscador.MakeGenericType(listaEntidad[0].GetType()); var buscador = FabricaNegocios.Instancia.Resolver(tipoBuscadorGenerico, parameters); var tipoborrador = typeof(IBorrador <>); var tipoBorradorGenerico = tipoborrador.MakeGenericType(listaEntidad[0].GetType()); var borrador = FabricaNegocios.Instancia.Resolver(tipoBorradorGenerico, parameters); LogManager.Instancia.AgregarMensaje("Creando lista local para eliminar los registros que no están más en FOX."); Type buscaType = buscador.GetType(); Type tipoEntidad = listaEntidad[0].GetType(); object[] parames = { listaCodigos }; var lista = buscaType.GetMethod("BuscarDiferencia").MakeGenericMethod(tipoEntidad).Invoke(buscador, parames); foreach (EntidadMaestro item in lista) { if (mapeador.Objeto.CompararParaBorrar(item)) { LogManager.Instancia.AgregarMensaje(string.Format("Borrando de SQL SERVER: {0}. {1}", item.Codigo, item.Nombre)); ErrorCarrier carrier = borrador.Borrar(item.Id, new Usuario() { Nombre = "Importador Fox" }); //auditoria? LogManager.Instancia.AgregarMensaje(string.Format("Información de borrado: {0}", carrier.mensaje)); } } } }
public ErrorCarrier Borrar(TEntidad entidad, Usuario Usuario) { //MODIFICACIONES 2015 var listaContextos = this.Contexto.ObtenerContextos(typeof(TEntidad)); var errorCarrier = new ErrorCarrier(); listaContextos.ForEach(cntxt => { this.Eliminar(entidad, Usuario, cntxt); if (this.GrabarCambios) { try { cntxt.SaveChanges(); //if (Usuario != null) // cntxt.insertaAuditoria<TEntidad>(entidad, Accion.Elimina, Usuario); //ESTO LO HACE DBCONTEXTBASE, Implementar en GrabadprEspecifico errorCarrier.setMensaje("Datos borrados correctamente."); } catch (DbUpdateException ex) { errorCarrier.setError(false); errorCarrier.setTipoError(error.ForeignKey); errorCarrier.setMensaje("Error. No se puede borrar un dato que está relacionado."); } } else { errorCarrier.setError(false); errorCarrier.setMensaje("No esta listo para grabar"); } }); return(errorCarrier); }
private object BorrarItem() { if (ItemSeleccionado != null) { ErrorCarrier result = new ErrorCarrier(); if (this.Objeto.Id != 0) { result = this.servicio.Borrar(this.ItemSeleccionado, new Usuario() { Nombre = "ADMIN" }, ""); } if (result.borroOk) { this.Detalle.Remove(this.ItemSeleccionado); } } return(true); }
public ErrorCarrier Borrar(System.Collections.Generic.IList <TEntidad> listaEntidad, Usuario Usuario) { bool GrabarCambiosAnterior = this.GrabarCambios; if (this.GrabarCambios) { this.GrabarCambios = false; } ErrorCarrier result = new ErrorCarrier(); foreach (var entidad in listaEntidad) { result = this.Borrar(entidad, Usuario); } //this.GrabarCambios = this.GrabarCambios; //this.Contexto.SaveChanges(); return(result); }