git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Thu, 12 Oct 2017 11:21:45 +0000 (11:21 +0000)
committerBellai Ádám <USER\adam.bellai>
Thu, 12 Oct 2017 11:21:45 +0000 (11:21 +0000)
client/Maestro/MaestroForm.Designer.cs
client/Maestro/MaestroForm.cs
client/OctopusClient/OctopusAPI.cs

index 1b4434f88c64082cc63a5e718548b5edb32f0a6b..732c967d330de144bedd7316bb538ef0d94090b7 100644 (file)
@@ -43,11 +43,13 @@ namespace Maestro {
             this.groupSource = new System.Windows.Forms.GroupBox();\r
             this.dataGridSource = new System.Windows.Forms.DataGridView();\r
             this.bindingSource = new System.Windows.Forms.BindingSource(this.components);\r
-            this.txtSorceFilter = new System.Windows.Forms.TextBox();\r
             this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();\r
             this.textSelectedSource = new System.Windows.Forms.TextBox();\r
             this.label1 = new System.Windows.Forms.Label();\r
             this.buttonMetadata = new System.Windows.Forms.Button();\r
+            this.panel2 = new System.Windows.Forms.Panel();\r
+            this.buttonDeleteFilter = new System.Windows.Forms.Button();\r
+            this.txtSorceFilter = new System.Windows.Forms.TextBox();\r
             this.ctxmActions = new System.Windows.Forms.ContextMenuStrip(this.components);\r
             this.ctxiDefineSegments = new System.Windows.Forms.ToolStripMenuItem();\r
             this.ctxiModifyArchiveMetadata = new System.Windows.Forms.ToolStripMenuItem();\r
@@ -91,6 +93,7 @@ namespace Maestro {
             ((System.ComponentModel.ISupportInitialize)(this.dataGridSource)).BeginInit();\r
             ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit();\r
             this.tableLayoutPanel2.SuspendLayout();\r
+            this.panel2.SuspendLayout();\r
             this.ctxmActions.SuspendLayout();\r
             ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();\r
             this.splitContainer1.Panel1.SuspendLayout();\r
@@ -126,8 +129,8 @@ namespace Maestro {
             // \r
             this.groupSource.BackColor = System.Drawing.Color.Transparent;\r
             this.groupSource.Controls.Add(this.dataGridSource);\r
-            this.groupSource.Controls.Add(this.txtSorceFilter);\r
             this.groupSource.Controls.Add(this.tableLayoutPanel2);\r
+            this.groupSource.Controls.Add(this.panel2);\r
             this.groupSource.Dock = System.Windows.Forms.DockStyle.Fill;\r
             this.groupSource.Location = new System.Drawing.Point(0, 0);\r
             this.groupSource.Name = "groupSource";\r
@@ -188,16 +191,6 @@ namespace Maestro {
             this.dataGridSource.SelectionChanged += new System.EventHandler(this.sourceGridView_SelectionChanged);\r
             this.dataGridSource.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridSource_KeyDown);\r
             // \r
-            // txtSorceFilter\r
-            // \r
-            this.txtSorceFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
-            this.txtSorceFilter.Dock = System.Windows.Forms.DockStyle.Top;\r
-            this.txtSorceFilter.Location = new System.Drawing.Point(10, 23);\r
-            this.txtSorceFilter.Name = "txtSorceFilter";\r
-            this.txtSorceFilter.Size = new System.Drawing.Size(394, 20);\r
-            this.txtSorceFilter.TabIndex = 13;\r
-            this.txtSorceFilter.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyUp);\r
-            // \r
             // tableLayoutPanel2\r
             // \r
             this.tableLayoutPanel2.ColumnCount = 2;\r
@@ -256,6 +249,37 @@ namespace Maestro {
             this.buttonMetadata.UseVisualStyleBackColor = false;\r
             this.buttonMetadata.Click += new System.EventHandler(this.buttonMetadata_Click);\r
             // \r
+            // panel2\r
+            // \r
+            this.panel2.Controls.Add(this.buttonDeleteFilter);\r
+            this.panel2.Controls.Add(this.txtSorceFilter);\r
+            this.panel2.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.panel2.Location = new System.Drawing.Point(10, 23);\r
+            this.panel2.Name = "panel2";\r
+            this.panel2.Size = new System.Drawing.Size(394, 20);\r
+            this.panel2.TabIndex = 14;\r
+            // \r
+            // buttonDeleteFilter\r
+            // \r
+            this.buttonDeleteFilter.Dock = System.Windows.Forms.DockStyle.Right;\r
+            this.buttonDeleteFilter.Location = new System.Drawing.Point(374, 0);\r
+            this.buttonDeleteFilter.Name = "buttonDeleteFilter";\r
+            this.buttonDeleteFilter.Size = new System.Drawing.Size(20, 20);\r
+            this.buttonDeleteFilter.TabIndex = 3;\r
+            this.buttonDeleteFilter.Text = "button1";\r
+            this.buttonDeleteFilter.UseVisualStyleBackColor = true;\r
+            this.buttonDeleteFilter.Click += new System.EventHandler(this.buttonDeleteFilter_Click);\r
+            // \r
+            // txtSorceFilter\r
+            // \r
+            this.txtSorceFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+            this.txtSorceFilter.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.txtSorceFilter.Location = new System.Drawing.Point(0, 0);\r
+            this.txtSorceFilter.Name = "txtSorceFilter";\r
+            this.txtSorceFilter.Size = new System.Drawing.Size(394, 20);\r
+            this.txtSorceFilter.TabIndex = 13;\r
+            this.txtSorceFilter.KeyUp += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyUp);\r
+            // \r
             // ctxmActions\r
             // \r
             this.ctxmActions.ImageScalingSize = new System.Drawing.Size(19, 19);\r
@@ -715,8 +739,8 @@ namespace Maestro {
             dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Window;\r
             dataGridViewCellStyle11.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
             dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText;\r
-            dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight;\r
-            dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText;\r
+            dataGridViewCellStyle11.SelectionBackColor = System.Drawing.Color.Transparent;\r
+            dataGridViewCellStyle11.SelectionForeColor = System.Drawing.Color.Transparent;\r
             dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True;\r
             this.dataGridMessages.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11;\r
             this.dataGridMessages.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;\r
@@ -727,10 +751,10 @@ namespace Maestro {
             this.dataGridMessages.DataSource = this.systemMessageBindingSource;\r
             dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;\r
             dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Window;\r
-            dataGridViewCellStyle12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
+            dataGridViewCellStyle12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
             dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.ControlText;\r
             dataGridViewCellStyle12.SelectionBackColor = System.Drawing.Color.Transparent;\r
-            dataGridViewCellStyle12.SelectionForeColor = System.Drawing.Color.Black;\r
+            dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.ControlText;\r
             dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.False;\r
             this.dataGridMessages.DefaultCellStyle = dataGridViewCellStyle12;\r
             this.dataGridMessages.Dock = System.Windows.Forms.DockStyle.Fill;\r
@@ -741,14 +765,16 @@ namespace Maestro {
             dataGridViewCellStyle13.BackColor = System.Drawing.SystemColors.Control;\r
             dataGridViewCellStyle13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
             dataGridViewCellStyle13.ForeColor = System.Drawing.SystemColors.WindowText;\r
-            dataGridViewCellStyle13.SelectionBackColor = System.Drawing.SystemColors.Highlight;\r
-            dataGridViewCellStyle13.SelectionForeColor = System.Drawing.SystemColors.HighlightText;\r
+            dataGridViewCellStyle13.SelectionBackColor = System.Drawing.SystemColors.Control;\r
+            dataGridViewCellStyle13.SelectionForeColor = System.Drawing.SystemColors.WindowText;\r
             dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True;\r
             this.dataGridMessages.RowHeadersDefaultCellStyle = dataGridViewCellStyle13;\r
             this.dataGridMessages.RowHeadersVisible = false;\r
             dataGridViewCellStyle14.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
             this.dataGridMessages.RowsDefaultCellStyle = dataGridViewCellStyle14;\r
+            this.dataGridMessages.RowTemplate.DefaultCellStyle.BackColor = System.Drawing.Color.Transparent;\r
             this.dataGridMessages.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);\r
+            this.dataGridMessages.RowTemplate.DefaultCellStyle.SelectionBackColor = System.Drawing.Color.Transparent;\r
             this.dataGridMessages.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
             this.dataGridMessages.Size = new System.Drawing.Size(988, 92);\r
             this.dataGridMessages.TabIndex = 0;\r
@@ -770,10 +796,11 @@ namespace Maestro {
             // \r
             // messageDataGridViewTextBoxColumn\r
             // \r
+            this.messageDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;\r
             this.messageDataGridViewTextBoxColumn.DataPropertyName = "message";\r
             this.messageDataGridViewTextBoxColumn.HeaderText = "Üzenet";\r
+            this.messageDataGridViewTextBoxColumn.MinimumWidth = 71;\r
             this.messageDataGridViewTextBoxColumn.Name = "messageDataGridViewTextBoxColumn";\r
-            this.messageDataGridViewTextBoxColumn.Width = 71;\r
             // \r
             // systemMessageBindingSource\r
             // \r
@@ -798,11 +825,12 @@ namespace Maestro {
             this.Shown += new System.EventHandler(this.MaestroForm_Shown);\r
             this.Resize += new System.EventHandler(this.MaestroForm_Resize);\r
             this.groupSource.ResumeLayout(false);\r
-            this.groupSource.PerformLayout();\r
             ((System.ComponentModel.ISupportInitialize)(this.dataGridSource)).EndInit();\r
             ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).EndInit();\r
             this.tableLayoutPanel2.ResumeLayout(false);\r
             this.tableLayoutPanel2.PerformLayout();\r
+            this.panel2.ResumeLayout(false);\r
+            this.panel2.PerformLayout();\r
             this.ctxmActions.ResumeLayout(false);\r
             this.splitContainer1.Panel1.ResumeLayout(false);\r
             this.splitContainer1.Panel2.ResumeLayout(false);\r
@@ -871,7 +899,6 @@ namespace Maestro {
         private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;\r
         private TrafficClient.TrafficIDSelector trafficIDSelector;\r
         private System.Windows.Forms.Button buttonMetadata;\r
-        private System.Windows.Forms.TextBox txtSorceFilter;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn columnID;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn columnStatus;\r
         private Commons.DataGridViewProgressColumn columnProgress;\r
@@ -884,6 +911,9 @@ namespace Maestro {
         private System.Windows.Forms.TabPage tabPage2;\r
         private System.Windows.Forms.DataGridView dataGridMessages;\r
         private System.Windows.Forms.BindingSource systemMessageBindingSource;\r
+        private System.Windows.Forms.Panel panel2;\r
+        private System.Windows.Forms.Button buttonDeleteFilter;\r
+        private System.Windows.Forms.TextBox txtSorceFilter;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn timeDataGridViewTextBoxColumn;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn Level;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn messageDataGridViewTextBoxColumn;\r
index 81a55b8052786f2886aea5e34c94a1979676578c..30e7ee3955b6a4842032db9db8e323d4e6ad0d50 100644 (file)
@@ -134,7 +134,7 @@ namespace Maestro {
 \r
         private void groupBox_Enter(object sender, EventArgs e) {\r
             Control control = sender as Control;\r
-            control.Font = new Font(control.Font, FontStyle.Bold);\r
+            control.Font = new Font(control.Font, FontStyle.Regular);\r
             control.BackColor = Color.White;\r
         }\r
 \r
@@ -264,7 +264,7 @@ namespace Maestro {
 \r
         public void ReportError(DateTime time, String level, String message, Color color) {\r
             systemMessageBindingSource.Insert(0, new SystemMessage() { Time = time, message = message, Level = level });\r
-            UpdateDataChanged();\r
+            //UpdateDataChanged();\r
             newMSGColor = color;\r
         }\r
 \r
@@ -274,7 +274,18 @@ namespace Maestro {
         }\r
 \r
         private void dataGridMessages_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) {\r
-            dataGridMessages.Rows[0].DefaultCellStyle.BackColor = newMSGColor;\r
+            SystemMessage actual = systemMessageBindingSource.Current as SystemMessage;\r
+            if (actual == null)\r
+                return;\r
+            if (actual.Level.Equals("Error")) {\r
+                dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.BackColor = newMSGColor;\r
+                dataGridMessages.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = newMSGColor;\r
+            }\r
+        }\r
+\r
+        private void buttonDeleteFilter_Click(object sender, EventArgs e) {\r
+            bindingSource.RemoveFilter();\r
+            txtSorceFilter.Text = string.Empty;\r
         }\r
     }\r
 }\r
index f2911f610bc01f9a10d15eeb34a41bbae77fd3aa..1c0cb6640df3846194db2f7b4e6af9327a72aaa0 100644 (file)
@@ -86,8 +86,11 @@ namespace OctopusClient {
                 var dt = scheduledDate.ToUniversalTime().ToString("s", CultureInfo.InvariantCulture);\r
                 request.AddParameter("scheduledDate", dt, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -113,8 +116,11 @@ namespace OctopusClient {
                 var request = new RestRequest("stories/{rundownID}", Method.GET);\r
                 request.AddParameter("rundownID", rundownID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -148,8 +154,11 @@ namespace OctopusClient {
                 var request = new RestRequest("storiesByStoryFolderID/{storyFolderID}", Method.GET);\r
                 request.AddParameter("storyFolderID", storyFolderID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -220,8 +229,11 @@ namespace OctopusClient {
             try {\r
                 var request = new RestRequest("storyfolders", Method.GET);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -244,8 +256,11 @@ namespace OctopusClient {
             try {\r
                 var request = new RestRequest("stories", Method.GET);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -275,8 +290,11 @@ namespace OctopusClient {
                 var request = new RestRequest("getStoriesByIDRegex/{id}", Method.GET);\r
                 request.AddParameter("id", id, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -306,8 +324,11 @@ namespace OctopusClient {
                 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
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -332,8 +353,11 @@ namespace OctopusClient {
                 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
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -359,8 +383,11 @@ namespace OctopusClient {
                 var request = new RestRequest("getMosObjectsByID/{id}", Method.GET);\r
                 request.AddParameter("id", id, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -388,8 +415,11 @@ namespace OctopusClient {
                 var request = new RestRequest("getRundownsByPlaceHolderId/{id}", Method.GET);\r
                 request.AddParameter("id", placeHolderID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -414,8 +444,11 @@ namespace OctopusClient {
                 var request = new RestRequest("getStoryFoldersByPlaceHolderId/{id}", Method.GET);\r
                 request.AddParameter("id", placeHolderID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r
@@ -439,8 +472,11 @@ namespace OctopusClient {
                 var request = new RestRequest("getStoriesByPlaceHolderId/{id}", Method.GET);\r
                 request.AddParameter("id", placeHolderID, ParameterType.UrlSegment);\r
                 var response = client.Execute<JsonArray>(request);\r
-                if (response.ContentLength == 0)\r
-                    throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                if (response.ContentLength == 0) {\r
+                    if (response.ErrorException != null)\r
+                        throw new Exception(String.Format("[Octopus] {0}", response.ErrorMessage));\r
+                    else return null;\r
+                }\r
                 JArray resultObject = JArray.Parse(response.Content);\r
 \r
                 result = resultObject.Children().Select(d => {\r