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
