Exemplo n.º 1
0
        void TimerEvent()
        {
            var poolRepo = new ReservationPoolRepository(_configuration);
            var weekRepo = new ReservationWeekRepository(_configuration);

            // Remove yesterday reservation
            poolRepo.DeleteLastDays();

            // Update Pool Days


            // Update Pool datas
            UpdateWeek(poolRepo, weekRepo);
        }
Exemplo n.º 2
0
        void UpdateWeek(ReservationPoolRepository poolRepo, ReservationWeekRepository weekRepo)
        {
            var list = weekRepo.GetAll();

            // 세팅이 있는만큼 반복.
            foreach (var setting in list)
            {
                // 14일 동안 반복
                for (int i = 0; i < 14; i++)
                {
                    DateTime targetDate =
                        new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day)
                        .Add(TimeSpan.FromDays(i));

                    // 인터벌 만큼 반복
                    for (int j = 0; j < setting.IntervalCount; j++)
                    {
                        CheckingAndUpdate(setting, targetDate, poolRepo, weekRepo, j);
                    }
                }
            }
        }
Exemplo n.º 3
0
        private void CheckingAndUpdate(ReservationWeek setting, DateTime targetDate, ReservationPoolRepository poolRepo, ReservationWeekRepository weekRepo, int interval)
        {
            var dayOfWeek = targetDate.DayOfWeek;

            // Checking 해당하는 요일이고, ture이면 아래로 진행
            switch (dayOfWeek)
            {
            case DayOfWeek.Monday:
                if (setting.Monday != true)
                {
                    return;
                }
                break;

            case DayOfWeek.Thursday:
                if (setting.Thursday != true)
                {
                    return;
                }
                break;

            case DayOfWeek.Wednesday:
                if (setting.Wednesday != true)
                {
                    return;
                }
                break;

            case DayOfWeek.Tuesday:
                if (setting.Tuesday != true)
                {
                    return;
                }
                break;

            case DayOfWeek.Friday:
                if (setting.Friday != true)
                {
                    return;
                }
                break;

            case DayOfWeek.Saturday:
                if (setting.Saturday != true)
                {
                    return;
                }
                break;

            case DayOfWeek.Sunday:
                if (setting.Sunday != true)
                {
                    return;
                }
                break;

            default:
                return;

                break;
            }

            // todo :

            // 통과하면 실행
            if (!poolRepo.IsExistScadule(targetDate, setting.RoadID))
            {
                poolRepo.Insert(targetDate, setting, interval);
            }
        }