Bueno pueden existir dos puntos donde debes realizar esta validacion.
 Constructor y Set de la propiedad en el cliente.  Podrias en estos puntos
implementar una estrategia <http://en.wikipedia.org/wiki/Strategy_pattern>que
valide la identificacion dependiendo del tipo de identificacion.

Saludos,
Nestor Rodriguez

2010/12/7 Edgar Ramos <[email protected]>

> Viendolo bien Nestor, tienes razon, estoy modificando mi dominio para
> ajustar tus sugerencias, mi duda ahora es la aplicacion del algoritmo
> especifico de acuerdo al tipo de Identificacion: Cedula, Ruc, etc.
>
> Saludos
>
> El 7 de diciembre de 2010 12:43, Nestor Rodriguez 
> <[email protected]>escribió:
>
> Te pregunto:  Porque extiendes de Identificacion? Yo creeria que no es
>> necesario, para eso tienes una tipificacion de la identificacion.
>>  Normalmente uno o extiende o tipifica, no ambas a menos que sea por una
>> razon que aun no hayas comentado.  En caso de necesitar ambas , creeria yo,
>> es necesario modificar tu estructura de persistencia.  O si no requires
>> extender la identificacion te funcionaria un <component> en el cliente.
>>
>> Saludos,
>> Nestor Rodriguez
>>
>> 2010/12/7 Edgar Ramos <[email protected]>
>>
>>> Nestor.
>>>
>>> Si tengo 3 clases que implementan IIdentificacion (Cedula, Ruc,
>>> Pasaporte), tendre 3 component ?, esto es correcto verdad ?
>>> Ya que PersonaJuridica puede aceptar cualquiera de estas 3
>>> implementaciones como documento
>>>
>>> Saludos
>>>
>>> Edgar
>>>
>>> El 7 de diciembre de 2010 11:56, Nestor Rodriguez 
>>> <[email protected]>escribió:
>>>
>>>> Hasta donde yo veo necesitas hacer un 
>>>> component<http://nhforge.org/doc/nh/en/index.html#mapping-declaration-component>
>>>>  en
>>>> persona juridica para la Identificacion.   Y en el <component> haces un
>>>> <many-to-one> para apuntar a TipoIdentificacion.  De todas maneras es
>>>> importante que aclares cual es el problema que presentas y como has tratado
>>>> de mapearlo.
>>>>
>>>> Saludos,
>>>> Nestor Rodriguez
>>>>
>>>> 2010/12/7 Edgar Ramos <[email protected]>
>>>>
>>>>>  Gente un saludo
>>>>>
>>>>> Tengo la sigueinte clase
>>>>>
>>>>> public class PersonaJuridica : BaseEntity, ICliente
>>>>>     {
>>>>>         public virtual string NombreComercial { get; set; }
>>>>>         public virtual string RazonSocial { get; set; }
>>>>>         public virtual string Direccion { get; set; }
>>>>>         public virtual string Telefono { get; set; }
>>>>>
>>>>>         public virtual IIdentificacion Documento { get; set; }
>>>>>
>>>>>         public virtual string Descripcion {
>>>>>             get { return RazonSocial; }
>>>>>         }
>>>>>     }
>>>>>
>>>>> Para la propiedad public virtual IIdentificacion Documento { get; set;
>>>>> } , la cual puede ser de varios tipos aqui un ejemplo de un tipo
>>>>>
>>>>>  public class Cedula : IIdentificacion
>>>>>     {
>>>>>
>>>>>         #region Miembros de IIdentificacion
>>>>>
>>>>>         public bool EsValido() {
>>>>>             ....
>>>>>         }
>>>>>
>>>>>         public virtual string NumeroIdentificacion { get; set; }
>>>>>
>>>>>         public virtual TipoIdentificacion TipoIdentificacion { get;
>>>>> set; }
>>>>>
>>>>>         #endregion
>>>>>     }
>>>>>
>>>>> A su vez para la propiedad public virtual TipoIdentificacion
>>>>> TipoIdentificacion { get; set; }  aqui la clase
>>>>>
>>>>> public class TipoIdentificacion : BaseEntity
>>>>>     {
>>>>>         public virtual string Descripcion { get; set; }
>>>>>         public bool LogNatural { get; set; }
>>>>>         public bool LogJuridico { get; set; }
>>>>>         public bool LogConsumidorFinal { get; set; }
>>>>>     }
>>>>>
>>>>> Yo requiero tener una tabla de la siguiente forma
>>>>>
>>>>> PersonaJuridica
>>>>>
>>>>> Id, NombreComercial, RazonSocial, etc, IdentificacionID,
>>>>> NumeroIdentificacion
>>>>> 1   XYZ                       XYZ                    1
>>>>>      0408520096001
>>>>>
>>>>>
>>>>> TipoIdentificacion
>>>>>
>>>>> Id, Descripcion, LogNatural, LogJuridico
>>>>> 1  Cedula          1                0
>>>>> 2  Ruc               1               1
>>>>> 3  Pasaporte      1               0
>>>>>
>>>>> Gracias por sus comentarios
>>>>>
>>>>> Saludos
>>>>>
>>>>> Edgar
>>>>>
>>>>>  --
>>>>> Para escribir al Grupo, hágalo a esta dirección:
>>>>> [email protected]
>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>>>
>>>>
>>>>  --
>>>> Para escribir al Grupo, hágalo a esta dirección:
>>>> [email protected]
>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>>>
>>>
>>>  --
>>> Para escribir al Grupo, hágalo a esta dirección:
>>> [email protected]
>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>>
>>
>>  --
>> Para escribir al Grupo, hágalo a esta dirección:
>> [email protected]
>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>
>
>  --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a