No le atino una el dia de hoy...

Gracias nuevamente Fabio por tu tiempo, ya tengo material para analizar

Saludos

Edgar

El 19 de octubre de 2010 17:19, Fabio Maulo <[email protected]> escribió:

> justo agarraste un ejemplo donde no encapsulo el Add/Remove... bah... por
> lo general en los ejemplo de mappings no uso encapsular nada ya que solo se
> habla de mappings.
>
>
> 2010/10/19 Edgar Ramos <[email protected]>
>
>> Lo andaba pensado y repensando y es totalmente logico, siempre tiene que
>> haber 2 (Un Ingreso y una Salida), me he reido con el ejemplo de la carcel,
>> pero como lo expuse pudiera haber sido el caso.
>>
>> Me di cuenta de los Add y Remove viendo algunos ejemplos interesantes,
>> como este
>>
>> http://fabiomaulo.blogspot.com/2010/03/conform-mapping-many-to-many.html
>>
>> Sigo aprendiendo
>>
>> Saludos
>>
>> Edgar
>>
>>
>>
>> El 19 de octubre de 2010 17:08, Fabio Maulo <[email protected]>escribió:
>>
>> Si queres... la base está en el hecho que Entrada-Salida tienen que estar
>>> juntos no pueden simplemente ser dos entradas distintas en una
>>> collecction... bueno a menos que no se trate de los horarios de una carcel y
>>> tu app. admite que los reclusos con cadena perpetua entran y nunca mas van a
>>> salir ;)
>>>
>>> Los Add and Remove de cada collection están como metodos separados porque
>>> van a tener logica de negocio (el tuyo es un lindo caso para demostrarlo).
>>> En un mismo dia no se pueden agregar dos lapsos en overlaps o sea...
>>> Lunes
>>>    09:00 a 13:00 false
>>>    12:00 a 14:00 true
>>>    13:45 a 17:00 false
>>>
>>> Lo mismo pasa con los dias laborales.
>>>
>>> Digamos que las clases de negocio si bien tienen que ser POCO no
>>> significa que no tengan que tener un minimo de logica.
>>>
>>>
>>> 2010/10/19 Edgar Ramos <[email protected]>
>>>
>>>> Fabio muchas gracias, estoy analizando tus observaciones
>>>>
>>>> Saludos
>>>>
>>>> Edgar
>>>>
>>>> El 19 de octubre de 2010 16:28, Fabio Maulo <[email protected]>escribió:
>>>>
>>>> mmmm no me parece...
>>>>> WorkDay
>>>>> {
>>>>> int DayOfWeek
>>>>> IEnumerable<WorkTimeDef> Lapses
>>>>> Add(WorkTimeDef timeDef)
>>>>> Remove(WorkTimeDef timeDef)
>>>>> }
>>>>>
>>>>> TimeRange (seguro no es una entidad; no tiene ID)
>>>>> {
>>>>> TimeSpan Begin
>>>>> TimeSpan End
>>>>> bool IsValid
>>>>> bool Overlaps(TimeRange other)
>>>>> etc. etc.
>>>>> }
>>>>>
>>>>> WorkTimeDef
>>>>> {
>>>>> TimeRange Lapse;
>>>>> bool IsLunchTime;
>>>>> }
>>>>>
>>>>> FixedWorkWeek
>>>>> {
>>>>> IEnumerable<WorkDay> WorkDays
>>>>> Add(WorkDay day)
>>>>> Remove(WorkDay day)
>>>>> }
>>>>>
>>>>> veo solo FixedWorkWeek como entidad pero podria ser tambien WorkDay...
>>>>> no estoy tan seguro.
>>>>>
>>>>> 2010/10/19 Edgar Ramos <[email protected]>
>>>>>
>>>>>> Gracias Fabio
>>>>>>
>>>>>> Estoy empezando por el analisis de mi dominio,
>>>>>>
>>>>>> public class HorarioFijo : IHorario
>>>>>>     {
>>>>>>        ....
>>>>>>         private readonly IDictionary<DiaDeLaSemana, List<HoraLaboral>>
>>>>>> mapeoHorasDia;
>>>>>>        ...
>>>>>>     }
>>>>>>
>>>>>> y se me olvidaba la parte de la bdd, aqui pongo un bosquejo de las
>>>>>> tablas
>>>>>>
>>>>>> Las tablas podrian verse como lo siguiente
>>>>>>
>>>>>> Tabla Horarios (aplicaría la herencia table-per-class hierarchy)
>>>>>> Campos
>>>>>>    HorarioID: 1      PK
>>>>>>    Descriminador: Pueden Ser Horarios Fijos  o Variables
>>>>>>    Descripcion: De 08:30 A: 13:00 y De 14:00, A: 18:30
>>>>>>
>>>>>> Tabla HorasDiarias Ejemplo1
>>>>>>    HorasDiariasID    HorarioID  DiaSemana  Ingreso1 Salida1 Ingreso2
>>>>>> Salida2
>>>>>>    1                           1             Lunes          08:00
>>>>>> 13:00    14:00      18:00
>>>>>>    2                           1             Martes         08:00
>>>>>> 13:00    14:00      18:00
>>>>>>    3                           1             Miercoles     08:00
>>>>>> 14:00    00:00      00:00
>>>>>>
>>>>>>
>>>>>> Tabla HorasDiarias Ejemplo2
>>>>>>    HorasDiariasID    HorarioID  DiaSemana  HoraLaboralID
>>>>>>    1                           1             Lunes          1
>>>>>>    2                           1             Martes         1
>>>>>>    3                           1             Miercoles     2
>>>>>>
>>>>>> Tabla HoraLaboral
>>>>>> HoraLaboralID   HorasDiariasID   HorarioID   EsHoraComida
>>>>>> Tipo        Hora
>>>>>>  1                     1                       1              False
>>>>>>                   Ingreso   08:00
>>>>>>  2                     1                       1              False
>>>>>>                   Salida   18:00
>>>>>>  3                     1                       1              True
>>>>>>                     Salida   13:00
>>>>>>  4                     1                       1              True
>>>>>>                     Ingreso  14:00
>>>>>>
>>>>>>
>>>>>> Podria ser algo asi, pero desde luego como se esta en etapa de
>>>>>> analisis, nada se encuentra creado en la bdd, lo vamos a generar con nh3
>>>>>> Cualquier comentario es bienvenido
>>>>>>
>>>>>>
>>>>>> Saludos
>>>>>>
>>>>>> Edgar
>>>>>>
>>>>>> El 19 de octubre de 2010 14:35, Fabio Maulo 
>>>>>> <[email protected]>escribió:
>>>>>>
>>>>>> cual es la representacción en tablas ?
>>>>>>>
>>>>>>> 2010/10/19 Edgar Ramos <[email protected]>
>>>>>>>
>>>>>>>>  Gente un saludo, en mi contexto tengo algo como lo siguiente
>>>>>>>>
>>>>>>>>  public class HorarioFijo : IHorario
>>>>>>>>     {
>>>>>>>>         ....
>>>>>>>>         private readonly IDictionary<string, List<HoraLaboral>>
>>>>>>>> HorasDia;
>>>>>>>>         .....
>>>>>>>>     }
>>>>>>>>
>>>>>>>> Esto es posible mapearlo con nh3 ?
>>>>>>>>
>>>>>>>> Muchas gracias a todos
>>>>>>>>
>>>>>>>> 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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Fabio Maulo
>>>>>>>
>>>>>>>  --
>>>>>>> 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
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Fabio Maulo
>>>>>
>>>>>  --
>>>>> 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
>>>>
>>>
>>>
>>>
>>> --
>>> Fabio Maulo
>>>
>>>  --
>>> 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
>>
>
>
>
> --
> Fabio Maulo
>
>  --
> 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