// Recursive function for populating agenda tree.
 private void createTreeView(MetaDataDataCollection meta_collection, TreeViewItem treeItem)
 {
     ArrayList al = new ArrayList(meta_collection);
     MetaDataData[] meta = (MetaDataData[])al.ToArray(typeof(MetaDataData));
     createTreeView(meta,treeItem);
 }
Exemple #2
0
 private void WriteXmlFromMetaData(XmlTextWriter writer, MetaDataDataCollection meta_collection)
 {
     ArrayList al = new ArrayList(meta_collection);
     MetaDataData[] meta = (MetaDataData[])al.ToArray(typeof(MetaDataData));
     WriteXmlFromMetaData(writer, meta);
 }
 /// <summary>
 /// Converts a list of metadata as returned by GetClipMetaData or GetEventMetaData and converts it to
 /// tree form that can be used to write back into MediaManager via ImportClipMetaData or ImportEventMetaData.
 /// </summary>
 /// <param name="MetaData">The collection of metadata to be converted to tree form.</param>
 /// 
 public void ConvertToMetaTree(ref MetaDataDataCollection MetaData)
 {
     MetaData = m_BuildMetaBranch(MetaData, 0);
 }
 /// <summary>
 /// Recursively builds a metadata tree from the contents of an array of metadata.
 /// </summary>
 /// <param name="metalist">The array of metadata to convert to a tree.</param>
 /// <param name="ParentID">The numberic ID of the parent node (0 if building from the root is desired).</param>
 /// <returns>The metadata in tree form in a <see cref="Granicus.MediaManager.SDK.MetaDataDataCollection"/>.</returns>
 private MetaDataDataCollection m_BuildMetaBranch(MetaDataDataCollection metalist, int ParentID)
 {
     MetaDataDataCollection tree = new MetaDataDataCollection();
     foreach (MetaDataData meta in metalist)
     {
         if (meta.ParentID == ParentID)
         {
             meta.Children = m_BuildMetaBranch(metalist, meta.ID);
             tree.Add(meta);
         }
     }
     return tree;
 }
 /// <summary>
 /// Imports an entire tree off metadata into the root level of the given event.
 /// </summary>
 /// <param name="EventID">The numeric Event ID to place the metadata tree on.</param>
 /// <param name="MetaData">A MetaDataDataCollection that represents the entire tree.</param>
 /// <param name="ClearExisting">Whether or not to clear the existing metadata for the event (this is usually True).</param>
 /// <param name="AsTree">Whether or not the data is formed into a tree (this is almost always True).</param>
 /// <returns>An array of <see cref="Granicus.MediaManager.SDK.KeyMapping"/> objects that can be used to get the numeric IDs of the new metadata records.</returns>
 public KeyMapping[] ImportEventMetaData(int EventID, MetaDataDataCollection MetaData, bool ClearExisting, bool AsTree)
 {
     ArrayList al = new ArrayList(MetaData);
     MetaDataData[] MetaArray = (MetaDataData[])al.ToArray(typeof(MetaDataData));
     return ImportEventMetaData(EventID, MetaArray, ClearExisting, AsTree);
 }
Exemple #6
0
        private MetaDataDataCollection ParseDocumentItems(XmlNode documentItemsNode)
        {
            MetaDataDataCollection metaCollection = new MetaDataDataCollection();

            foreach (XmlNode documentItemNode in documentItemsNode.ChildNodes)
            {
                // process basic MetaDataData properties
                MetaDataData meta = new MetaDataData();
                meta.Name = documentItemNode.SelectSingleNode("Name").InnerText;
                meta.ForeignID = Int32.Parse(documentItemNode.SelectSingleNode("ForeignID").InnerText);
                meta.Consent = Int32.Parse(documentItemNode.SelectSingleNode("Consent").InnerText);

                // process payload
                switch (documentItemNode.Name)
                {
                    case "AgendaItem":
                        AgendaItem agendaItem = new AgendaItem();
                        agendaItem.Actions = documentItemNode.SelectSingleNode("Actions").InnerText;
                        agendaItem.Department = documentItemNode.SelectSingleNode("Department").InnerText;
                        meta.Payload = agendaItem;
                        break;
                    case "Note":
                        Note note = new Note();
                        note.NoteText = documentItemNode.SelectSingleNode("NoteText").InnerText;
                        note.EditorsNotes = documentItemNode.SelectSingleNode("EditorsNotes").InnerText;
                        note.Private = bool.Parse(documentItemNode.SelectSingleNode("Private").InnerText);
                        meta.Payload = note;
                        break;
                    case "Document":
                        Document doc = new Document();
                        doc.Description = documentItemNode.SelectSingleNode("Description").InnerText;
                        doc.Location = documentItemNode.SelectSingleNode("Location").InnerText;
                        meta.Payload = doc;
                        break;
                    default:
                        // this isn't payload type we are interested in loading, just skip it
                        continue;
                }
                // recursively process any child nodes
                meta.Children = ParseDocumentItems(documentItemNode.SelectSingleNode("Children"));

                metaCollection.Add(meta);
            }
            return metaCollection;
        }