public async Task Execute()
        {
            if (DateTime.Now.Day >= 23)
            {
                // simplistic check, but it'll do if no one messes with the DB directly
                if (SchedulesForNextMonthAlreadyExist())
                {
                    Console.WriteLine("Schedules for next month already in place");
                    return;
                }

                // TODO make sure the schedules for the current month are in place;
                // right now, this is at the mercy of Hanfire's scheduler ...
                var schedules = new NaiveMonthlyScheduleGenerator(Employees)
                                .Generate(forNextMonth: true);

                // TODO add a bulk insert method, perhaps
                schedules.Select(schedule => schedule.ToPersistedModel()).ToList()
                .ForEach(schedule => _scheduleRepository.Add(schedule));

                Console.WriteLine("Generated schedules for next month");
                await Task.CompletedTask;
            }
            else
            {
                Console.WriteLine("Not generating schedules for next month until the 23rd");
                await Task.CompletedTask;
            }
        }
        public void GeneratesValidSchedulesToCoverAllWorkingDaysInMonth()
        {
            var monthlyScheduleGenerator = new NaiveMonthlyScheduleGenerator(People);

            var schedules = monthlyScheduleGenerator.Generate();

            Assert.Equal(WorkdaysInMonth.Count() * 2, schedules.Count());
        }
Exemple #3
0
        public async Task Execute()
        {
            // simplistic check, but it'll do if no one messes with the DB directly
            if (SchedulesForCurrentMonthAlreadyExist())
            {
                Console.WriteLine("Schedules for current month already in place");
                return;
            }

            var schedules = new NaiveMonthlyScheduleGenerator(Employees).Generate();

            // TODO add a bulk insert method, perhaps
            schedules.Select(schedule => schedule.ToPersistedModel()).ToList()
            .ForEach(schedule => _scheduleRepository.Add(schedule));

            Console.WriteLine("Generated schedules for current month");
            await Task.CompletedTask;
        }