Example #1
0
        private async void ManualTask(object sender, ElapsedEventArgs e)
        {
            CurrentTaskState = TaskState.WebProcessing;

            BandUtility band = BandUtility.Instance;

            // 예약 시간 검사.
            foreach (DateTime time in Settings.Instance.ReservedTimes)
            {
                // 소수점 이하 자리를 버리기 위해 버림 함수 사용.
                if ((int)Math.Truncate(DateTime.Now.TimeOfDay.TotalMinutes) == (int)time.TimeOfDay.TotalMinutes)
                {
                    List <string> posts = await band.GetFeedAsync();

                    foreach (string post in posts)
                    {
                        if (_postCaches.Contains(post))
                        {
                            continue;
                        }

                        await band.CheckAttendanceAsync(post);

                        _postCaches.Add(post);
                    }
                }
            }

            CurrentTaskState = TaskState.Running;
        }
Example #2
0
        private async void AutomaticTask(object sender, ElapsedEventArgs e)
        {
            CurrentTaskState = TaskState.WebProcessing;

            BandUtility band = BandUtility.Instance;

            List <string> posts = await band.GetFeedAsync();

            foreach (string post in posts)
            {
                if (_postCaches.Contains(post))
                {
                    continue;
                }

                await band.CheckAttendanceAsync(post);

                _postCaches.Add(post);
            }

            CurrentTaskState = TaskState.Running;
        }
Example #3
0
 internal LoginViewModel()
 {
     _bandUtility = BandUtility.Instance;
 }
Example #4
0
        private async void ControlBanditTask()
        {
            if (CurrentTaskState == TaskState.Idle)
            {
                if (!Account.Instance.IsInitialized)
                {
                    MessageBox.Show("밴딧 작업을 진행하기에 앞서 밴드 계정으로 로그인 해주시기 바랍니다.", "Bandit", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                if (MessageBox.Show("소프트웨어 사용에 대한 면책조항\n\n" +
                                    "본 소프트웨어는 Selenium 프로젝트를 이용한 웹 자동화 테스트를 위한 용도로 개발되었으며, 다른 용도로의 사용은 전혀 고려하지 않았습니다. " +
                                    "또한 소프트웨어를 이용함으로써 생길 수 있는 모든 법적 문제의 책임은 사용자에게 있습니다. " +
                                    "개발자는 오직 소프트웨어의 소스코드로 인해 발생한 문제에만 책임을 집니다.\n" +
                                    "위 면책조항에 동의하고 작업을 시작하시려면 '예'를, 거부하시려면 '아니오'를 선택해주세요.", "Bandit", MessageBoxButton.YesNo) != MessageBoxResult.Yes)
                {
                    return;
                }

                Reports.Instance.AddReport(ReportType.Information, "밴딧 작업을 시작합니다!");

                CurrentTaskState = TaskState.Loading;

                // 밴드 유틸리티 초기화.
                BandUtility band = BandUtility.Instance;
                _postCaches.Clear();
                _postCaches.AddRange(await band.GetFeedAsync());

                CurrentTaskState = TaskState.Running;

                if (Settings.Instance.IsAutomatic)
                {
                    _timer.Interval = Settings.Instance.RefreshInterval * 60000; // 자동 모드.
                    _timer.Elapsed += new ElapsedEventHandler(AutomaticTask);
                    _timer.Enabled  = true;
                }
                else
                {
                    _timer.Interval = 60000; // 시간 지정 모드.
                    _timer.Elapsed += new ElapsedEventHandler(ManualTask);
                    _timer.Enabled  = true;
                }

                _timer.Start();
            }
            else if (CurrentTaskState == TaskState.Running)
            {
                _timer.Stop();
                CurrentTaskState = TaskState.Stopping;
                return;
            }
            else if (CurrentTaskState == TaskState.Stopping)
            {
                _timer.Start();
                CurrentTaskState = TaskState.Running;
                return;
            }
            else if (CurrentTaskState == TaskState.Loading || CurrentTaskState == TaskState.WebProcessing)
            {
                MessageBox.Show("밴딧 작업 진행중에는 작업 상태를 변경할 수 없습니다.", "Bandit", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
        }