--- /dev/null
+namespace Maestro {\r
+ partial class ArchiveMetadata {\r
+ /// <summary>\r
+ /// Required designer variable.\r
+ /// </summary>\r
+ private System.ComponentModel.IContainer components = null;\r
+\r
+ /// <summary>\r
+ /// Clean up any resources being used.\r
+ /// </summary>\r
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
+ protected override void Dispose(bool disposing) {\r
+ if (disposing && (components != null)) {\r
+ components.Dispose();\r
+ }\r
+ base.Dispose(disposing);\r
+ }\r
+\r
+ #region Windows Form Designer generated code\r
+\r
+ /// <summary>\r
+ /// Required method for Designer support - do not modify\r
+ /// the contents of this method with the code editor.\r
+ /// </summary>\r
+ private void InitializeComponent() {\r
+ this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();\r
+ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
+ this.label_stuffID = new System.Windows.Forms.Label();\r
+ this.label_stuffTitle = new System.Windows.Forms.Label();\r
+ this.label_stuffDescription = new System.Windows.Forms.Label();\r
+ this.label_mediaID = new System.Windows.Forms.Label();\r
+ this.label_mediaTitle = new System.Windows.Forms.Label();\r
+ this.label_mediaDescription = new System.Windows.Forms.Label();\r
+ this.textBox_stuffID = new System.Windows.Forms.TextBox();\r
+ this.textBox_stuffTitle = new System.Windows.Forms.TextBox();\r
+ this.textBox_stuffDescription = new System.Windows.Forms.TextBox();\r
+ this.textBox_mediaID = new System.Windows.Forms.TextBox();\r
+ this.textBox_mediaTitle = new System.Windows.Forms.TextBox();\r
+ this.textBox_mediaDescription = new System.Windows.Forms.TextBox();\r
+ this.tableLayoutPanel1.SuspendLayout();\r
+ this.SuspendLayout();\r
+ // \r
+ // tableLayoutPanel1\r
+ // \r
+ this.tableLayoutPanel1.ColumnCount = 2;\r
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 29.55975F));\r
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 70.44025F));\r
+ this.tableLayoutPanel1.Controls.Add(this.label_stuffID, 0, 0);\r
+ this.tableLayoutPanel1.Controls.Add(this.label_stuffDescription, 0, 2);\r
+ this.tableLayoutPanel1.Controls.Add(this.label_mediaID, 0, 3);\r
+ this.tableLayoutPanel1.Controls.Add(this.label_mediaTitle, 0, 4);\r
+ this.tableLayoutPanel1.Controls.Add(this.label_mediaDescription, 0, 5);\r
+ this.tableLayoutPanel1.Controls.Add(this.textBox_stuffID, 1, 0);\r
+ this.tableLayoutPanel1.Controls.Add(this.textBox_stuffTitle, 1, 1);\r
+ this.tableLayoutPanel1.Controls.Add(this.textBox_stuffDescription, 1, 2);\r
+ this.tableLayoutPanel1.Controls.Add(this.textBox_mediaID, 1, 3);\r
+ this.tableLayoutPanel1.Controls.Add(this.textBox_mediaTitle, 1, 4);\r
+ this.tableLayoutPanel1.Controls.Add(this.textBox_mediaDescription, 1, 5);\r
+ this.tableLayoutPanel1.Controls.Add(this.label_stuffTitle, 0, 1);\r
+ this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;\r
+ this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);\r
+ this.tableLayoutPanel1.Name = "tableLayoutPanel1";\r
+ this.tableLayoutPanel1.RowCount = 6;\r
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F));\r
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(318, 330);\r
+ this.tableLayoutPanel1.TabIndex = 0;\r
+ // \r
+ // label_stuffID\r
+ // \r
+ this.label_stuffID.AutoSize = true;\r
+ this.label_stuffID.Dock = System.Windows.Forms.DockStyle.Top;\r
+ this.label_stuffID.Location = new System.Drawing.Point(3, 0);\r
+ this.label_stuffID.Name = "label_stuffID";\r
+ this.label_stuffID.Size = new System.Drawing.Size(87, 13);\r
+ this.label_stuffID.TabIndex = 0;\r
+ this.label_stuffID.Text = "Anyag azonosító";\r
+ // \r
+ // label_stuffTitle\r
+ // \r
+ this.label_stuffTitle.AutoSize = true;\r
+ this.label_stuffTitle.Location = new System.Drawing.Point(3, 55);\r
+ this.label_stuffTitle.Name = "label_stuffTitle";\r
+ this.label_stuffTitle.Size = new System.Drawing.Size(58, 13);\r
+ this.label_stuffTitle.TabIndex = 1;\r
+ this.label_stuffTitle.Text = "Anyag cím";\r
+ // \r
+ // label_stuffDescription\r
+ // \r
+ this.label_stuffDescription.AutoSize = true;\r
+ this.label_stuffDescription.Location = new System.Drawing.Point(3, 110);\r
+ this.label_stuffDescription.Name = "label_stuffDescription";\r
+ this.label_stuffDescription.Size = new System.Drawing.Size(66, 13);\r
+ this.label_stuffDescription.TabIndex = 2;\r
+ this.label_stuffDescription.Text = "Anyag leírás";\r
+ // \r
+ // label_mediaID\r
+ // \r
+ this.label_mediaID.AutoSize = true;\r
+ this.label_mediaID.Location = new System.Drawing.Point(3, 165);\r
+ this.label_mediaID.Name = "label_mediaID";\r
+ this.label_mediaID.Size = new System.Drawing.Size(86, 13);\r
+ this.label_mediaID.TabIndex = 3;\r
+ this.label_mediaID.Text = "Média azonosító";\r
+ // \r
+ // label_mediaTitle\r
+ // \r
+ this.label_mediaTitle.AutoSize = true;\r
+ this.label_mediaTitle.Location = new System.Drawing.Point(3, 220);\r
+ this.label_mediaTitle.Name = "label_mediaTitle";\r
+ this.label_mediaTitle.Size = new System.Drawing.Size(57, 13);\r
+ this.label_mediaTitle.TabIndex = 4;\r
+ this.label_mediaTitle.Text = "Média cím";\r
+ // \r
+ // label_mediaDescription\r
+ // \r
+ this.label_mediaDescription.AutoSize = true;\r
+ this.label_mediaDescription.Location = new System.Drawing.Point(3, 275);\r
+ this.label_mediaDescription.Name = "label_mediaDescription";\r
+ this.label_mediaDescription.Size = new System.Drawing.Size(65, 13);\r
+ this.label_mediaDescription.TabIndex = 5;\r
+ this.label_mediaDescription.Text = "Média leírás";\r
+ // \r
+ // textBox_stuffID\r
+ // \r
+ this.textBox_stuffID.Dock = System.Windows.Forms.DockStyle.Top;\r
+ this.textBox_stuffID.Location = new System.Drawing.Point(96, 3);\r
+ this.textBox_stuffID.Name = "textBox_stuffID";\r
+ this.textBox_stuffID.Size = new System.Drawing.Size(219, 20);\r
+ this.textBox_stuffID.TabIndex = 6;\r
+ // \r
+ // textBox_stuffTitle\r
+ // \r
+ this.textBox_stuffTitle.Dock = System.Windows.Forms.DockStyle.Top;\r
+ this.textBox_stuffTitle.Location = new System.Drawing.Point(96, 58);\r
+ this.textBox_stuffTitle.Name = "textBox_stuffTitle";\r
+ this.textBox_stuffTitle.Size = new System.Drawing.Size(219, 20);\r
+ this.textBox_stuffTitle.TabIndex = 7;\r
+ // \r
+ // textBox_stuffDescription\r
+ // \r
+ this.textBox_stuffDescription.Dock = System.Windows.Forms.DockStyle.Top;\r
+ this.textBox_stuffDescription.Location = new System.Drawing.Point(96, 113);\r
+ this.textBox_stuffDescription.Name = "textBox_stuffDescription";\r
+ this.textBox_stuffDescription.Size = new System.Drawing.Size(219, 20);\r
+ this.textBox_stuffDescription.TabIndex = 8;\r
+ // \r
+ // textBox_mediaID\r
+ // \r
+ this.textBox_mediaID.Dock = System.Windows.Forms.DockStyle.Top;\r
+ this.textBox_mediaID.Location = new System.Drawing.Point(96, 168);\r
+ this.textBox_mediaID.Name = "textBox_mediaID";\r
+ this.textBox_mediaID.Size = new System.Drawing.Size(219, 20);\r
+ this.textBox_mediaID.TabIndex = 9;\r
+ // \r
+ // textBox_mediaTitle\r
+ // \r
+ this.textBox_mediaTitle.Dock = System.Windows.Forms.DockStyle.Top;\r
+ this.textBox_mediaTitle.Location = new System.Drawing.Point(96, 223);\r
+ this.textBox_mediaTitle.Name = "textBox_mediaTitle";\r
+ this.textBox_mediaTitle.Size = new System.Drawing.Size(219, 20);\r
+ this.textBox_mediaTitle.TabIndex = 10;\r
+ // \r
+ // textBox_mediaDescription\r
+ // \r
+ this.textBox_mediaDescription.Dock = System.Windows.Forms.DockStyle.Top;\r
+ this.textBox_mediaDescription.Location = new System.Drawing.Point(96, 278);\r
+ this.textBox_mediaDescription.Name = "textBox_mediaDescription";\r
+ this.textBox_mediaDescription.Size = new System.Drawing.Size(219, 20);\r
+ this.textBox_mediaDescription.TabIndex = 11;\r
+ // \r
+ // ArchiveMetadata\r
+ // \r
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
+ this.ClientSize = new System.Drawing.Size(318, 330);\r
+ this.Controls.Add(this.tableLayoutPanel1);\r
+ this.Name = "ArchiveMetadata";\r
+ this.Text = "ArchiveMetadata";\r
+ this.tableLayoutPanel1.ResumeLayout(false);\r
+ this.tableLayoutPanel1.PerformLayout();\r
+ this.ResumeLayout(false);\r
+\r
+ }\r
+\r
+ #endregion\r
+ private System.ComponentModel.BackgroundWorker backgroundWorker1;\r
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;\r
+ private System.Windows.Forms.Label label_stuffTitle;\r
+ private System.Windows.Forms.Label label_stuffID;\r
+ private System.Windows.Forms.Label label_stuffDescription;\r
+ private System.Windows.Forms.Label label_mediaID;\r
+ private System.Windows.Forms.Label label_mediaTitle;\r
+ private System.Windows.Forms.Label label_mediaDescription;\r
+ private System.Windows.Forms.TextBox textBox_stuffID;\r
+ private System.Windows.Forms.TextBox textBox_stuffTitle;\r
+ private System.Windows.Forms.TextBox textBox_stuffDescription;\r
+ private System.Windows.Forms.TextBox textBox_mediaID;\r
+ private System.Windows.Forms.TextBox textBox_mediaTitle;\r
+ private System.Windows.Forms.TextBox textBox_mediaDescription;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System.Windows.Forms;\r
+using Maestro.Metadata;\r
+\r
+namespace Maestro {\r
+ public partial class ArchiveMetadata : Form {\r
+\r
+ private ArchiveMetadataModel model;\r
+\r
+ public ArchiveMetadata(ArchiveMetadataModel model) : this() {\r
+ this.model = model;\r
+ }\r
+\r
+ public ArchiveMetadata() {\r
+ InitializeComponent();\r
+ FillTheTextBoxes();\r
+ }\r
+\r
+ private void FillTheTextBoxes() {\r
+ textBox_stuffID.Text = model.StuffID;\r
+ textBox_stuffTitle.Text = model.StuffTitle;\r
+ textBox_stuffDescription.Text = model.StuffDescription;\r
+ textBox_mediaID.Text = model.MediaID;\r
+ textBox_mediaTitle.Text = model.MediaTitle;\r
+ textBox_mediaDescription.Text = model.MediaDescription;\r
+ }\r
+ }\r
+}\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+ <!-- \r
+ Microsoft ResX Schema \r
+ \r
+ Version 2.0\r
+ \r
+ The primary goals of this format is to allow a simple XML format \r
+ that is mostly human readable. The generation and parsing of the \r
+ various data types are done through the TypeConverter classes \r
+ associated with the data types.\r
+ \r
+ Example:\r
+ \r
+ ... ado.net/XML headers & schema ...\r
+ <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+ <resheader name="version">2.0</resheader>\r
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+ <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+ </data>\r
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+ <comment>This is a comment</comment>\r
+ </data>\r
+ \r
+ There are any number of "resheader" rows that contain simple \r
+ name/value pairs.\r
+ \r
+ Each data row contains a name, and value. The row also contains a \r
+ type or mimetype. Type corresponds to a .NET class that support \r
+ text/value conversion through the TypeConverter architecture. \r
+ Classes that don't support this are serialized and stored with the \r
+ mimetype set.\r
+ \r
+ The mimetype is used for serialized objects, and tells the \r
+ ResXResourceReader how to depersist the object. This is currently not \r
+ extensible. For a given mimetype the value must be set accordingly:\r
+ \r
+ Note - application/x-microsoft.net.object.binary.base64 is the format \r
+ that the ResXResourceWriter will generate, however the reader can \r
+ read any of the formats listed below.\r
+ \r
+ mimetype: application/x-microsoft.net.object.binary.base64\r
+ value : The object must be serialized with \r
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\r
+ : and then encoded with base64 encoding.\r
+ \r
+ mimetype: application/x-microsoft.net.object.soap.base64\r
+ value : The object must be serialized with \r
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+ : and then encoded with base64 encoding.\r
+\r
+ mimetype: application/x-microsoft.net.object.bytearray.base64\r
+ value : The object must be serialized into a byte array \r
+ : using a System.ComponentModel.TypeConverter\r
+ : and then encoded with base64 encoding.\r
+ -->\r
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />\r
+ <xsd:element name="root" msdata:IsDataSet="true">\r
+ <xsd:complexType>\r
+ <xsd:choice maxOccurs="unbounded">\r
+ <xsd:element name="metadata">\r
+ <xsd:complexType>\r
+ <xsd:sequence>\r
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+ </xsd:sequence>\r
+ <xsd:attribute name="name" use="required" type="xsd:string" />\r
+ <xsd:attribute name="type" type="xsd:string" />\r
+ <xsd:attribute name="mimetype" type="xsd:string" />\r
+ <xsd:attribute ref="xml:space" />\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ <xsd:element name="assembly">\r
+ <xsd:complexType>\r
+ <xsd:attribute name="alias" type="xsd:string" />\r
+ <xsd:attribute name="name" type="xsd:string" />\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ <xsd:element name="data">\r
+ <xsd:complexType>\r
+ <xsd:sequence>\r
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+ </xsd:sequence>\r
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />\r
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+ <xsd:attribute ref="xml:space" />\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ <xsd:element name="resheader">\r
+ <xsd:complexType>\r
+ <xsd:sequence>\r
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+ </xsd:sequence>\r
+ <xsd:attribute name="name" type="xsd:string" use="required" />\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ </xsd:choice>\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ </xsd:schema>\r
+ <resheader name="resmimetype">\r
+ <value>text/microsoft-resx</value>\r
+ </resheader>\r
+ <resheader name="version">\r
+ <value>2.0</value>\r
+ </resheader>\r
+ <resheader name="reader">\r
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+ </resheader>\r
+ <resheader name="writer">\r
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+ </resheader>\r
+ <metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+ <value>17, 17</value>\r
+ </metadata>\r
+ <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
+ <value>25</value>\r
+ </metadata>\r
+</root>
\ No newline at end of file
<Reference Include="WindowsBase" />\r
</ItemGroup>\r
<ItemGroup>\r
+ <Compile Include="ArchiveMetadata.cs">\r
+ <SubType>Form</SubType>\r
+ </Compile>\r
+ <Compile Include="ArchiveMetadata.Designer.cs">\r
+ <DependentUpon>ArchiveMetadata.cs</DependentUpon>\r
+ </Compile>\r
<Compile Include="Commons\DataGridViewProgressColumn.cs" />\r
<Compile Include="Commons\ObjectExtensions.cs" />\r
<Compile Include="Configuration\ConfigurationInfo.cs" />\r
<Compile Include="MaestroForm.Target.cs">\r
<SubType>Form</SubType>\r
</Compile>\r
+ <Compile Include="Metadata\ArchiveMetadata.cs" />\r
<Compile Include="Metadata\IDTypes.cs" />\r
<Compile Include="Metadata\MenuButton.cs">\r
<SubType>Component</SubType>\r
<Compile Include="Targets\TargetProcessor.cs" />\r
<Compile Include="Targets\ITargetProcessor.cs" />\r
<Compile Include="Targets\ProcessStatus.cs" />\r
+ <EmbeddedResource Include="ArchiveMetadata.resx">\r
+ <DependentUpon>ArchiveMetadata.cs</DependentUpon>\r
+ </EmbeddedResource>\r
<EmbeddedResource Include="MaestroForm.resx">\r
<DependentUpon>MaestroForm.cs</DependentUpon>\r
<SubType>Designer</SubType>\r
this.ctxiModifyArchiveMetadata.Name = "ctxiModifyArchiveMetadata";\r
this.ctxiModifyArchiveMetadata.Size = new System.Drawing.Size(206, 22);\r
this.ctxiModifyArchiveMetadata.Text = "Modify archive metadata";\r
+ this.ctxiModifyArchiveMetadata.Click += new System.EventHandler(this.ModifyArchiveMetadataClick);\r
// \r
// splitContainer1\r
// \r
using TrafficClient;\r
using System.Collections.Generic;\r
using System.ComponentModel;\r
+using System.Text.RegularExpressions;\r
\r
namespace Maestro {\r
public partial class MaestroForm {\r
};\r
}\r
\r
+ private void ModifyArchiveMetadataClick(object sender, EventArgs e) {\r
+ ArchiveMetadata form = null;\r
+ IDTypes idType = GetTypeOfSelectedMetadata();\r
+ ArchiveMetadataModel model = new ArchiveMetadataModel();\r
+ if (idType == IDTypes.OctopusID)\r
+ FillTheModelFromOctopus(model);\r
+ else if (idType == IDTypes.TrafficID)\r
+ FillTheModelFromTraffic(model);\r
+ //form = new ArchiveMetadata(model);\r
+ //form.ShowDialog();\r
+ }\r
+\r
+ private void FillTheModelFromTraffic(ArchiveMetadataModel model) {\r
+ throw new NotImplementedException();\r
+ }\r
+\r
+ private void FillTheModelFromOctopus(ArchiveMetadataModel model) {\r
+ string id = selectedMetadata.ID;\r
+ OctopusAPI api = octopusIDSelector.GetClient();\r
+ List<Story> stories = api.GetStoriesById(id).ToList();\r
+ Story story = stories[0];\r
+ if (story.StoryFolders != null) {\r
+ List<StoryFolder> storyFolders = api.GetStoryFoldersByStoryID(id).ToList();\r
+ //lehet több mappában is a story?\r
+ StoryFolder folder = storyFolders[0];\r
+ model.StuffID = folder.ID;\r
+ model.StuffTitle = folder.Name;\r
+ } else if (story.Rundowns != null) {\r
+ List<Rundown> rundowns = api.GetRundownsByStoryID(id).ToList();\r
+ Rundown rundown = rundowns[0];\r
+ model.StuffID = rundown.ID;\r
+ model.StuffTitle = rundown.Name;\r
+ model.StuffDescription = rundown.Start;\r
+ }\r
+ model.MediaID = story.ID;\r
+ model.MediaTitle = story.Name;\r
+ model.MediaDescription = story.Script;\r
+\r
+ }\r
+\r
+ private IDTypes GetTypeOfSelectedMetadata() {\r
+ IDTypes result = IDTypes.None;\r
+ if (String.IsNullOrEmpty(selectedMetadata.ID))\r
+ return IDTypes.None;\r
+ string pattern = "[A-Z]{1}[0-9]{6}[A-Z]{1}";\r
+ Match match = Regex.Match(selectedMetadata.ID, pattern);\r
+ if (match.Success) {\r
+ result = IDTypes.TrafficID;\r
+ } else {\r
+ pattern = "[0-9]{7}";\r
+ match = Regex.Match(selectedMetadata.ID, pattern);\r
+ result = match.Success ? IDTypes.OctopusID : IDTypes.None;\r
+ }\r
+ return result;\r
+ }\r
+\r
private void OnDefineSegmentsClick(object sender, EventArgs e) {\r
if (SelectedSource?.FileInfo == null)\r
return;\r
SetStartingName(checkBox);\r
if (selectedSources == null || selectedSources.Count == 0) {\r
buttonMetadata.Enabled = false;\r
- IsSelectedIDTrafficID();\r
+ IsSelectedFileAnID();\r
return;\r
}\r
if (selectedSources.Count == 1) {\r
buttonMetadata.Enabled = true;\r
- IsSelectedIDTrafficID();\r
+ IsSelectedFileAnID();\r
return;\r
}\r
\r
}\r
}\r
buttonMetadata.Enabled = true;\r
- IsSelectedIDTrafficID();\r
+ IsSelectedFileAnID();\r
}\r
\r
private void SetStartingName(bool checkBox) {\r
}\r
\r
private void SetSelectedSourceFileInfo(SourceInfo selectedSource) {\r
+ //todo ha nexio-s akkor null a fileinfo\r
if (selectedSources.Count == 1) {\r
Uri inputUri = new Uri(String.Format("{0}/{1}", Configuration.Source.Local.Address.LocalPath, selectedSources[0]));\r
selectedSource.FileInfo = new System.IO.FileInfo(inputUri.LocalPath);\r
ChangeProcessButtonsState(false);\r
}\r
\r
+ ctxiModifyArchiveMetadata.Enabled = selectedMetadata != null;\r
\r
if (Configuration.Player != null)\r
ctxiDefineSegments.Enabled = SelectedSource?.FileInfo != null && Configuration.Player.SegmentEditor && MetadataType.Traffic.Equals(SelectedMetadata?.Kind);\r
- IsSelectedIDTrafficID();\r
+ IsSelectedFileAnID();\r
}\r
\r
- private void IsSelectedIDTrafficID() {\r
+ private void IsSelectedFileAnID() {\r
if (String.IsNullOrEmpty(startingName))\r
return;\r
- \r
- //kisbetük kellenek?\r
string pattern = "[A-Z]{1}[0-9]{6}[A-Z]{1}";\r
Match match = Regex.Match(startingName, pattern);\r
if (match.Success) {\r
}\r
\r
private void buttonMetadata_Click(object sender, EventArgs e) {\r
- IsSelectedIDTrafficID();\r
+ IsSelectedFileAnID();\r
switch (IDType) {\r
case Metadata.IDTypes.TrafficID:\r
SetTrafficIDToMetadataText();\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Threading.Tasks;\r
+\r
+namespace Maestro.Metadata {\r
+ public class ArchiveMetadataModel {\r
+\r
+ //todo rename a Stuffra??\r
+ public string StuffID { get; set; }\r
+ public string StuffTitle { get; set; }\r
+ public string StuffDescription { get; set; }\r
+ public string MediaID { get; set; }\r
+ public string MediaTitle { get; set; }\r
+ public string MediaDescription { get; set; }\r
+ }\r
+}\r
using System.Globalization;\r
using System.Linq;\r
\r
-namespace OctopusClient\r
-{\r
+namespace OctopusClient {\r
\r
- public class Rundown\r
- {\r
+ public class Rundown {\r
public string ID { get; set; }\r
public string Name { get; set; }\r
public string Start { get; set; }\r
- public override String ToString()\r
- {\r
+ public override String ToString() {\r
string displayName = string.IsNullOrEmpty(Name) ? OctopusAPI.UNNAMED : Name;\r
string result = ID.Equals("0") ? displayName : String.Format($"{Start} | {displayName} ");\r
return result;\r
}\r
}\r
\r
- public class Story\r
- {\r
+ public class Story {\r
public string ID { get; set; }\r
public string Name { get; set; }\r
- public MosObject[] MosObjects{ get; set; }\r
- public override String ToString()\r
- {\r
+ public MosObject[] MosObjects { get; set; }\r
+\r
+ public string Script { get; set; }\r
+\r
+ public StoryFolder[] StoryFolders { get; set; }\r
+\r
+ public Rundown[] Rundowns { get; set; }\r
+\r
+ public override String ToString() {\r
string displayName = string.IsNullOrEmpty(Name) ? OctopusAPI.UNNAMED : Name;\r
string result = ID.Equals("0") ? displayName : String.Format($"{ID} | {displayName} ");\r
return result;\r
}\r
}\r
\r
- public class MosObject\r
- {\r
+ public class MosObject {\r
public string MosID { get; set; }\r
public string ObjID { get; set; }\r
public string ObjectType { get; set; }\r
public string GlobalID { get; set; }\r
}\r
\r
- public class StoryFolder\r
- {\r
+ public class StoryFolder {\r
\r
public string ID { get; set; }\r
\r
public string Name { get; set; }\r
\r
- public override String ToString()\r
- {\r
+ public override String ToString() {\r
string displayName = string.IsNullOrEmpty(Name) ? OctopusAPI.UNNAMED : Name;\r
string result = ID.Equals("0") ? displayName : String.Format($"{ID} | {displayName} ");\r
return result;\r
}\r
}\r
\r
- public class OctopusAPI\r
- {\r
+ public class OctopusAPI {\r
public const string UNNAMED = "<Unnamed>";\r
\r
private static Logger logger = LogManager.GetCurrentClassLogger();\r
private string user;\r
private string pwd;\r
\r
- public OctopusAPI(string address, string user, string pwd, int timeout)\r
- {\r
+ public OctopusAPI(string address, string user, string pwd, int timeout) {\r
this.user = user;\r
this.pwd = pwd;\r
- client = new RestClient(address)\r
- {\r
+ client = new RestClient(address) {\r
Authenticator = new HttpBasicAuthenticator(user, pwd),\r
Timeout = timeout\r
};\r
}\r
\r
- public IEnumerable<Rundown> GetRundowns(DateTime scheduledDate)\r
- {\r
+ public IEnumerable<Rundown> GetRundowns(DateTime scheduledDate) {\r
IEnumerable<Rundown> result = null;\r
- try\r
- {\r
+ try {\r
var request = new RestRequest("rundowns/{scheduledDate}", Method.GET);\r
var dt = scheduledDate.ToUniversalTime().ToString("s", CultureInfo.InvariantCulture);\r
request.AddParameter("scheduledDate", dt, ParameterType.UrlSegment);\r
return null;\r
JArray resultObject = JArray.Parse(response.Content);\r
\r
- result = resultObject.Children().Select(d =>\r
- {\r
- Rundown r = new Rundown\r
- {\r
+ result = resultObject.Children().Select(d => {\r
+ Rundown r = new Rundown {\r
ID = d["id"].ToString(),\r
Name = d["name"].ToString(),\r
Start = d["scheduledStart"].ToString()\r
return r;\r
});\r
}\r
- catch (Exception e)\r
- {\r
+ catch (Exception e) {\r
//log e.Message ??\r
}\r
return result;\r
}\r
\r
- public IEnumerable<Story> GetStories(string rundownID)\r
- {\r
+ public IEnumerable<Story> GetStories(string rundownID) {\r
IEnumerable<Story> result = null;\r
- try\r
- {\r
+ try {\r
var request = new RestRequest("stories/{rundownID}", Method.GET);\r
request.AddParameter("rundownID", rundownID, ParameterType.UrlSegment);\r
var response = client.Execute<JsonArray>(request);\r
return null;\r
JArray resultObject = JArray.Parse(response.Content);\r
\r
- result = resultObject.Children().Select(d =>\r
- {\r
+ result = resultObject.Children().Select(d => {\r
List<MosObject> objs = GetMosObjectsFromStory(d);\r
- Story r = new Story\r
- {\r
+ Story r = new Story {\r
ID = d["id"].ToString(),\r
Name = d["name"].ToString(),\r
MosObjects = objs.ToArray()\r
};\r
+ if (d["script"] != null)\r
+ r.Script = d["script"].ToString();\r
+ if (d["story_folder"] != null)\r
+ r.StoryFolders = GetStoryFolderFromStory(d).ToArray();\r
+ if (d["rundown"] != null)\r
+ r.Rundowns = GetRundownFromStory(d).ToArray();\r
logger.Debug($"{r}");\r
return r;\r
- }).OrderBy(r =>\r
- {\r
+ }).OrderBy(r => {\r
return r.ID;\r
});\r
}\r
return result;\r
}\r
\r
- public IEnumerable<Story> GetStoriesByStoryFolderID(string storyFolderID)\r
- {\r
+ public IEnumerable<Story> GetStoriesByStoryFolderID(string storyFolderID) {\r
IEnumerable<Story> result = null;\r
- try\r
- {\r
+ try {\r
var request = new RestRequest("storiesByStoryFolderID/{storyFolderID}", Method.GET);\r
request.AddParameter("storyFolderID", storyFolderID, ParameterType.UrlSegment);\r
var response = client.Execute<JsonArray>(request);\r
return null;\r
JArray resultObject = JArray.Parse(response.Content);\r
\r
- result = resultObject.Children().Select(d =>\r
- {\r
+ result = resultObject.Children().Select(d => {\r
List<MosObject> objs = GetMosObjectsFromStory(d);\r
- Story r = new Story\r
- {\r
+ Story r = new Story {\r
ID = d["id"].ToString(),\r
Name = d["name"].ToString(),\r
MosObjects = objs.ToArray()\r
- };\r
- \r
+ };\r
+ if (d["script"] != null) {\r
+ r.Script = d["script"].ToString();\r
+ }\r
+ if (d["story_folder"] != null)\r
+ r.StoryFolders = GetStoryFolderFromStory(d).ToArray();\r
+ if (d["rundown"] != null)\r
+ r.Rundowns = GetRundownFromStory(d).ToArray();\r
logger.Debug($"{r}");\r
return r;\r
- }).OrderBy(r =>\r
- {\r
+ }).OrderBy(r => {\r
return r.ID;\r
});\r
}\r
return result;\r
}\r
\r
- private List<MosObject> GetMosObjectsFromStory(JToken d)\r
- {\r
+ private List<Rundown> GetRundownFromStory(JToken d) {\r
+ JToken[] array = d["rundown"].ToArray();\r
+ List<Rundown> objs = new List<Rundown>();\r
+ foreach (JToken token in array) {\r
+ Rundown folder = new Rundown() { ID = token["id"].ToString() };\r
+ objs.Add(folder);\r
+ }\r
+ return objs;\r
+ }\r
+\r
+ private List<StoryFolder> GetStoryFolderFromStory(JToken d) {\r
+ JToken[] array = d["story_folder"].ToArray();\r
+ List<StoryFolder> objs = new List<StoryFolder>();\r
+ foreach (JToken token in array) {\r
+ StoryFolder folder = new StoryFolder() { ID = token["id"].ToString() };\r
+ objs.Add(folder);\r
+ }\r
+ return objs;\r
+ }\r
+\r
+ private List<MosObject> GetMosObjectsFromStory(JToken d) {\r
JToken[] array = d["mosObjects"].ToArray();\r
List<MosObject> objs = new List<MosObject>();\r
- foreach (JToken token in array)\r
- {\r
- Console.WriteLine(token["id"]);\r
- MosObject mosObject = new MosObject()\r
- {\r
+ foreach (JToken token in array) {\r
+ MosObject mosObject = new MosObject() {\r
GlobalID = token["globalId"].ToString(),\r
ID = token["id"].ToString(),\r
Modified = token["modified"].ToString(),\r
return objs;\r
}\r
\r
- public IEnumerable<StoryFolder> getStoryFolders()\r
- {\r
+ public IEnumerable<StoryFolder> getStoryFolders() {\r
IEnumerable<StoryFolder> result = null;\r
- try\r
- {\r
+ try {\r
var request = new RestRequest("storyfolders", Method.GET);\r
var response = client.Execute<JsonArray>(request);\r
if (response.ContentLength == 0)\r
return null;\r
JArray resultObject = JArray.Parse(response.Content);\r
\r
- result = resultObject.Children().Select(d =>\r
- {\r
- StoryFolder r = new StoryFolder\r
- {\r
+ result = resultObject.Children().Select(d => {\r
+ StoryFolder r = new StoryFolder {\r
ID = d["id"].ToString(),\r
Name = d["name"].ToString()\r
};\r
return result;\r
}\r
\r
- public IEnumerable<Story> GetStories()\r
- {\r
+ public IEnumerable<Story> GetStories() {\r
IEnumerable<Story> result = null;\r
- try\r
- {\r
+ try {\r
var request = new RestRequest("stories", Method.GET);\r
var response = client.Execute<JsonArray>(request);\r
if (response.ContentLength == 0)\r
return null;\r
JArray resultObject = JArray.Parse(response.Content);\r
\r
- result = resultObject.Children().Select(d =>\r
- {\r
- Story r = new Story\r
- {\r
+ result = resultObject.Children().Select(d => {\r
+ Story r = new Story {\r
ID = d["id"].ToString(),\r
Name = d["name"].ToString()\r
};\r
+ if (d["script"] != null)\r
+ r.Script = d["script"].ToString();\r
+ if (d["story_folder"] != null)\r
+ r.StoryFolders = GetStoryFolderFromStory(d).ToArray();\r
+ if (d["rundown"] != null)\r
+ r.Rundowns = GetRundownFromStory(d).ToArray();\r
logger.Debug($"{r}");\r
return r;\r
});\r
return result;\r
}\r
\r
- public IEnumerable<Story> GetStoriesById(String id)\r
- {\r
+ public IEnumerable<Story> GetStoriesById(String id) {\r
IEnumerable<Story> result = null;\r
- try\r
- {\r
+ try {\r
var request = new RestRequest("getStoriesByIDRegex/{id}", Method.GET);\r
request.AddParameter("id", id, ParameterType.UrlSegment);\r
var response = client.Execute<JsonArray>(request);\r
return null;\r
JArray resultObject = JArray.Parse(response.Content);\r
\r
- result = resultObject.Children().Select(d =>\r
- {\r
- Story r = new Story\r
- {\r
+ result = resultObject.Children().Select(d => {\r
+ Story r = new Story {\r
ID = d["id"].ToString(),\r
Name = String.IsNullOrEmpty(d["name"].ToString()) ? OctopusAPI.UNNAMED : d["name"].ToString()\r
};\r
+ if (d["script"] != null)\r
+ r.Script = d["script"].ToString();\r
+ if (d["story_folder"] != null)\r
+ r.StoryFolders = GetStoryFolderFromStory(d).ToArray();\r
+ if (d["rundown"] != null)\r
+ r.Rundowns = GetRundownFromStory(d).ToArray();\r
logger.Debug($"{r}");\r
return r;\r
});\r
return result;\r
}\r
\r
+ public IEnumerable<StoryFolder> GetStoryFoldersByStoryID(String id) {\r
+ IEnumerable<StoryFolder> result = null;\r
+ try {\r
+ var request = new RestRequest("getStoryFolders/{id}", Method.GET);\r
+ request.AddParameter("id", id, ParameterType.UrlSegment);\r
+ var response = client.Execute<JsonArray>(request);\r
+ if (response.ContentLength == 0)\r
+ return null;\r
+ JArray resultObject = JArray.Parse(response.Content);\r
+\r
+ result = resultObject.Children().Select(d => {\r
+ StoryFolder r = new StoryFolder {\r
+ ID = d["id"].ToString(),\r
+ Name = String.IsNullOrEmpty(d["name"].ToString()) ? OctopusAPI.UNNAMED : d["name"].ToString()\r
+ };\r
+\r
+ logger.Debug($"{r}");\r
+ return r;\r
+ });\r
+ }\r
+ catch (Exception e) { }\r
+ return result;\r
+ }\r
+\r
+ public IEnumerable<Rundown> GetRundownsByStoryID(String id) {\r
+ IEnumerable<Rundown> result = null;\r
+ try {\r
+ var request = new RestRequest("getRundownByStoryID/{id}", Method.GET);\r
+ request.AddParameter("id", id, ParameterType.UrlSegment);\r
+ var response = client.Execute<JsonArray>(request);\r
+ if (response.ContentLength == 0)\r
+ return null;\r
+ JArray resultObject = JArray.Parse(response.Content);\r
+\r
+ result = resultObject.Children().Select(d => {\r
+ Rundown r = new Rundown {\r
+ ID = d["id"].ToString(),\r
+ Name = String.IsNullOrEmpty(d["name"].ToString()) ? OctopusAPI.UNNAMED : d["name"].ToString(),\r
+ Start = d["scheduledStart"].ToString()\r
+ };\r
+\r
+ logger.Debug($"{r}");\r
+ return r;\r
+ });\r
+ }\r
+ catch (Exception e) { }\r
+ return result;\r
+ }\r
+\r
+\r
public IEnumerable<MosObject> GetMosObjectsByID(String id) {\r
IEnumerable<MosObject> result = null;\r
try {\r
copiaCheckBox.Text = Resources.HIANYZO_KOPIA;\r
\r
dataGridView1.AutoGenerateColumns = false;\r
- // dataGridView1.Columns.AddRange(new DataGridViewCheckBoxColumn());\r
dataGridView1.Columns.AddRange(\r
new DataGridViewColumn[] {\r
new DataGridViewCheckBoxColumn(){\r
- AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill,\r
+ AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells,\r
DataPropertyName = "Selected"\r
},\r
new DataGridViewTextBoxColumn() {\r
- AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader,\r
+ AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells,\r
DataPropertyName = "MediaID",\r
HeaderText = Resources.TRAFFIC_ID\r
},\r
logger.trace("Exit");
return result;
}
+
+ @GET
+ @Path("/getStoryFolders/{id}")
+ @Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON })
+ public Response getStoryFoldersByStoryID(@PathParam("id") String id) {
+ logger.trace("Entry");
+ Response result = null;
+ try {
+ List<DBObject> stories = octopusService.getStoryFolders(Long.parseLong(id));
+ result = Response.ok(stories).build();
+ } catch (Exception e) {
+ result = createErrorResponse(e);
+ }
+ logger.trace("Exit");
+ return result;
+ }
+
+ @GET
+ @Path("/getRundownByStoryID/{id}")
+ @Consumes({ MediaType.APPLICATION_JSON })
+ @Produces({ MediaType.APPLICATION_JSON })
+ public Response getRundownByStoryID(@PathParam("id") String id) {
+ logger.trace("Entry");
+ Response result = null;
+ try {
+ List<DBObject> stories = octopusService.getRundownByStoryID(Long.parseLong(id));
+ result = Response.ok(stories).build();
+ } catch (Exception e) {
+ result = createErrorResponse(e);
+ }
+ logger.trace("Exit");
+ return result;
+ }
+
}
\ No newline at end of file