/// <summary> /// Sets the DueDate or Completion Date depending on status (pending or complete) /// </summary> /// <param name="node"></param> /// <param name="value"></param> public static void SetEndDate(this MapNode node, DateTime value) { if (node.IsTaskComplete()) { CompletionDateAttribute.SetCompletionDate(node, value); } else { DueDateAttribute.SetDueDate(node, value); } }
public static void AddTask(this MapNode node, DateTime dateTime) { if (!node.IsTaskPending()) { node.Tree.ChangeManager.StartBatch("Add Task"); DueDateAttribute.SetDueDate(node, dateTime); TaskStatusAttribute.SetTaskStatus(node, TaskStatus.Open); CompletionDateAttribute.RemoveCompletionDate(node); node.Tree.ChangeManager.EndBatch(); //node.AttributeBatchUpdate(new MapNode.Attribute[] // { // new MapNode.Attribute(DueDateAttribute.GetOrCreateAttributeSpec(node.Tree), DateHelper.ToString(dateTime)), // new MapNode.Attribute(TaskStatusAttribute.GetOrCreateAttributeSpec(node.Tree), TaskStatus.Open.ToString()) // }, // new MapTree.AttributeSpec[] // { // CompletionDateAttribute.GetOrCreateAttributeSpec(node.Tree) // }); } else { node.Tree.ChangeManager.StartBatch("Update Task Due Date"); if (node.StartDateExists()) { TimeSpan duration = node.GetDueDate() - node.GetStartDate(); node.SetStartDate(dateTime.Subtract(duration)); } DueDateAttribute.SetDueDate(node, dateTime); node.Tree.ChangeManager.EndBatch(); } }