private XmlNode SerializeItem(ProfileDictionaryObject Item) { var profileItem = Item as Profile; if (profileItem != null) { return(SerializeProfile(m_Doc, profileItem)); } var setItem = Item as ProfileSet; if (setItem != null) { var setElement = m_Doc.CreateNode(XmlNodeType.Element, SET_TAG, ""); SerializeBase(m_Doc, Item, setElement); foreach (var profile in Item.Childrens.Cast <Profile>()) { setElement.AppendChild(SerializeProfile(m_Doc, profile)); } return(setElement); } var folderElement = m_Doc.CreateNode(XmlNodeType.Element, FOLDER_TAG, ""); SerializeBase(m_Doc, Item, folderElement); foreach (var folder in Item.Childrens) { folderElement.AppendChild(SerializeItem(folder)); } return(folderElement); }
private static ObservableCollection <Profile> GetCollection(ProfileDictionaryObject Source) { var list = new ObservableCollection <Profile>(); foreach (var profile in Source.Childrens.OrderBy(Item => Item.Name).SelectMany(Item => Item.Childrens.OfType <Profile>())) { list.Add(profile); } return(list); }
private static void SerializeBase(XmlDocument Host, ProfileDictionaryObject Item, XmlNode Element) { try { // Add name var attr = Host.CreateAttribute("Name"); attr.Value = Item.Name; Element.Attributes.Append(attr); // Add key attr = Host.CreateAttribute("Key"); attr.Value = Item.Key.ToString(); Element.Attributes.Append(attr); // Add timestamp attr = Host.CreateAttribute("TS"); attr.Value = Item.Timestamp.ToString(DT_FORMAT_STRING, CultureInfo.InvariantCulture); Element.Attributes.Append(attr); } catch (NullReferenceException ex) { throw new Exception(string.Format("Error during attribute serialization: {0}", ex.Message)); } }