public bool LoadTaskOSD(OutputDelegate WriteLine) { failed = 0; succeeded = 0; string taskFile = ExportCommand.dumpDir + OldID + ".task"; string taskDataS = File.ReadAllText(taskFile); if (string.IsNullOrEmpty(taskDataS) || taskDataS.Length < 30) { TaskInvComplete = true; return(true); } var taskData = OSDParser.DeserializeLLSDXml(taskDataS) as OSDArray; if (taskData == null) { WriteLine("ERROR: Cant read taskData: " + taskDataS); return(false); } lock (TaskItemsToCreate) if (taskData.Count == TaskItemsToCreate.Count && taskData.Count > 0) { succeeded = taskData.Count; return(true); } // scan for existing source nodes lock (TaskItemsToCreate) { foreach (OSDMap item in taskData) { if (item["AssetType"].Type == OSDType.Unknown) { continue; } var itemID = item["UUID"].AsUUID(); TaskItemToCreate titc = null; foreach (TaskItemToCreate itemToCreate in TaskItemsToCreate) { if (itemToCreate.OldItemID == itemID) { titc = itemToCreate; break; } } if (titc == null) { titc = new TaskItemToCreate(this, item); TaskItemsToCreate.Add(titc); } else { titc.TaskItemOSD = item; } AssignObjectNums(); succeeded++; } } return(failed == 0); }
public bool LoadTaskOSD(OutputDelegate WriteLine) { failed = 0; succeeded = 0; string taskFile = ExportCommand.dumpDir + OldID + ".task"; string taskDataS = File.ReadAllText(taskFile); if (string.IsNullOrEmpty(taskDataS) || taskDataS.Length < 30) { TaskInvComplete = true; return true; } var taskData = OSDParser.DeserializeLLSDXml(taskDataS) as OSDArray; if (taskData == null) { WriteLine("ERROR: Cant read taskData: " + taskDataS); return false; } lock (TaskItemsToCreate) if (taskData.Count == TaskItemsToCreate.Count && taskData.Count > 0) { succeeded = taskData.Count; return true; } // scan for existing source nodes lock (TaskItemsToCreate) { foreach (OSDMap item in taskData) { if (item["AssetType"].Type == OSDType.Unknown) { continue; } var itemID = item["UUID"].AsUUID(); TaskItemToCreate titc = null; foreach (TaskItemToCreate itemToCreate in TaskItemsToCreate) { if (itemToCreate.OldItemID == itemID) { titc = itemToCreate; break; } } if (titc == null) { titc = new TaskItemToCreate(this, item); TaskItemsToCreate.Add(titc); } else { titc.TaskItemOSD = item; } AssignObjectNums(); succeeded++; } } return failed == 0; }