public static void FillXmlElementFromDict(XmlElement root, Dictionary <AdvanceNotificationGroupType, Dictionary <string, ICollection <string> > > dict)
 {
     foreach (KeyValuePair <AdvanceNotificationGroupType, Dictionary <string, ICollection <string> > > typeGroups in dict)
     {
         foreach (KeyValuePair <string, ICollection <string> > gData in typeGroups.Value)
         {
             AdvanceNotificationGroup ng = new AdvanceNotificationGroup(typeGroups.Key, gData.Key, gData.Value);
             ng.AddToXML("group", root);
         }
     }
 }
        /// <summary>
        /// Returns groups by type in dictionary form
        /// </summary>
        /// <param name="root">Groups Xml node</param>
        /// <returns>groups by type</returns>
        public static Dictionary <AdvanceNotificationGroupType, Dictionary <string, List <string> > > LoadDictFomXml(XmlNode root)
        {
            List <AdvanceNotificationGroup> groups = CreateListFromXml <AdvanceNotificationGroup>(root, "groups", "group");
            Dictionary <AdvanceNotificationGroupType, Dictionary <string, List <string> > > ret = new Dictionary <AdvanceNotificationGroupType, Dictionary <string, List <string> > >();
            Dictionary <string, List <string> > typeGroups;

            foreach (XmlNode gNode in GetChildren(root, "group"))
            {
                AdvanceNotificationGroup ng = CreateFromXml <AdvanceNotificationGroup>(gNode);
                if (!ret.TryGetValue(ng.Type, out typeGroups))
                {
                    typeGroups = new Dictionary <string, List <string> >();
                    ret.Add(ng.Type, typeGroups);
                }
                typeGroups.Add(ng.Name, ng.Contacts);
            }
            return(ret);
        }