diff --git a/Main/ApiClient.cs b/Main/ApiClient.cs index 4d01018..0062c3b 100644 --- a/Main/ApiClient.cs +++ b/Main/ApiClient.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System.Net; using System.Text; namespace Wrapper_Api_SequentMicrosystems.Main @@ -28,11 +29,43 @@ namespace Wrapper_Api_SequentMicrosystems.Main { return JsonConvert.DeserializeObject(response);//await response.Content.ReadAsStringAsync()); } - catch (Exception ex) { } + catch (WebException exc) { - throw new Exception("GetData deserialize error"); + Console.WriteLine("Network Error: " + exc.Message + "\nStatus code: " + exc.Status); } - + catch (ProtocolViolationException exc) + { + Console.WriteLine("Protocol Error: " + exc.Message); + } + catch (UriFormatException exc) + { + Console.WriteLine("URI Format Error: " + exc.Message); + } + catch (NotSupportedException exc) + { + Console.WriteLine("Unknown Protocol: " + exc.Message); + } + catch (IOException exc) + { + Console.WriteLine("I/O Error: " + exc.Message); + } + catch (System.Security.SecurityException exc) + { + Console.WriteLine("Security Exception: " + exc.Message); + } + catch (InvalidOperationException exc) + { + Console.WriteLine("Invalid Operation: " + exc.Message); + } + catch (HttpRequestException exc) + { + Console.WriteLine("Invalid Operation: " + exc.Message); + } + catch (Exception exc) + { + Console.WriteLine("Invalid Operation: " + exc.Message); + } + return default(Type); } /// @@ -46,17 +79,46 @@ namespace Wrapper_Api_SequentMicrosystems.Main { StringContent sc = new(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json"); - HttpResponseMessage response = await _httpClient.PostAsync(new Uri(Endpoint), sc); - - if (response.IsSuccessStatusCode) + try { - return; + HttpResponseMessage response = await _httpClient.PostAsync(new Uri(Endpoint), sc); } - else + catch (WebException exc) { - throw new Exception(response.EnsureSuccessStatusCode().Content.ToString()); + Console.WriteLine("Network Error: " + exc.Message + "\nStatus code: " + exc.Status); + } + catch (ProtocolViolationException exc) + { + Console.WriteLine("Protocol Error: " + exc.Message); + } + catch (UriFormatException exc) + { + Console.WriteLine("URI Format Error: " + exc.Message); + } + catch (NotSupportedException exc) + { + Console.WriteLine("Unknown Protocol: " + exc.Message); + } + catch (IOException exc) + { + Console.WriteLine("I/O Error: " + exc.Message); + } + catch (System.Security.SecurityException exc) + { + Console.WriteLine("Security Exception: " + exc.Message); + } + catch (InvalidOperationException exc) + { + Console.WriteLine("Invalid Operation: " + exc.Message); + } + catch (HttpRequestException exc) + { + Console.WriteLine("Invalid Operation: " + exc.Message); + } + catch (Exception exc) + { + Console.WriteLine("Invalid Operation: " + exc.Message); } - } /// @@ -66,15 +128,45 @@ namespace Wrapper_Api_SequentMicrosystems.Main /// Error message public async void DeleteData(string Endpoint) { - HttpResponseMessage response = await _httpClient.DeleteAsync(new Uri(Endpoint)); - - if (response.IsSuccessStatusCode) + try { - return; + await _httpClient.DeleteAsync(new Uri(Endpoint)); } - else + catch (WebException exc) { - throw new Exception(response.EnsureSuccessStatusCode().Content.ToString()); + Console.WriteLine("Network Error: " + exc.Message + "\nStatus code: " + exc.Status); + } + catch (ProtocolViolationException exc) + { + Console.WriteLine("Protocol Error: " + exc.Message); + } + catch (UriFormatException exc) + { + Console.WriteLine("URI Format Error: " + exc.Message); + } + catch (NotSupportedException exc) + { + Console.WriteLine("Unknown Protocol: " + exc.Message); + } + catch (IOException exc) + { + Console.WriteLine("I/O Error: " + exc.Message); + } + catch (System.Security.SecurityException exc) + { + Console.WriteLine("Security Exception: " + exc.Message); + } + catch (InvalidOperationException exc) + { + Console.WriteLine("Invalid Operation: " + exc.Message); + } + catch (HttpRequestException exc) + { + Console.WriteLine("Invalid Operation: " + exc.Message); + } + catch (Exception exc) + { + Console.WriteLine("Invalid Operation: " + exc.Message); } } diff --git a/RTD8TM/RTD8TM.cs b/RTD8TM/RTD8TM.cs index 178ab8b..54b0455 100644 --- a/RTD8TM/RTD8TM.cs +++ b/RTD8TM/RTD8TM.cs @@ -31,14 +31,7 @@ namespace Wrapper_Api_SequentMicrosystems.RTD8TM /// Deserialized data from API public async Task> Get(string address) { - //try - //{ return await _client.GetData>($"{address}api/RTDDA"); - //} - //catch (Exception ex) - //{ - // throw new Exception(ex.Message); - //} } /// @@ -105,9 +98,9 @@ namespace Wrapper_Api_SequentMicrosystems.RTD8TM /// /// Base device address (http://1.2.3.4) /// Data object with data for Post to API - public async void PostNames(string address, SortedList data) + public void PostNames(string address, SortedList data) { - await Task.Run(() => _client.PostData>($"{address}api/RTDDA/Names", data)); + _client.PostData>($"{address}api/RTDDA/Names", data); } //Preconfigured Names @@ -167,7 +160,37 @@ namespace Wrapper_Api_SequentMicrosystems.RTD8TM { await Task.Run(() => _client.PostData>($"{address}api/RTDDA/Calibration", data)); } - #pragma warning restore CS8603 // Může jít o vrácený odkaz null. + + //Value Types + + /// + /// Get Value Types settings + /// + /// Base device address (http://1.2.3.4) + /// Deserialized Value Types from API + public async Task> GetValueTypes(string address) + { + try + { + return await _client.GetData>($"{address}api/RTDDA/ValueTypes"); + } + catch + { + return new(); + } + } + + /// + /// Post Value Types data to API + /// + /// Base device address (http://1.2.3.4) + /// Data object for Post to API + public async void PostValueTypes(string address, SortedList data) + { + await Task.Run(() => _client.PostData>($"{address}api/RTDDA/ValueTypes", data)); + } + +#pragma warning restore CS8603 // Může jít o vrácený odkaz null. #endregion