Imports System.Web.Http Imports Microsoft.Web.Http Namespace ApiController.Controllers Public Class AVISOController Inherits System.Web.Http.ApiController ''' ''' Gets the Hello World Response ''' ''' A SharePriceResponse which contains the price of the share ''' Returns 200 And Hallo World ''' Returns 400 if the query Is invalid Public Function GetValue() As String Return "Hello world!" End Function ''' ''' Set the Test ''' ''' TRAviso ''' A SharePriceResponse which contains the price of the share ''' Returns 200 and the TRAviso-JSON-Object ''' Returns 400 if the query Is invalid ''' Returns 401 if your are not authorized Public Function PostValue(ByVal API_AVISO As VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAviso) As String VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim ip = Request.Properties("MS_HttpContext").Request.UserHostAddress() SQL.doSQL("insert into tbltest (test,ipaddress) Values('IN_AVISO_START " & Now.ToShortDateString & "-" & Now.ToShortTimeString & "','" & ip & "')", "FMZOLL") Try Dim resultJson2 = jsonString.FromClass(API_AVISO) SQL.doSQL("insert into tbltest (test) Values('IN_AVISO_" & resultJson2 & "')", "FMZOLL") Catch ex As Exception End Try PostValue = "IN_AVISO_ERR" Try If API_AVISO Is Nothing Then Return VERAG_IN_AVISO_Exceptions.ERR_01_Wrong_Format If API_AVISO.Company Is Nothing OrElse API_AVISO.Company = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_02_Missing_Company If API_AVISO.Department Is Nothing OrElse API_AVISO.Department = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_03_Missing_Department If API_AVISO.PartnerTID Is Nothing OrElse API_AVISO.PartnerTID = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_04_Missing_PartnerID If API_AVISO.TransportLicensePlate Is Nothing OrElse API_AVISO.TransportLicensePlate = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_09_Missing_PlateNr Dim TR_AVISO As New VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAvisoFULL TR_AVISO.trAv_PartnerSystem = API_AVISO.PartnerTID TR_AVISO.trAv_gewicht = API_AVISO.TotGrossWeight TR_AVISO.trAv_colli = API_AVISO.TotPackage TR_AVISO.trAv_Transportmittel = API_AVISO.TransportBorderType TR_AVISO.trAv_Grenzueberschreitung = API_AVISO.TransportModeBorder 'TR_AVISO.trAv_FraechterKdNr = API_AVISO.PaXXXXXXXrtnerTID 'TR_AVISO.trAv_Fraechter = API_AVISO.PaXXXXXXXrtnerTID 'TR_AVISO.trAv_AvisiererKdNr = API_AVISO.PaXXXXXXXrtnerTID 'TR_AVISO.trAv_Avisierer = API_AVISO.PaXXXXXXXrtnerTID TR_AVISO.trAv_Nationalitaet = API_AVISO.TransportCountryCode TR_AVISO.trAv_Kennzeichen = API_AVISO.TransportLicensePlate TR_AVISO.trAv_Reference = API_AVISO.Reference TR_AVISO.trAv_Fraechter = API_AVISO.FreightCompany TR_AVISO.trAv_FraechterKdNr = API_AVISO.FreightCompanyID TR_AVISO.trAv_Niederlassung = API_AVISO.Department TR_AVISO.trAv_Firma = API_AVISO.Company TR_AVISO.trAv_datetime = Now TR_AVISO.trAv_Info = API_AVISO.Info If Not TR_AVISO.SAVE(False) Then Return VERAG_IN_AVISO_Exceptions.ERR_05_InternalVerarb If API_AVISO.DOCUMENTS IsNot Nothing Then For Each ANH In API_AVISO.DOCUMENTS Dim TR_DOC As New VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAvisoAnhaenge TR_DOC.DocumentType = ANH.DocumentType TR_DOC.DocumentNr = ANH.DocumentNr TR_DOC.DocumentDate = ANH.DocumentDate If ANH.base64BinaryStream IsNot Nothing AndAlso ANH.base64BinaryStream <> "" Then TR_DOC.trAvAh_docID = VERAG_IN_AVISO_Functions.base64toDS(ANH.base64BinaryStream, TR_AVISO.trAv_Id, ANH.FileName) End If TR_AVISO.ANHAENGE.Add(TR_DOC) Next End If If Not TR_AVISO.SAVE_Anhaenge Then Return VERAG_IN_AVISO_Exceptions.ERR_05_InternalVerarb If API_AVISO.POSITIONS IsNot Nothing Then For Each SH In API_AVISO.POSITIONS Dim EZA As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza Dim SHIPMENT As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza_FULL(EZA) ' Dim SHIPMENT As New VERAG_PROG_ALLGEMEIN.cVERAG_in_shippment() SHIPMENT.shTr_TRAvisoId = TR_AVISO.trAv_Id 'Zur Verknüfung EZA.Company = API_AVISO.Company EZA.Department = API_AVISO.Department EZA.Reference = SH.Reference EZA.DeclarationCountry = SH.DeclarationCountry EZA.DeclarationType = SH.DeclarationType EZA.TotPackage = SH.NumberOfPackages EZA.TotGrossWeight = SH.GrossWeight 'EZA.TotGrossWeight = SH.GrossWeight EZA.CustomsCodeDeparture = SH.CustomsCodeDeparture EZA.CustomsCodeDestination = SH.CustomsCodeDestination 'EZA.CustomsCodeEntry = API_AVISO.CustomsCodeEntry EZA.TransportModeBorder = API_AVISO.TransportModeBorder EZA.CountryCodeDeparture = SH.CountryCodeDeparture EZA.CountryCodeDestination = SH.CountryCodeDestination EZA.DEStateCodeDestination = SH.DEStateCodeDestination EZA.TransportArrivalLicensePlate = API_AVISO.TransportLicensePlate EZA.TransportArrivalCountryCode = API_AVISO.TransportCountryCode EZA.TransportBorderType = API_AVISO.TransportBorderType EZA.TransportBorderLicensePlate = API_AVISO.TransportLicensePlate EZA.Incoterm = SH.Incoterm EZA.PrePaperCode = SH.PrePaperCode EZA.PrePaperNr = SH.PrePaperNr ' EZA.KindOfBusiness = SH.ReferenceXXXXXXXXXXXX EZA.InvoiceAmount = SH.InvoiceAmount EZA.InvoiceCurrency = SH.InvoiceCurrency EZA.ContainerNr1 = SH.ContainerNr1 EZA.ContainerNr2 = SH.ContainerNr2 EZA.ContainerNr3 = SH.ContainerNr3 EZA.ContainerNr4 = SH.ContainerNr4 If SH.ADDRESS IsNot Nothing Then For Each ADD In SH.ADDRESS Dim TR_ADD As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza_Adressen TR_ADD.AddressCode = ADD.AddressCode TR_ADD.CustomerID = ADD.CustomerID TR_ADD.EORI = ADD.EORI TR_ADD.NLNR = ADD.NLNR TR_ADD.Name1 = ADD.Name1 TR_ADD.Name2 = ADD.Name2 TR_ADD.Name3 = ADD.Name3 TR_ADD.Street1 = ADD.Street1 TR_ADD.Street2 = ADD.Street2 TR_ADD.City = ADD.City TR_ADD.CountryCode = ADD.CountryCode TR_ADD.PostalCode = ADD.PostalCode TR_ADD.UStID = ADD.UStID EZA.ADDRESS.Add(TR_ADD) Next End If If SH.DOCUMENTS IsNot Nothing Then For Each DOC In SH.DOCUMENTS Dim TR_DOC As New VERAG_PROG_ALLGEMEIN.cVERAG_in_shipment_Document TR_DOC.DocumentType = DOC.DocumentType TR_DOC.DocumentNr = DOC.DocumentNr TR_DOC.DocumentDate = DOC.DocumentDate If DOC.base64BinaryStream IsNot Nothing AndAlso DOC.base64BinaryStream <> "" Then TR_DOC.shTrPosDoc_docID = VERAG_IN_AVISO_Functions.base64toDS(DOC.base64BinaryStream, TR_AVISO.trAv_Id, DOC.FileName, "SND_ATTACHMENT") End If EZA.DOCUMENTS.Add(TR_DOC) Next End If If Not SHIPMENT.SAVE() Then Return VERAG_IN_AVISO_Exceptions.ERR_06_InternalSave End If Next End If Return "OK" Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & NCTS_Exceptions.ERR_03_InternalVerarb, System.Reflection.MethodInfo.GetCurrentMethod.Name) SQL.doSQL("insert into tbltest (test) Values('" & NCTS_Exceptions.ERR_03_InternalVerarb & ex.Message & "')", "FMZOLL") Return NCTS_Exceptions.ERR_03_InternalVerarb End Try ' SQL.doSQL("insert into tbltest (test) Values('" & PostValue & "')", "FMZOLL") Return PostValue End Function End Class '------------------------------------------------------------------------ '----------------------------------TEST---------------------------------- '------------------------------------------------------------------------ Public Class AVISO1TESTController Inherits System.Web.Http.ApiController ''' ''' Gets the Hello World Response ''' Public Function GetValue() As String Return "Hello world!" End Function Public Function PostValue(ByVal API_AVISO As VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAviso) As String VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim ip = Request.Properties("MS_HttpContext").Request.UserHostAddress() SQL.doSQL("insert into tbltest (test,ipaddress) Values('IN_AVISO_START " & Now.ToShortDateString & "-" & Now.ToShortTimeString & "','" & ip & "')", "FMZOLL") Try Dim resultJson2 = jsonString.FromClass(API_AVISO) SQL.doSQL("insert into tbltest (test) Values('IN_AVISO_" & resultJson2 & "')", "FMZOLL") Catch ex As Exception End Try PostValue = "IN_AVISO_ERR" Try If API_AVISO Is Nothing Then Return VERAG_IN_AVISO_Exceptions.ERR_01_Wrong_Format If API_AVISO.Company Is Nothing OrElse API_AVISO.Company = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_02_Missing_Company If API_AVISO.Department Is Nothing OrElse API_AVISO.Department = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_03_Missing_Department If API_AVISO.PartnerTID Is Nothing OrElse API_AVISO.PartnerTID = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_04_Missing_PartnerID If API_AVISO.TransportLicensePlate Is Nothing OrElse API_AVISO.TransportLicensePlate = "" Then Return VERAG_IN_AVISO_Exceptions.ERR_09_Missing_PlateNr Dim TR_AVISO As New VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAvisoFULL TR_AVISO.trAv_PartnerSystem = API_AVISO.PartnerTID TR_AVISO.trAv_gewicht = API_AVISO.TotGrossWeight TR_AVISO.trAv_colli = API_AVISO.TotPackage TR_AVISO.trAv_Transportmittel = API_AVISO.TransportBorderType TR_AVISO.trAv_Grenzueberschreitung = API_AVISO.TransportModeBorder 'TR_AVISO.trAv_FraechterKdNr = API_AVISO.PaXXXXXXXrtnerTID 'TR_AVISO.trAv_Fraechter = API_AVISO.PaXXXXXXXrtnerTID 'TR_AVISO.trAv_AvisiererKdNr = API_AVISO.PaXXXXXXXrtnerTID 'TR_AVISO.trAv_Avisierer = API_AVISO.PaXXXXXXXrtnerTID TR_AVISO.trAv_Nationalitaet = API_AVISO.TransportCountryCode TR_AVISO.trAv_Kennzeichen = API_AVISO.TransportLicensePlate TR_AVISO.trAv_Reference = API_AVISO.Reference TR_AVISO.trAv_Fraechter = API_AVISO.FreightCompany TR_AVISO.trAv_FraechterKdNr = API_AVISO.FreightCompanyID TR_AVISO.trAv_Niederlassung = API_AVISO.Department TR_AVISO.trAv_Firma = API_AVISO.Company TR_AVISO.trAv_datetime = Now TR_AVISO.trAv_Info = API_AVISO.Info If Not TR_AVISO.SAVE(False) Then Return VERAG_IN_AVISO_Exceptions.ERR_05_InternalVerarb If API_AVISO.DOCUMENTS IsNot Nothing Then For Each ANH In API_AVISO.DOCUMENTS Dim TR_DOC As New VERAG_PROG_ALLGEMEIN.cVERAG_in_TRAvisoAnhaenge TR_DOC.DocumentType = ANH.DocumentType TR_DOC.DocumentNr = ANH.DocumentNr TR_DOC.DocumentDate = ANH.DocumentDate If ANH.base64BinaryStream IsNot Nothing AndAlso ANH.base64BinaryStream <> "" Then TR_DOC.trAvAh_docID = VERAG_IN_AVISO_Functions.base64toDS(ANH.base64BinaryStream, TR_AVISO.trAv_Id, ANH.FileName) End If TR_AVISO.ANHAENGE.Add(TR_DOC) Next End If If Not TR_AVISO.SAVE_Anhaenge Then Return VERAG_IN_AVISO_Exceptions.ERR_05_InternalVerarb If API_AVISO.POSITIONS IsNot Nothing Then For Each SH In API_AVISO.POSITIONS Dim EZA As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza Dim SHIPMENT As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza_FULL(EZA) ' Dim SHIPMENT As New VERAG_PROG_ALLGEMEIN.cVERAG_in_shippment() SHIPMENT.shTr_TRAvisoId = TR_AVISO.trAv_Id 'Zur Verknüfung EZA.Company = API_AVISO.Company EZA.Department = API_AVISO.Department EZA.Reference = SH.Reference EZA.DeclarationCountry = SH.DeclarationCountry EZA.DeclarationType = SH.DeclarationType EZA.TotPackage = SH.NumberOfPackages EZA.TotGrossWeight = SH.GrossWeight 'EZA.TotGrossWeight = SH.GrossWeight EZA.CustomsCodeDeparture = SH.CustomsCodeDeparture EZA.CustomsCodeDestination = SH.CustomsCodeDestination 'EZA.CustomsCodeEntry = API_AVISO.CustomsCodeEntry EZA.TransportModeBorder = API_AVISO.TransportModeBorder EZA.CountryCodeDeparture = SH.CountryCodeDeparture EZA.CountryCodeDestination = SH.CountryCodeDestination EZA.DEStateCodeDestination = SH.DEStateCodeDestination EZA.TransportArrivalLicensePlate = API_AVISO.TransportLicensePlate EZA.TransportArrivalCountryCode = API_AVISO.TransportCountryCode EZA.TransportBorderType = API_AVISO.TransportBorderType EZA.TransportBorderLicensePlate = API_AVISO.TransportLicensePlate EZA.Incoterm = SH.Incoterm EZA.PrePaperCode = SH.PrePaperCode EZA.PrePaperNr = SH.PrePaperNr ' EZA.KindOfBusiness = SH.ReferenceXXXXXXXXXXXX EZA.InvoiceAmount = SH.InvoiceAmount EZA.InvoiceCurrency = SH.InvoiceCurrency EZA.ContainerNr1 = SH.ContainerNr1 EZA.ContainerNr2 = SH.ContainerNr2 EZA.ContainerNr3 = SH.ContainerNr3 EZA.ContainerNr4 = SH.ContainerNr4 If SH.ADDRESS IsNot Nothing Then For Each ADD In SH.ADDRESS Dim TR_ADD As New VERAG_PROG_ALLGEMEIN.cVERAG_in_eza_Adressen TR_ADD.AddressCode = ADD.AddressCode TR_ADD.CustomerID = ADD.CustomerID TR_ADD.EORI = ADD.EORI TR_ADD.NLNR = ADD.NLNR TR_ADD.Name1 = ADD.Name1 TR_ADD.Name2 = ADD.Name2 TR_ADD.Name3 = ADD.Name3 TR_ADD.Street1 = ADD.Street1 TR_ADD.Street2 = ADD.Street2 TR_ADD.City = ADD.City TR_ADD.CountryCode = ADD.CountryCode TR_ADD.PostalCode = ADD.PostalCode TR_ADD.UStID = ADD.UStID EZA.ADDRESS.Add(TR_ADD) Next End If If SH.DOCUMENTS IsNot Nothing Then For Each DOC In SH.DOCUMENTS Dim TR_DOC As New VERAG_PROG_ALLGEMEIN.cVERAG_in_shipment_Document TR_DOC.DocumentType = DOC.DocumentType TR_DOC.DocumentNr = DOC.DocumentNr TR_DOC.DocumentDate = DOC.DocumentDate If DOC.base64BinaryStream IsNot Nothing AndAlso DOC.base64BinaryStream <> "" Then TR_DOC.shTrPosDoc_docID = VERAG_IN_AVISO_Functions.base64toDS(DOC.base64BinaryStream, TR_AVISO.trAv_Id, DOC.FileName, "SND_ATTACHMENT") End If EZA.DOCUMENTS.Add(TR_DOC) Next End If If Not SHIPMENT.SAVE() Then Return VERAG_IN_AVISO_Exceptions.ERR_06_InternalSave End If Next End If Return "OK" Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & NCTS_Exceptions.ERR_03_InternalVerarb, System.Reflection.MethodInfo.GetCurrentMethod.Name) SQL.doSQL("insert into tbltest (test) Values('" & NCTS_Exceptions.ERR_03_InternalVerarb & ex.Message & "')", "FMZOLL") Return NCTS_Exceptions.ERR_03_InternalVerarb End Try ' SQL.doSQL("insert into tbltest (test) Values('" & PostValue & "')", "FMZOLL") Return PostValue End Function End Class Class VERAG_IN_AVISO_Exceptions Public Const ERR_01_Wrong_Format As String = "ERR_01" Public Const ERR_02_Missing_Company As String = "ERR_02" Public Const ERR_03_Missing_Department As String = "ERR_03" Public Const ERR_04_Missing_PartnerID As String = "ERR_04" Public Const ERR_05_InternalVerarb As String = "ERR_05" Public Const ERR_06_InternalSave As String = "ERR_06" Public Const ERR_07_Missing_Colli As String = "ERR_07" Public Const ERR_08_Missing_Gewicht As String = "ERR_08" Public Const ERR_09_Missing_PlateNr As String = "ERR_09" End Class Class VERAG_IN_AVISO_Functions Public Shared Function base64toDS(base64 As String, AvisoTRID As Integer, FileName As String, Optional uOrdner3 As String = "AVISO_ATTACHMENT") As Integer Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("INTERFACE", "IN", "TR_AVISO", uOrdner3, AvisoTRID, FileName) DS.uploadDataToDATENSERVER_fromBase64String(base64, FileName,, False) Return DS.da_id End Function End Class End Namespace