Example #1
0
        private void LoadWorkingTime()
        {
            var list = _GetWorkingTimeForTimelineUseCase.SelectByYmd(TargetYmd.Value);

            WorkingTimes.Clear();
            WorkingTimes.AddRange(list);

            SetDoingTask();
        }
Example #2
0
        public void SetDoingTask()
        {
            if (SystemClockServiceLocator.Current.Now.Date != TargetDate.Value.Date)
            {
                DoingTask.Value = null;
            }
            else
            {
                var target = WorkingTimes.Where(w => w.TimePeriod.WithinRangeAtCurrentTime)
                             .FirstOrDefault();

                DoingTask.Value = target;
            }
        }
Example #3
0
        public override string GetStepParameters()
        {
            var parameters = new List <string>();

            parameters.Add(GlobalId != null ? GlobalId.ToStepValue() : "$");
            parameters.Add(OwnerHistory != null ? OwnerHistory.ToStepValue() : "$");
            parameters.Add(Name != null ? Name.ToStepValue() : "$");
            parameters.Add(Description != null ? Description.ToStepValue() : "$");
            parameters.Add(ObjectType != null ? ObjectType.ToStepValue() : "$");
            parameters.Add(Identification != null ? Identification.ToStepValue() : "$");
            parameters.Add(WorkingTimes != null ? WorkingTimes.ToStepValue() : "$");
            parameters.Add(ExceptionTimes != null ? ExceptionTimes.ToStepValue() : "$");
            parameters.Add(PredefinedType.ToStepValue());

            return(string.Join(", ", parameters.ToArray()));
        }
Example #4
0
        public bool AutoStopCurrentTaskIfNeeded(out string message)
        {
            message = "";

            if (DoingTask.Value == null)
            {
                return(false);
            }

            // 終了予定時刻ありの場合
            if (DoingTask.Value.TimePeriod.EndDateTime.HasValue)
            {
                // 現在のタスクが終了時刻を迎えたら終了
                if (DoingTask.Value.TimePeriod.WithinRangeAtCurrentTime == false)
                {
                    SetDoingTask();
                    message = "終了予定時刻となったため 現在の作業を終了しました";
                    return(true);
                }
            }
            // 終了予定時刻なしの場合
            else
            {
                // 予定タスクがあれば自動移行
                var otherPlanedTask = WorkingTimes.Where(t => t.WorkingTimeId != DoingTask.Value.WorkingTimeId)
                                      .Where(w => w.TimePeriod.WithinRangeAtCurrentTime)
                                      .FirstOrDefault();
                if (otherPlanedTask != null)
                {
                    // 現在タスクの終了
                    // #終了処理のなかで再読み込みも行われる
                    StopCurrentTask();
                    message = $"タスク [ {otherPlanedTask.TaskTitle} ] の開始予定時刻となったため現在の作業を終了しました";
                    return(true);
                }
            }

            return(false);
        }