La simplificaria un poco mas . Si en principio lo unico que te cambia es el orden de las columnas empezaria asi:
Una tabla EmpresaImportConfig: ID Empresa ImporterClass Una hija EmpresaImportColumns: ID EmpresaImportConfigId Nombre Posicion Arrancaria con una clase que importe usando esa configuración, fácil de mantener desde la base de datos. Vamos a llamarla DefaultImporter Hago un break para comentarte, que apostaria un Black label etiqueta verde, a que en algun momento te van a decir el archivo de esta empresa, viene distinto en x columna y vamos a tener que procesarlo distinto. Ahí, si empezaría a crear subclases de DefaultImporter, que customicen la forma de implementar la importación para una o varias empresas en particular. Esas subclases las podes crear en assemblies a partes, asi te evitas compilaciones de la app principal, Y en la tabla EmpresaImportConfig, traes por reflection una instancia de la clase que queres usar para la empresa para importar, y se la chantas a alguna otra por IoC como dice el amigo. Una idea nomas. _____ De: puntonet@mug.org.ar [mailto:puntonet@mug.org.ar] En nombre de Carlos Peix Enviado el: 11/04/2013 06:25 Para: puntonet@mug.org.ar Asunto: [puntonet] Orientacion para realizar validacion Hola Leandro, A mi me parece que la solucion que sugeris es un poco dificil de probar. No se mucho de tu contexto, pero lo que yo haria es programar un componente por cada empresa y que ese componente este en un assembly separado. Por supuesto el componente tiene que implementar una interfaz de tu aplicacion. Luego levantas el componente via configuracion (por reflection o mediante un framework IoC como Windsor). Esto tiene la ventaja de que en cada componente tenes maxima flexibilidad para el orden de los campos, tipo de archivo, validaciones. Otra ventaja es que podes escribir tests detalladas para cada componente. Tiene el inconveniente de que tenes que programar un componente distinto para cada cliente. La evaluacion del peso de estas ventajas y desventajas depende del contexto, sin embargo. ---------------------------------- Carlos Peix 2013/4/10 Leandro Halfon <leandrohal...@gmail.com> Hola Lista, les escribo para ver si alguno me puedo orientar para donde encarar la solución de un desarrollo. En que consiste? Básicamente, tengo N empresas donde cada una tiene que importar a un sistema un archivo txt delimitado por comas. Cada empresa va a manejar un formato distinto pero los campos van a ser los mismos en diferente orden. Ej: Empresa A envia el siguiente orden: CUIT, Razon Social, Domicilio.. Empresa B envia el siguiente orden: Domicilio, Razon Social, CUIT A su vez, cada uno de esos campos tiene validaciones de longitud, obligatoriedad, etc (son las mismas validaciones para todas las empresas) Lo que había pensado era que para cada empresa se configure en la BD los campos y en que posicion/orden los envía y luego realizar un bucle para validar cada campo A Alguno se le ocurre otra posible solución que sea un poco mas automática? Gracias! Leandro