' Action link per l'aggiunta di articoli in anagrafica ' Lo snippet segue il seguente JSON di esempio ' '{ ' "Token": "ec161f8b-ba19-4dac-aab0-2ee16ab94391", ' "Articoli": [ ' { ' "ID": "ACITAR", ' "Descrizione": "ACIDO TARTARICO", ' "Tipo": "ENO", ' "StatoFisico": "Confezionato", ' "CatMIPAAF": "107", ' "Formato": 0, ' "UM": "Kg", ' "Categoria": "", ' "Vendibile": false, ' "IDComm": "", ' "IDCED": "", ' "EANBottiglia": "", ' "EANCartone": "", ' "Inattivo": false, ' "GestLotti": true, ' "Esistenza": 0, ' "Disponibilita": 0 ' } ' ] '} Dim nomeActionLink As String = "Action Link ARTICOLI" Dim OK As Boolean = True Dim esito As String = "" Dim erroreRequest As String = "" Dim errcode As Integer Dim jsonr As String Dim res As New Newtonsoft.Json.Linq.JObject Try 'OTTENGO LA RICHIESTA IN JSON Page.Request.InputStream.Seek(0, System.IO.SeekOrigin.Begin) Using ReceiveStream As System.IO.Stream = Page.Request.InputStream Using ReadStream As System.IO.StreamReader = New System.IO.StreamReader(ReceiveStream, System.Text.Encoding.UTF8) jsonr = ReadStream.ReadToEnd() End Using End Using Dim objtmp As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.Linq.JObject.Parse(jsonr) Dim token As String = CType(objtmp("Token"), Newtonsoft.Json.Linq.JValue).Value Dim tokenIsValid As Boolean = qwlib.WebUtils.CheckToken2(token) If tokenIsValid Then ' copia il json in una directory locale Dim path As String = "C:\dati\Json\Articoli.json" Dim writer As New System.IO.StreamWriter(path) writer.WriteLine("" & jsonr) writer.Close() '------------------------------------------------------------------------------------------------------------------' Dim parsedJson As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.Linq.JObject.Parse(jsonr) Dim artic As New QWTable artic.DataBase = DB If Not parsedJson.SelectToken("Articoli") Is Nothing Then For i As Integer = 0 To parsedJson.SelectToken("Articoli").Count - 1 Dim erroreSalvataggio As String = "" artic.SQL = "select * " artic.SQL += "from ARTIC " artic.SQL += "where CODICE = " & Chr(39) & parsedJson.SelectToken("Articoli[" & i & "].ID").ToString & Chr(39) artic.Active = True 'SE NON ESISTE UN RECORD CON QUEL CODICE ARTICOLO, NE CREO UNO NUOVO If Not artic.RowSet.First() Then artic.BeginAppend() artic.Replace("CODICE", SqlStr(parsedJson.SelectToken("Articoli[" & i & "].ID").ToString)) artic.Replace("UNMIS", SqlStr(parsedJson.SelectToken("Articoli[" & i & "].UM").ToString)) End If 'SALVO LE INFORMAZIONI DEL JSON NELLE VARIE COLONNE DI ARTIC artic.Replace("DESCRIZION", SqlStr(parsedJson.SelectToken("Articoli[" & i & "].Descrizione").ToString)) OK = artic.SaveRecord(erroreSalvataggio) If Not OK Then esito += erroreSalvataggio & vbCrLf WriteLog(nomeActionLink & vbCrLf & erroreSalvataggio) End If artic.Active = False Next Else esito += "Non ci sono Articoli !" & vbCrLf WriteLog(nomeActionLink & vbCrLf & esito) End If artic.Dispose() '-----------------------------------------------------------------------------------------------------------' Else errcode = 1 esito += "Token non valido !" & vbCrLf End If If Not String.IsNullOrEmpty(esito) Then OK = False End If Catch e As Exception OK = False errcode = -1 erroreRequest = e.Message & vbCrLf & e.StackTrace WriteLog(nomeActionLink & vbCrLf & erroreRequest) End Try Dim ret_obj = New With {.ResultCode = errcode, .Result = IIf(OK, "OK", "KO"), .ErrResult = esito & vbCrLf & vbCrLf & erroreRequest} Return Newtonsoft.Json.JsonConvert.SerializeObject(ret_obj)