diff --git a/FCS.Lib.Vies.csproj b/FCS.Lib.Vies.csproj index 7135cb4..a6d40d3 100644 --- a/FCS.Lib.Vies.csproj +++ b/FCS.Lib.Vies.csproj @@ -50,7 +50,7 @@ - + diff --git a/ViesHttpRequest.cs b/ViesHttpRequest.cs index 8d33e50..2161edd 100644 --- a/ViesHttpRequest.cs +++ b/ViesHttpRequest.cs @@ -34,7 +34,7 @@ namespace FCS.Lib.Vies { public class ViesHttpRequest { - //"http://ec.europa.eu/taxation_customs/vies/services/checkVatService" + //"http://ec.europa.eu/taxation_customs/vies/services/checkVatService" public async Task GetResponseAsync(string endpoint, string countryCode, string vatNumber) { var xml = new StringBuilder(); @@ -53,6 +53,7 @@ namespace FCS.Lib.Vies using var client = new HttpClient(); using var viesRequest = new HttpRequestMessage(HttpMethod.Post, endpoint); viesRequest.Headers.Add("SOAPAction", ""); + viesRequest.Headers.Add("User-Agent", "Innotec Danmark AS - info.innotec.dk"); viesRequest.Content = content; var response = await client.SendAsync(viesRequest).ConfigureAwait(true); var xmlResult = await response.Content.ReadAsStringAsync().ConfigureAwait(true); diff --git a/ViesResultParser.cs b/ViesResponseParser.cs similarity index 64% rename from ViesResultParser.cs rename to ViesResponseParser.cs index 5bfedef..c054c91 100644 --- a/ViesResultParser.cs +++ b/ViesResponseParser.cs @@ -23,28 +23,28 @@ // // // *********************************************************************** + using System.Linq; using System.Xml.Linq; namespace FCS.Lib.Vies; -public class ViesResultParser +public class ViesResponseParser { - public ViesEntityModel ParesViesResult(string xmlData) + public ViesEntityModel ParseViesResponse(string xmlData) { - var xmlDoc = XDocument.Parse(xmlData); - var result = (from x in xmlDoc.Root?.Elements("checkVatResponse") - select new ViesEntityModel - { - CountryCode = (string)x.Element("countryCode"), - VatNumber = (string)x.Element("vatNumber"), - RequestDate = (string)x.Element("requestDate"), - Valid = (bool)x.Element("valid"), - Name = (string)x.Element("name"), - Address = (string)x.Element("address") - }).FirstOrDefault(); + var xml = XDocument.Parse(xmlData); - return result; + var x = xml.Descendants().Where(c => c.Name.LocalName == "checkVatResponse") + .Select(x => new ViesEntityModel() + { + CountryCode = (string)x.Element(x.Name.Namespace + "countryCode"), + VatNumber = (string)x.Element(x.Name.Namespace + "vatNumber"), + RequestDate = (string)x.Element(x.Name.Namespace + "requestDate"), + Valid = (bool)x.Element(x.Name.Namespace + "valid"), + Name = (string)x.Element(x.Name.Namespace + "name"), + Address = (string)x.Element(x.Name.Namespace + "address") + }).FirstOrDefault(); + return x; } - } \ No newline at end of file