diff --git a/DemoVB/Form1.Designer.vb b/DemoVB/Form1.Designer.vb index 08b6a61..4d4604b 100644 --- a/DemoVB/Form1.Designer.vb +++ b/DemoVB/Form1.Designer.vb @@ -28,6 +28,7 @@ Partial Class Form1 Me.btnTestAlive = New System.Windows.Forms.Button() Me.btnFullTest = New System.Windows.Forms.Button() Me.lblOut = New System.Windows.Forms.Label() + Me.btnResetQueue = New System.Windows.Forms.Button() Me.SuspendLayout() ' 'btnTestPing @@ -88,11 +89,21 @@ Partial Class Form1 Me.lblOut.TabIndex = 5 Me.lblOut.Text = "Label1" ' + 'btnResetQueue + ' + Me.btnResetQueue.Location = New System.Drawing.Point(13, 228) + Me.btnResetQueue.Name = "btnResetQueue" + Me.btnResetQueue.Size = New System.Drawing.Size(75, 23) + Me.btnResetQueue.TabIndex = 6 + Me.btnResetQueue.Text = "Reset Queue" + Me.btnResetQueue.UseVisualStyleBackColor = True + ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(764, 472) + Me.Controls.Add(Me.btnResetQueue) Me.Controls.Add(Me.lblOut) Me.Controls.Add(Me.btnFullTest) Me.Controls.Add(Me.lblTestAlive) @@ -112,4 +123,5 @@ Partial Class Form1 Friend WithEvents btnTestAlive As Button Friend WithEvents btnFullTest As Button Friend WithEvents lblOut As Label + Friend WithEvents btnResetQueue As Button End Class diff --git a/DemoVB/Form1.vb b/DemoVB/Form1.vb index 4908666..d0a8cf1 100644 --- a/DemoVB/Form1.vb +++ b/DemoVB/Form1.vb @@ -39,7 +39,7 @@ Public Class Form1 Dim queueStatus As New Dictionary(Of String, Long) Dim queueList As New Dictionary(Of String, String) Dim procResults As New List(Of CalcResultDTO) - Dim respDone As Boolean + Dim respPut As String Dim fileName As String Dim fileCont As String @@ -83,18 +83,21 @@ Public Class Form1 sb.AppendLine() ' rendo la risposta... - respDone = currWDC.SendProcResults(procResults) + respPut = currWDC.SendProcResults(procResults) sb.AppendLine() sb.AppendLine("----------------------------") - If (respDone) Then - sb.AppendLine("Effettuato invio risposta al server") - Else - sb.AppendLine("Errore durante invio risposta al server") - End If + sb.AppendLine("Esito invio risposta al server:") + sb.AppendLine() + sb.AppendLine(respPut) sb.AppendLine("----------------------------") lblOut.Text = sb.ToString() End If End Sub + + Private Sub btnResetQueue_Click(sender As Object, e As EventArgs) Handles btnResetQueue.Click + currWDC.ResetQueue() + lblOut.Text = "Queue Resetted!" + End Sub End Class diff --git a/WebDoorCreator.API/Controllers/QueueController.cs b/WebDoorCreator.API/Controllers/QueueController.cs index 593157c..8cd8b4f 100644 --- a/WebDoorCreator.API/Controllers/QueueController.cs +++ b/WebDoorCreator.API/Controllers/QueueController.cs @@ -45,9 +45,31 @@ namespace WebDoorCreator.API.Controllers /// Risultati elaborazioni in formato CalcResultDTO /// [HttpPost("SaveProcResult")] - public async Task SaveProcResult(List calcResults) + public async Task SaveProcResult(List calcResults) { - bool answ = await QDataServ.SaveProcessingResult(calcResults); + string answ = "NA"; + bool fatto = await QDataServ.SaveProcessingResult(calcResults); + answ = fatto ? "OK" : "NO"; + return answ; + } + + /// + /// Reset delle code di chiamata x ripetere simulazione + /// + /// Chiave x auth di reset + /// + [HttpPost("ResetQueue")] + public async Task ResetQueue(string passPhrase) + { + string answ = "NA"; + bool fatto = false; + if (passPhrase == "bbbBirdIsTheWord") + { + // vera chaimata di reset delle code + fatto = true; + await Task.Delay(10); + } + answ = fatto ? "OK" : "NO"; return answ; } diff --git a/WebDoorCreator.Data/Services/QueueDataService.cs b/WebDoorCreator.Data/Services/QueueDataService.cs index 88916f6..ac0a8f2 100644 --- a/WebDoorCreator.Data/Services/QueueDataService.cs +++ b/WebDoorCreator.Data/Services/QueueDataService.cs @@ -377,7 +377,7 @@ namespace WebDoorCreator.Data.Services /// public async Task SaveProcessingResult(List calcResults) { - bool answ = false; + bool answ = true; await Task.Delay(1); return answ; } diff --git a/WeebDoorCreator.SDK/WDC.cs b/WeebDoorCreator.SDK/WDC.cs index d5db8da..81e8c6b 100644 --- a/WeebDoorCreator.SDK/WDC.cs +++ b/WeebDoorCreator.SDK/WDC.cs @@ -34,7 +34,7 @@ namespace WeebDoorCreator.SDK get { bool answ = false; - var rawData = callUrl(urlAlive); + var rawData = callUrlGet(urlAlive); string returnData = JsonConvert.DeserializeObject(rawData); answ = returnData == "OK"; // rendo! @@ -65,7 +65,7 @@ namespace WeebDoorCreator.SDK get { int answ = 0; - var rawData = callUrl(urlActLenght); + var rawData = callUrlGet(urlActLenght); var returnData = JsonConvert.DeserializeObject>(rawData); // rendo! if (returnData.ContainsKey(pendQueue)) @@ -80,7 +80,7 @@ namespace WeebDoorCreator.SDK /// public Dictionary queueStatus() { - var rawData = callUrl(urlActLenght); + var rawData = callUrlGet(urlActLenght); var returnData = JsonConvert.DeserializeObject>(rawData); return returnData; } @@ -93,7 +93,7 @@ namespace WeebDoorCreator.SDK { { "numItems", $"{maxNum}" } }; - var rawData = callUrl(urlTakeNextItems, parList); + var rawData = callUrlGet(urlTakeNextItems, parList); var returnData = JsonConvert.DeserializeObject>(rawData); return returnData; } @@ -103,11 +103,26 @@ namespace WeebDoorCreator.SDK /// /// /// - public bool SendProcResults(List calcResults) + public string SendProcResults(List calcResults) { - bool fatto = false; + string payload = JsonConvert.SerializeObject(calcResults); + var rawData = callUrlPost(urlSaveProcRes, payload); + return rawData; + } - return fatto; + + /// + /// Reset delel code di processing + /// + /// + public string ResetQueue() + { + Dictionary parList = new Dictionary + { + { "passPhrase", "bbbBirdIsTheWord" } + }; + var rawData = callUrlGet(urlTakeNextItems, parList); + return rawData; } #endregion Public Properties @@ -129,6 +144,7 @@ namespace WeebDoorCreator.SDK protected const string urlAlive = "/api/Alive"; protected const string urlActLenght = "api/Queue/ActLenght"; + protected const string urlResetQueue = "api/Queue/ResetQueue"; protected const string urlStatusList = "api/Queue/StatusList"; protected const string urlSaveProcRes = "api/Queue/SaveProcResult"; protected const string urlTakeNextItems = "api/Queue/TakeNextItems"; @@ -161,11 +177,11 @@ namespace WeebDoorCreator.SDK #region Protected Methods /// - /// Effettua chiamata URL e restituisce risultato + /// Effettua chiamata URL GET e restituisce risultato /// /// /// - protected string callUrl(string URL) + protected string callUrlGet(string URL) { string answ = ""; // cerco online @@ -186,11 +202,12 @@ namespace WeebDoorCreator.SDK return answ; } /// - /// Effettua chiamata URL e restituisce risultato + /// Effettua chiamata URL GET con parametri e restituisce risultato /// /// + /// /// - protected string callUrl(string URL, Dictionary paramsList) + protected string callUrlGet(string URL, Dictionary paramsList) { string answ = ""; // cerco online @@ -216,6 +233,33 @@ namespace WeebDoorCreator.SDK // restituisco valore! return answ; } + /// + /// Effettua chiamata URL GET con parametri e restituisce risultato + /// + /// + /// + /// + protected string callUrlPost(string URL, string payload) + { + string answ = ""; + // cerco online + RestClient client = new RestClient(apiUrl); + var request = new RestRequest(URL); + request.AddJsonBody(payload); + var response = client.Post(request); + // controllo status code risposta + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + // deserializzo risposta + answ = response.Content; + } + else + { + answ = "KO"; + } + // restituisco valore! + return answ; + } #endregion Protected Methods