diff --git a/AboutPage/ContactForm.cs b/AboutPage/ContactForm.cs index b74bb4f4f..a7d95926f 100644 --- a/AboutPage/ContactForm.cs +++ b/AboutPage/ContactForm.cs @@ -253,7 +253,7 @@ namespace MatterHackers.MatterControl.ContactForm submitButton.Visible = false; postRequest.RequestSucceeded += new EventHandler(onPostRequestSucceeded); - postRequest.RequestFailed += new EventHandler(onPostRequestFailed); + postRequest.RequestFailed += onPostRequestFailed; postRequest.Request(); } } @@ -264,7 +264,7 @@ namespace MatterHackers.MatterControl.ContactForm doneButton.Visible = true; } - private void onPostRequestFailed(object sender, EventArgs e) + private void onPostRequestFailed(object sender, ResponseErrorEventArgs e) { submissionStatus.Text = LocalizedString.Get("Sorry! We weren't able to submit your request."); doneButton.Visible = true; diff --git a/AboutPage/UpdateControlData.cs b/AboutPage/UpdateControlData.cs index 14f613c1b..ed6d7c96c 100644 --- a/AboutPage/UpdateControlData.cs +++ b/AboutPage/UpdateControlData.cs @@ -170,7 +170,7 @@ namespace MatterHackers.MatterControl SetUpdateStatus(UpdateStatusStates.CheckingForUpdate); RequestLatestVersion request = new RequestLatestVersion(); request.RequestSucceeded += new EventHandler(onVersionRequestSucceeded); - request.RequestFailed += new EventHandler(onVersionRequestFailed); + request.RequestFailed += onVersionRequestFailed; request.Request(); } } @@ -243,7 +243,7 @@ namespace MatterHackers.MatterControl return null; } - private void onVersionRequestFailed(object sender, EventArgs e) + private void onVersionRequestFailed(object sender, ResponseErrorEventArgs e) { SetUpdateStatus(UpdateStatusStates.UpToDate); } diff --git a/ConfigurationPage/CloudSettings/CloudSettingsView.cs b/ConfigurationPage/CloudSettings/CloudSettingsView.cs index 260286ae6..985f06b46 100644 --- a/ConfigurationPage/CloudSettings/CloudSettingsView.cs +++ b/ConfigurationPage/CloudSettings/CloudSettingsView.cs @@ -12,24 +12,11 @@ namespace MatterHackers.MatterControl.ConfigurationPage { public class CloudSettingsWidget : SettingsViewBase { - private DisableableWidget cloudMonitorContainer; private DisableableWidget notificationSettingsContainer; - private Button enableCloudMonitorButton; - private Button disableCloudMonitorButton; - private Button goCloudMonitoringWebPageButton; - - private Button cloudMonitorInstructionsLink; - private TextWidget cloudMonitorStatusLabel; - private Button configureNotificationSettingsButton; - public CloudSettingsWidget() : base(LocalizedString.Get("Cloud Settings")) { - cloudMonitorContainer = new DisableableWidget(); - cloudMonitorContainer.AddChild(GetCloudMonitorControls()); - mainContainer.AddChild(cloudMonitorContainer); - mainContainer.AddChild(new HorizontalLine(separatorLineColor)); notificationSettingsContainer = new DisableableWidget(); @@ -38,7 +25,6 @@ namespace MatterHackers.MatterControl.ConfigurationPage AddChild(mainContainer); - SetCloudButtonVisiblity(); AddHandlers(); } @@ -120,45 +106,6 @@ namespace MatterHackers.MatterControl.ConfigurationPage InvertLightness.DoInvertLightness(cloudMonitorImage); } - ImageWidget cloudMonitoringIcon = new ImageWidget(cloudMonitorImage); - cloudMonitoringIcon.Margin = new BorderDouble(right: 6); - - enableCloudMonitorButton = textImageButtonFactory.Generate("Enable".Localize().ToUpper()); - enableCloudMonitorButton.Margin = new BorderDouble(left: 6); - enableCloudMonitorButton.VAnchor = VAnchor.ParentCenter; - enableCloudMonitorButton.Click += new EventHandler(enableCloudMonitor_Click); - - disableCloudMonitorButton = textImageButtonFactory.Generate("Disable".Localize().ToUpper()); - disableCloudMonitorButton.Margin = new BorderDouble(left: 6); - disableCloudMonitorButton.VAnchor = VAnchor.ParentCenter; - disableCloudMonitorButton.Click += new EventHandler(disableCloudMonitor_Click); - - cloudMonitorInstructionsLink = linkButtonFactory.Generate("More Info".Localize().ToUpper()); - cloudMonitorInstructionsLink.VAnchor = VAnchor.ParentCenter; - cloudMonitorInstructionsLink.Click += new EventHandler(goCloudMonitoringInstructionsButton_Click); - cloudMonitorInstructionsLink.Margin = new BorderDouble(left: 6); - - goCloudMonitoringWebPageButton = linkButtonFactory.Generate("View Status".Localize().ToUpper()); - goCloudMonitoringWebPageButton.VAnchor = VAnchor.ParentCenter; - goCloudMonitoringWebPageButton.Click += new EventHandler(goCloudMonitoringWebPageButton_Click); - goCloudMonitoringWebPageButton.Margin = new BorderDouble(left: 6); - - cloudMonitorStatusLabel = new TextWidget(""); - cloudMonitorStatusLabel.AutoExpandBoundsToText = true; - cloudMonitorStatusLabel.TextColor = ActiveTheme.Instance.PrimaryTextColor; - cloudMonitorStatusLabel.VAnchor = VAnchor.ParentCenter; - - GuiWidget hSpacer = new GuiWidget(); - hSpacer.HAnchor = HAnchor.ParentLeftRight; - - buttonBar.AddChild(cloudMonitoringIcon); - buttonBar.AddChild(cloudMonitorStatusLabel); - buttonBar.AddChild(cloudMonitorInstructionsLink); - buttonBar.AddChild(goCloudMonitoringWebPageButton); - buttonBar.AddChild(hSpacer); - buttonBar.AddChild(enableCloudMonitorButton); - buttonBar.AddChild(disableCloudMonitorButton); - return buttonBar; } @@ -183,11 +130,6 @@ namespace MatterHackers.MatterControl.ConfigurationPage ImageWidget levelingIcon = new ImageWidget(notificationSettingsImage); levelingIcon.Margin = new BorderDouble(right: 6, bottom: 6); - configureNotificationSettingsButton = textImageButtonFactory.Generate("Configure".Localize().ToUpper()); - configureNotificationSettingsButton.Margin = new BorderDouble(left: 6); - configureNotificationSettingsButton.VAnchor = VAnchor.ParentCenter; - configureNotificationSettingsButton.Click += new EventHandler(configureNotificationSettingsButton_Click); - notificationSettingsLabel = new TextWidget(LocalizedString.Get("Notification Settings")); notificationSettingsLabel.AutoExpandBoundsToText = true; notificationSettingsLabel.TextColor = ActiveTheme.Instance.PrimaryTextColor; @@ -209,29 +151,11 @@ namespace MatterHackers.MatterControl.ConfigurationPage buttonRow.AddChild(levelingIcon); buttonRow.AddChild(notificationSettingsLabel); buttonRow.AddChild(new HorizontalSpacer()); - buttonRow.AddChild(configureNotificationSettingsButton); buttonRow.AddChild(levelingSwitchContainer); return buttonRow; } - private void SetCloudButtonVisiblity() - { - bool cloudMontitorEnabled = (PrinterSettings.Instance.get("CloudMonitorEnabled") == "true"); - enableCloudMonitorButton.Visible = !cloudMontitorEnabled; - disableCloudMonitorButton.Visible = cloudMontitorEnabled; - goCloudMonitoringWebPageButton.Visible = cloudMontitorEnabled; - - if (cloudMontitorEnabled) - { - cloudMonitorStatusLabel.Text = LocalizedString.Get("Cloud Monitoring (enabled)"); - } - else - { - cloudMonitorStatusLabel.Text = LocalizedString.Get("Cloud Monitoring (disabled)"); - } - } - public override void OnClosed(EventArgs e) { if (unregisterEvents != null) @@ -251,7 +175,6 @@ namespace MatterHackers.MatterControl.ConfigurationPage private void onPrinterStatusChanged(object sender, EventArgs e) { - SetVisibleControls(); this.Invalidate(); } @@ -265,17 +188,5 @@ namespace MatterHackers.MatterControl.ConfigurationPage } } - private void SetVisibleControls() - { - if (ActivePrinterProfile.Instance.ActivePrinter == null) - { - // no printer selected - cloudMonitorContainer.SetEnableLevel(DisableableWidget.EnableLevel.Disabled); - } - else // we at least have a printer selected - { - cloudMonitorContainer.SetEnableLevel(DisableableWidget.EnableLevel.Enabled); - } - } } } \ No newline at end of file diff --git a/PrinterCommunication/PrinterConnectionAndCommunication.cs b/PrinterCommunication/PrinterConnectionAndCommunication.cs index 9d554b0f9..d6fd89e50 100644 --- a/PrinterCommunication/PrinterConnectionAndCommunication.cs +++ b/PrinterCommunication/PrinterConnectionAndCommunication.cs @@ -2056,7 +2056,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication } } - private void CancelPrint() + public void CancelPrint() { using (TimedLock.Lock(this, "CancelingPrint")) { diff --git a/VersionManagement/WebRequestHandler.cs b/VersionManagement/WebRequestHandler.cs index a15192b07..f74f45a16 100644 --- a/VersionManagement/WebRequestHandler.cs +++ b/VersionManagement/WebRequestHandler.cs @@ -34,6 +34,114 @@ using System.ComponentModel; namespace MatterHackers.MatterControl.VersionManagement { + public class ResponseErrorEventArgs : EventArgs + { + public JsonResponseDictionary ResponseValues { get; set; } + } + + public class ResponseSuccessEventArgs : EventArgs + { + public T ResponseItem { get; set; } + } + + public class WebRequestBase where T : class + { + protected string uri; + protected Dictionary requestValues; + + public event EventHandler> RequestSucceeded; + + public event EventHandler RequestFailed; + + public event EventHandler RequestComplete; + + protected void OnRequestSuceeded(T responseItem) + { + if (RequestSucceeded != null) + { + RequestSucceeded(this, new ResponseSuccessEventArgs() { ResponseItem = responseItem }); + } + } + + //This gets called after failure or success + protected void OnRequestComplete() + { + if (RequestComplete != null) + { + RequestComplete(this, null); + } + } + + protected void OnRequestFailed(JsonResponseDictionary responseValues) + { + if (RequestFailed != null) + { + RequestFailed(this, new ResponseErrorEventArgs() { ResponseValues = responseValues }); + } + } + + public WebRequestBase() + { + requestValues = new Dictionary(); + } + + protected virtual void SendRequest(object sender, DoWorkEventArgs e) + { + RequestManager requestManager = new RequestManager(); + string jsonToSend = JsonConvert.SerializeObject(requestValues); + + System.Diagnostics.Trace.Write(string.Format("ServiceRequest: {0}\r\n {1}\r\n", uri, string.Join("\r\n\t", jsonToSend.Split(',')))); + + requestManager.SendPOSTRequest(uri, jsonToSend, "", "", false); + + if (requestManager.LastResponse != null) + { + try + { + e.Result = JsonConvert.DeserializeObject(requestManager.LastResponse); + } + catch + { + e.Result = JsonConvert.DeserializeObject(requestManager.LastResponse); + } + } + + T responseItem = e.Result as T; + if (responseItem != null) + { + OnRequestSuceeded(responseItem); + } + else + { + OnRequestFailed(e.Result as JsonResponseDictionary); + } + + OnRequestComplete(); + } + + public virtual void ProcessErrorResponse(JsonResponseDictionary responseValues) + { + string errorMessage = responseValues.get("ErrorMessage"); + if (errorMessage != null) + { + Console.WriteLine(string.Format("Request Failed: {0}", errorMessage)); + } + else + { + Console.WriteLine(string.Format("Request Failed: Unknown Reason")); + } + } + + public virtual void Request() + { + BackgroundWorker doRequestWorker = new BackgroundWorker(); + doRequestWorker.DoWork += new DoWorkEventHandler(SendRequest); + //doRequestWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(ProcessResponse); + doRequestWorker.RunWorkerAsync(); + } + } + + public class WebRequestBase { protected string uri; @@ -41,7 +149,7 @@ namespace MatterHackers.MatterControl.VersionManagement public event EventHandler RequestSucceeded; - public event EventHandler RequestFailed; + public event EventHandler RequestFailed; public event EventHandler RequestComplete; @@ -62,11 +170,11 @@ namespace MatterHackers.MatterControl.VersionManagement } } - protected void OnRequestFailed() + protected void OnRequestFailed(JsonResponseDictionary responseValues) { if (RequestFailed != null) { - RequestFailed(this, null); + RequestFailed(this, new ResponseErrorEventArgs() { ResponseValues = responseValues }); } } @@ -92,6 +200,8 @@ namespace MatterHackers.MatterControl.VersionManagement RequestManager requestManager = new RequestManager(); string jsonToSend = getJsonToSend(); + System.Diagnostics.Trace.Write(string.Format("ServiceRequest: {0}\r\n {1}\r\n", uri, string.Join("\r\n\t", jsonToSend.Split(',')))); + requestManager.SendPOSTRequest(uri, jsonToSend, "", "", false); if (requestManager.LastResponse == null) { @@ -121,7 +231,6 @@ namespace MatterHackers.MatterControl.VersionManagement protected virtual void ProcessResponse(object sender, RunWorkerCompletedEventArgs e) { JsonResponseDictionary responseValues = e.Result as JsonResponseDictionary; - if (responseValues != null) { string requestSuccessStatus = responseValues.get("Status"); @@ -133,7 +242,7 @@ namespace MatterHackers.MatterControl.VersionManagement else { ProcessErrorResponse(responseValues); - OnRequestFailed(); + OnRequestFailed(responseValues); } OnRequestComplete();