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);
        }
Ejemplo n.º 2
0
        public void ExpandSchedule(DateTime minStartDate, DateTime maxEndDate)
        {
            var mgr = new ScheduleManager();

            TimeSlots.Clear();
            TimeSlots.AddRange(mgr.ExpandSchedule(Schedule, minStartDate, maxEndDate));
        }
Ejemplo n.º 3
0
        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()));
        }