refactor parser

This commit is contained in:
FH 2022-04-02 18:43:49 +02:00
parent 2f23ecf7a7
commit 501ddc6b74
3 changed files with 18 additions and 17 deletions

View file

@ -50,7 +50,7 @@
<Compile Include="ViesQuery.cs" />
<Compile Include="ViesQueryValidator.cs" />
<Compile Include="ViesResponseView.cs" />
<Compile Include="ViesResultParser.cs" />
<Compile Include="ViesResponseParser.cs" />
</ItemGroup>
<ItemGroup>
<None Include="LICENSE" />

View file

@ -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<ViesResponseView> 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);

View file

@ -23,28 +23,28 @@
// </copyright>
// <summary></summary>
// ***********************************************************************
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;
}
}