Gracias Carlos, Daniel y los que contestaron. Sigo insistiendo en que no me exprese correctamente y por eso no me entendieron.
Tengo otras aplicaciones accediendo a la base de datos (MSSQL) también, que creo que es lo que mas complica el panorama. Esta bien tu enfoque y estoy (dentro de mis posibilidades) trabajando lo mas OOP que puedo. Si tienen la voluntad de leer lo suficiente, vuelvo a explicar el escenario. (GRACIAS) Tengo una tabla con usuarios, que compran suscripciones (para explicarlo simple), que duran digamos un año. Cuando se vence la suscripción, se pueden loguear pero no acceder a ciertas funcionalidades. Tengo campos con la fecha en que se registraron, fecha de aprobación, y fecha de vencimiento. Estos valores DEBEN permitir su edición manual. La condición de aprobado se establece manualmente via un CMS, que establece en ese momento el vencimiento a un valor predeterminado o a lo que se quiera establecer. Hasta ahí todo bien. Ahora lo que no se donde disparar es el chequeo de que usuario esta aprobado a la fecha y cual no. Siguiendo tu ejemplo (corregime si me equivoco), los datos en la bd se actualizarían al momento en que se instanciara esa clase, ej: cuando el usuario se loguea, cuando haga un listado de usuarios, cuando llame a un actualizar estados en el CMS, etc. O sea, mis datos en este caso dependerían del modelo y podrían no ser actuales, se entiende? (ej nadie se loguea o accede al cms en un mes). Supongo que en este caso debería pensar la solución por el lado de la bd, no? Puedo ejecutar un SP que chequee estados, cada x cada cantidad de tiempo? O cada vez que se consulte la bd (sin importar desde donde). COMO?. Me sugirieron también utilizar un timer que llame un SP. Aunque seguiría atado al modelo Gracias desde ya! ________________________________________________________ Claudio M. E. Bastos Iorio <http://www.blumer.com.ar/> http://www.blumer.com.ar From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Carlos Peix Sent: Thursday, July 19, 2007 10:32 AM To: [email protected] Subject: [puntonet] mejor forma para hacer esto? Hola Claudio, Veo que toda en la referencia que haces al tema en cuestion hablas de tablas, columnas, etc, en otras palabras, lenguaje de base de datos. No estoy seguro si tu consulta es como hacer una actualizacion sobre la tabla (una cuestion de base de datos) o de como encontrar una solucion mas general a este problema. Asumiendo que estamos hablando de la segunda opcion y de que tenes una clase Usuario en tu modelo, recomiendo lo siguiente (escrito de memoria): class Usuario { private DateTime approvalDate; public void ApproveOn( DateTime approvalDate ) { if ( approvalDate > DateTime.Now ) throw new ArgumentOutOfRangeException( "approvalDate", approvalDate ); this.approvalDate = approvalDate; } public bool IsApproved { get { return DateTime.Now.Substract( approvalDate ) <= GetApprovalInterval(); } } } Donde la funcion GetApprovalInterval() deberia buscar desde el lugar conveniente el intervalo de aprobacion maximo, posiblemente desde un archivo de configuracion o desde la base de datos. En la base de datos solo grabas la fecha de la ultima aprobacion. Este enfoque mueve la logica al modelo y la saca desde la base de datos. esto puede ser bueno o no, incluso puede ser posible o no. Todo depende del contexto. Por un lado, te abstrae de la base de datos (puede soportar funciones o no). Pero si otras aplicaciones acceden directamente a la base de datos (sin pasar por el modelo) puede que no te quede otra alternativa. Saludos Carlos _____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Claudio M. E. Bastos Iorio Sent: Miércoles, 18 de Julio de 2007 10:32 a.m. To: [email protected] Subject: [puntonet] mejor forma para hacer esto? Tengo una tabla de usuarios con una columa [isapproved], que toma valores 0-1 en base a una aprobación manual via CMS. En base a [isapproved] el usuario accede o no a ciertas funcionalidades. Hasta ahí todo ok. Ahora necesito hacer expirar esa condición en x tiempo, digamos un año, la fecha en que debe expirar es un valor en otra columna. Se que podría chequear si hay un usuario para expirar ese día cada vez que me logueo en el CMS, pero no lo veo muy elegante. Que otras forma habría de hacer esto? Sugerencias? Desde ya muchas gracias. ________________________________________________________ Claudio M. E. Bastos Iorio <http://www.blumer.com.ar/> http://www.blumer.com.ar
