Exemplo n.º 1
0
        private void WriteXmlFromMetaData(XmlTextWriter writer, MetaDataData[] meta_array)
        {
            foreach (MetaDataData meta in meta_array)
            {
                // start writing metadata
                writer.WriteStartElement(meta.Payload.GetType().Name);
                // write ID
                writer.WriteStartElement("ID");
                writer.WriteValue(meta.ID);
                writer.WriteEndElement();

                // write UID
                writer.WriteStartElement("UID");
                writer.WriteValue(meta.UID);
                writer.WriteEndElement();

                if (meta.TimeStamp >= 0)
                {
                    // write timestamp
                    writer.WriteStartElement("TimeStamp");
                    writer.WriteValue(meta.TimeStamp);
                    writer.WriteEndElement();
                }

                // Write name
                writer.WriteStartElement("Name");
                writer.WriteString(meta.Name);
                writer.WriteEndElement();

                // write foreignid
                writer.WriteStartElement("ForeignID");
                writer.WriteValue(meta.ForeignID);
                writer.WriteEndElement();

                // write any object-specific data
                ReflectionWriter(writer, meta.Payload);

                // write metadata children
                writer.WriteStartElement("Children");
                WriteXmlFromMetaData(writer, meta.Children);
                writer.WriteEndElement();

                // finish writing metadata
                writer.WriteEndElement();
            }
        }
        // Recursive function for populating agenda tree.
        private void createTreeView(MetaDataData[] meta_array, TreeViewItem treeItem)
        {
            //System.Windows.MessageBox.Show("hi");
            foreach (MetaDataData meta in meta_array)
            {
                TreeViewItem newChild = new TreeViewItem();
                newChild.Header = meta.Name.Remove(0,3);
                treeItem.Items.Add(newChild);
                //System.Windows.MessageBox.Show(meta.Name);
                createTreeView(meta.Children,newChild);

            }
        }
Exemplo n.º 3
0
 public KeyMapping[] AddEventMetaData(int EventID, MetaDataData MetaDataData)
 {
     object[] results = this.Invoke("AddEventMetaData", new object[] {
                 EventID,
                 MetaDataData});
     return ((KeyMapping[])(results[0]));
 }
Exemplo n.º 4
0
 /// <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 array of metadata to be converted to tree form.</param>
 /// 
 public void ConvertToMetaTree(ref MetaDataData[] MetaData)
 {
     ArrayList al = new ArrayList(m_BuildMetaBranch(MetaData, 0));
     MetaData = (MetaDataData[])al.ToArray(typeof(MetaDataData));
 }
Exemplo n.º 5
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(MetaDataData[] 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;
 }
Exemplo n.º 6
0
 public void UpdateMetaData(MetaDataData MetaData)
 {
     this.Invoke("UpdateMetaData", new object[] {
                 MetaData});
 }
Exemplo n.º 7
0
 public KeyMapping[] AddClipMetaData(int ClipID, MetaDataData MetaDataData)
 {
     object[] results = this.Invoke("AddClipMetaData", new object[] {
                 ClipID,
                 MetaDataData});
     return ((KeyMapping[])(results[0]));
 }
Exemplo n.º 8
0
 public KeyMapping[] ImportEventMetaData(int EventID, MetaDataData[] MetaData, bool ClearExisting, bool AsTree)
 {
     object[] results = this.Invoke("ImportEventMetaData", new object[] {
                 EventID,
                 MetaData,
                 ClearExisting,
                 AsTree});
     return ((KeyMapping[])(results[0]));
 }
Exemplo n.º 9
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;
        }