Imports System.Web.Http Imports Microsoft.Web.Http Namespace ApiController.Controllers 'v{version:apiVersion} Public Class AVISOV1Controller Inherits System.Web.Http.ApiController 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 = 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 AVISOV1TESTController Inherits System.Web.Http.ApiController 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