/// <summary> /// Convert the Xml representation of a ExportedKws object to its /// ExportedKws object equivalent. /// </summary> public static ExportedKws FromXml(XmlElement parent) { ExportedKws kws = new ExportedKws(); kws.ExportedVersion = UInt32.Parse(parent.GetAttribute("version")); if (kws.ExportedVersion > 3) throw new Exception("Unsupported Kws version ('" + kws.ExportedVersion + "')."); XmlElement kasIDElem = Misc.GetXmlChildElement(parent, "KasID"); if (kasIDElem == null) throw new Exception("KasID element not present"); kws.Creds.KasID = KasIdentifier.FromXml(kasIDElem); kws.Creds.ExternalID = UInt64.Parse(Misc.GetXmlChildValue(parent, "ExternalID", "0")); kws.Creds.EmailID = Misc.GetXmlChildValue(parent, "EmailID", ""); kws.Creds.KwsName = Misc.GetXmlChildValue(parent, "KwsName", ""); kws.Creds.UserName = Misc.GetXmlChildValue(parent, "UserName", ""); kws.Creds.UserEmailAddress = Misc.GetXmlChildValue(parent, "UserEmailAddress", ""); kws.Creds.InviterName = Misc.GetXmlChildValue(parent, "InviterName", ""); kws.Creds.InviterEmailAddress = Misc.GetXmlChildValue(parent, "InviterEmailAddress", ""); kws.Creds.AdminFlag = bool.Parse(Misc.GetXmlChildValue(parent, "AdminFlag", "False")); kws.Creds.PublicFlag = bool.Parse(Misc.GetXmlChildValue(parent, "PublicFlag", "False")); kws.Creds.SecureFlag = bool.Parse(Misc.GetXmlChildValue(parent, "SecureFlag", "True")); kws.Creds.UserID = UInt32.Parse(Misc.GetXmlChildValue(parent, "UserID", "0")); kws.Creds.Pwd = Misc.GetXmlChildValue(parent, "Pwd", ""); kws.Creds.Ticket = Convert.FromBase64String(Misc.GetXmlChildValue(parent, "Ticket", "")); kws.Creds.KwmoAddress = Misc.GetXmlChildValue(parent, "KwmoAddress", ""); kws.FolderPath = Misc.GetXmlChildValue(parent, "FolderPath", ""); // Normalize the ticket value. if (kws.Creds.Ticket != null && kws.Creds.Ticket.Length == 0) kws.Creds.Ticket = null; return kws; }
/// <summary> /// Helper method that wraps a Kws export and its parent folder path. /// </summary> private void ExportKws(Workspace kws, XmlDocument doc, XmlElement parent) { // Bail out if we cannot export the workspace. if (!kws.Sm.CanExport()) return; // Get the parent folder of this workspace. KwsBrowserNode node = UiBroker.Browser.GetKwsNodeByKws(kws); Debug.Assert(node != null); ExportedKws expKws = new ExportedKws(kws, node.Parent.FullPath); expKws.ToXml(doc, parent); }