Пример #1
0
        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;
        }
Пример #2
0
 private void TTSInfoToTTS(TimedTaskSettingsInfo ttsi, TimedTaskSettings tts)
 {
     tts.DueTime = ttsi.DueTime;
     tts.TimeoutActionID = (int)ttsi.TimeoutAction;
 }
Пример #3
0
        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;
        }
Пример #4
0
        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;
            }
        }