public override void Restore(MyProject project) { string[] idSplit = PropertyId.Split(new[] { SerializationIdSeparator }, StringSplitOptions.RemoveEmptyEntries); Node = FindNode(project, idSplit[0]); var workingNode = Node as MyWorkingNode; if (workingNode == null) { throw new SerializationException("A task dashboard property found a node without tasks"); } Task = workingNode.GetTaskByPropertyName(idSplit[1]); if (Task == null) { throw new SerializationException("A task dashboard property did not find the target task"); } PropertyInfo = Task.GetType().GetProperty(idSplit[2]); if (PropertyInfo == null) { throw new SerializationException("A task dashboard property was not found on the task"); } }
public override void Restore(MyProject project) { string[] idSplit = PropertyId.Split(SerializationIdSeparator.ToCharArray()); Node = FindNode(project, idSplit[0]); PropertyInfo = Node.GetType().GetProperty(idSplit[1]); if (PropertyInfo == null) { throw new SerializationException("A dashboard property was not found on the node"); } }
public override void Restore(MyProject project) { string[] idSplit = PropertyId.Split(new[] { SerializationIdSeparator }, StringSplitOptions.RemoveEmptyEntries); MyNode node = FindNode(project, idSplit[0]); WorkingNode = node as MyWorkingNode; if (Node == null) { throw new SerializationException(string.Format("Node id {0} was found but doesn't contain tasks", node.Id)); } string taskGroupName = idSplit[1]; TaskGroup taskGroup; if (!WorkingNode.TaskGroups.TryGetValue(taskGroupName, out taskGroup)) { throw new SerializationException(string.Format("Task group {0} not found", taskGroupName)); } TaskGroup = taskGroup; }