public void ShouldCreateTheScheduleItemsSpecified() { //arrange var mySchedule = new Schedule() { ScheduleItems = new List <ScheduleItem>() { new ScheduleItem() { StartDateTime = new DateTime(2019, 5, 17, 15, 0, 0), EndDateTime = new DateTime(2019, 5, 17, 16, 0, 0) } } }; //act var sut = new ScheduleManager(); var results = sut.ExpandSchedule(mySchedule, new DateTime(2019, 1, 1), new DateTime(2019, 12, 31)); //assert Assert.Single(results); Assert.Equal(15, results.First().StartDateTime.Hour); }
public void ExpandSchedule(DateTime minStartDate, DateTime maxEndDate) { var mgr = new ScheduleManager(); TimeSlots.Clear(); TimeSlots.AddRange(mgr.ExpandSchedule(Schedule, minStartDate, maxEndDate)); }
public async Task <IActionResult> GetForSchedule([FromRoute] int scheduleId, [FromRoute] string startDate, [FromRoute] string endDate) { var theStartDate = DateTime.ParseExact(startDate, "MM.dd.yyyy", CultureInfo.InvariantCulture); var theEndDate = DateTime.ParseExact(endDate, "MM.dd.yyyy", CultureInfo.InvariantCulture); var theSchedule = await _MyDbContext.Schedules .Include(s => s.ScheduleItems) .Include(s => s.RecurringSchedules) .Include(s => s.ScheduleExceptions) .FirstOrDefaultAsync(s => s.Id == scheduleId); if (theSchedule == null) { return(NotFound()); } var timeSlots = _ScheduleManager.ExpandSchedule(theSchedule, theStartDate, theEndDate); return(Ok(timeSlots.ToArray())); }