public bool AddNewTask(TaskInfo taskInfo, int? parentGroupId, TimedTaskSettingsInfo timingInfo, out string errors) { errors = ""; if (taskInfo == null) { errors = "The provided TaskInfo object is null."; return false; } Task taskToAdd = new Task(); TaskInfoToTask(taskInfo, taskToAdd); taskToAdd.StatusID = 100; taskToAdd.ParentGroupID = parentGroupId; bool taskIsValid = true; bool timingInfoIsValid = true; string taskValidationErrs = ""; taskIsValid = ValidateTask(taskToAdd, out taskValidationErrs); TimedTaskSettings newTTS = null; string ttsValidationErrs = ""; if (timingInfo != null) { newTTS = new TimedTaskSettings(); TTSInfoToTTS(timingInfo, newTTS); timingInfoIsValid = ValidateTimedTaskSettings(newTTS, out ttsValidationErrs); } if (!taskIsValid || !timingInfoIsValid) errors += taskValidationErrs + ttsValidationErrs; else { int newTaskKey = HardSettingsManager.GetAndAdvanceNextChecklistElementKey(_context); if (newTaskKey != -1) { if (newTTS != null) { //sigh.. validate this too? newTTS.TimedTaskSettingsID = HardSettingsManager.GetAndAdvanceNextTimedTaskSettingsKey(_context); taskToAdd.TimedTaskSettings = newTTS; } taskToAdd.ItemID = newTaskKey; BLLUtility.AddPositionInfo(_context, taskToAdd, parentGroupId); _context.ChecklistElements.AddObject(taskToAdd); _context.SaveChanges(); return true; } else errors += "The next-key information could not be retreived from the database.\n"; } return false; }
private void TTSInfoToTTS(TimedTaskSettingsInfo ttsi, TimedTaskSettings tts) { tts.DueTime = ttsi.DueTime; tts.TimeoutActionID = (int)ttsi.TimeoutAction; }
private bool ValidateTimedTaskSettings(TimedTaskSettings tts, out string errors) { errors = ""; string dueTimeErr = ValidateDueTime(tts.DueTime); if (dueTimeErr != null) errors += dueTimeErr + "\n"; string timeoutActionErr = ValidateTimeoutAction(tts.TimeoutActionID); if (timeoutActionErr != null) errors += timeoutActionErr + "\n"; if (string.IsNullOrEmpty(errors)) return true; else return false; }
private void FixupTimedTaskSettings(TimedTaskSettings previousValue) { if (previousValue != null && previousValue.Tasks.Contains(this)) { previousValue.Tasks.Remove(this); } if (TimedTaskSettings != null) { if (!TimedTaskSettings.Tasks.Contains(this)) { TimedTaskSettings.Tasks.Add(this); } if (TimedTaskSettingsID != TimedTaskSettings.TimedTaskSettingsID) { TimedTaskSettingsID = TimedTaskSettings.TimedTaskSettingsID; } } else if (!_settingFK) { TimedTaskSettingsID = null; } }