@@ -13,10 +13,10 @@ namespace Nest
1313 [ ReadAs ( typeof ( TimeOfDay ) ) ]
1414 public interface ITimeOfDay
1515 {
16- [ DataMember ( Name = "hour" ) ]
16+ [ DataMember ( Name = "hour" ) ]
1717 IEnumerable < int > Hour { get ; set ; }
1818
19- [ DataMember ( Name = "minute" ) ]
19+ [ DataMember ( Name = "minute" ) ]
2020 IEnumerable < int > Minute { get ; set ; }
2121 }
2222
@@ -44,28 +44,41 @@ public class TimeOfDayDescriptor : DescriptorBase<TimeOfDayDescriptor, ITimeOfDa
4444 [ ReadAs ( typeof ( DailySchedule ) ) ]
4545 public interface IDailySchedule : ISchedule
4646 {
47- [ DataMember ( Name = "at" ) ]
48- Union < IEnumerable < string > , ITimeOfDay > At { get ; set ; }
47+ [ DataMember ( Name = "at" ) ]
48+ Union < IEnumerable < string > , IEnumerable < ITimeOfDay > > At { get ; set ; }
4949 }
5050
5151 public class DailySchedule : ScheduleBase , IDailySchedule
5252 {
53- public Union < IEnumerable < string > , ITimeOfDay > At { get ; set ; }
53+ public DailySchedule ( ) { }
54+
55+ public DailySchedule ( string at ) => At = new [ ] { at } ;
56+
57+ public DailySchedule ( ITimeOfDay at ) => At = new [ ] { at } ;
58+
59+ public Union < IEnumerable < string > , IEnumerable < ITimeOfDay > > At { get ; set ; }
5460
5561 internal override void WrapInContainer ( IScheduleContainer container ) => container . Daily = this ;
5662 }
5763
5864 public class DailyScheduleDescriptor : DescriptorBase < DailyScheduleDescriptor , IDailySchedule > , IDailySchedule
5965 {
60- Union < IEnumerable < string > , ITimeOfDay > IDailySchedule . At { get ; set ; }
66+ Union < IEnumerable < string > , IEnumerable < ITimeOfDay > > IDailySchedule . At { get ; set ; }
6167
6268 public DailyScheduleDescriptor At ( Func < TimeOfDayDescriptor , ITimeOfDay > selector ) =>
63- Assign ( selector , ( a , v ) => a . At = new Union < IEnumerable < string > , ITimeOfDay > ( v ? . InvokeOrDefault ( new TimeOfDayDescriptor ( ) ) ) ) ;
69+ Assign ( selector ,
70+ ( a , v ) => a . At = new Union < IEnumerable < string > , IEnumerable < ITimeOfDay > > ( new [ ] { v ? . InvokeOrDefault ( new TimeOfDayDescriptor ( ) ) } ) ) ;
71+
72+ public DailyScheduleDescriptor At ( IEnumerable < ITimeOfDay > times ) =>
73+ Assign ( new Union < IEnumerable < string > , IEnumerable < ITimeOfDay > > ( times ) , ( a , v ) => a . At = v ) ;
74+
75+ public DailyScheduleDescriptor At ( params ITimeOfDay [ ] times ) =>
76+ Assign ( new Union < IEnumerable < string > , IEnumerable < ITimeOfDay > > ( times ) , ( a , v ) => a . At = v ) ;
6477
6578 public DailyScheduleDescriptor At ( IEnumerable < string > times ) =>
66- Assign ( new Union < IEnumerable < string > , ITimeOfDay > ( times ) , ( a , v ) => a . At = v ) ;
79+ Assign ( new Union < IEnumerable < string > , IEnumerable < ITimeOfDay > > ( times ) , ( a , v ) => a . At = v ) ;
6780
6881 public DailyScheduleDescriptor At ( params string [ ] times ) =>
69- Assign ( new Union < IEnumerable < string > , ITimeOfDay > ( times ) , ( a , v ) => a . At = v ) ;
82+ Assign ( new Union < IEnumerable < string > , IEnumerable < ITimeOfDay > > ( times ) , ( a , v ) => a . At = v ) ;
7083 }
7184}
0 commit comments