コード例 #1
0
ファイル: JobDisp.cs プロジェクト: VVEvgeny/Mebius
        private void Exec(JobDispItem item)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }
            Debug.InfoAsync(GetCurrentMethod(), item);

            item.PrevStateText = MebiusTaskBases.Get(item.Task.RemoveSplitUppers()).Exec(item.Param, item.Settings);

            Debug.InfoAsync(GetCurrentMethod(), "result=", item.PrevStateText);

            UpdateListViewPrevState(item.IdInList, item.PrevStateText);

            if (item.PrevStateText == item.StopResult)
            {
                item.StateText = "Ended by Stop result";
                item.State     = JobDispItem.StateStates.Ended;
            }
            else if (item.PrevStateText == item.ErrorResult)
            {
                item.StateText = "Ended by Error result";
                item.State     = JobDispItem.StateStates.Ended;
            }
        }
コード例 #2
0
ファイル: JobDisp.cs プロジェクト: VVEvgeny/Mebius
        public void Add(JobDispItem item)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }
            Debug.InfoAsync(GetCurrentMethod(), item);

            ListView.BeginInvoke((MethodInvoker)(() =>
            {
                ListView.Items.Add(
                    new ListViewItem(new[]
                                     { item.Name, item.Task.SplitUppers(), item.Param, ((Job.RepeatModes)item.Repeat).ToString().SplitUppers(), item.StateText.SplitUppers(), item.PrevStateText.SplitUppers() }));
                item.IdInList = ListView.Items.Count - 1;
                _taskDispItem.Add(item);
            }));
        }
コード例 #3
0
ファイル: JobDisp.cs プロジェクト: VVEvgeny/Mebius
        public async void LoadJobs()
        {
            Debug.InfoAsync(GetCurrentMethod());

            if (_state != DispStates.None && _state != DispStates.Aborted)
            {
                throw new Exception("Invalid state=" + _state);
            }

            var allJobs = await _unitOfWork.JobRepository.GetAllAsync();

            foreach (var task in allJobs)
            {
                Add(JobDispItem.Map(task));
            }

            _state = DispStates.Loaded;
        }
コード例 #4
0
ファイル: JobDisp.cs プロジェクト: VVEvgeny/Mebius
        private void ExecWait(JobDispItem item)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }
            //Debug.InfoAsync(GetCurrentMethod(), item);

            if ((Job.RepeatModes)item.Repeat == Job.RepeatModes.Once && DateTime.Now > item.Date)
            {
                item.StateText = "Ended by time";
                item.State     = JobDispItem.StateStates.Ended;
            }
            else
            {
                item.State = JobDispItem.StateStates.Working;
                var ts = item.GetNearDate() - DateTime.Now;
                item.StateText = "To exec=" + ts.ToTime();
            }
        }