private void LoadWorkingTime() { var list = _GetWorkingTimeForTimelineUseCase.SelectByYmd(TargetYmd.Value); WorkingTimes.Clear(); WorkingTimes.AddRange(list); SetDoingTask(); }
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; } }
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())); }
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); }