示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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));
            }
        }