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);
        }
Exemplo n.º 3
0
 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);
        }