refactor parser
This commit is contained in:
parent
2f23ecf7a7
commit
501ddc6b74
3 changed files with 18 additions and 17 deletions
|
@ -50,7 +50,7 @@
|
||||||
<Compile Include="ViesQuery.cs" />
|
<Compile Include="ViesQuery.cs" />
|
||||||
<Compile Include="ViesQueryValidator.cs" />
|
<Compile Include="ViesQueryValidator.cs" />
|
||||||
<Compile Include="ViesResponseView.cs" />
|
<Compile Include="ViesResponseView.cs" />
|
||||||
<Compile Include="ViesResultParser.cs" />
|
<Compile Include="ViesResponseParser.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="LICENSE" />
|
<None Include="LICENSE" />
|
||||||
|
|
|
@ -34,7 +34,7 @@ namespace FCS.Lib.Vies
|
||||||
{
|
{
|
||||||
public class ViesHttpRequest
|
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)
|
public async Task<ViesResponseView> GetResponseAsync(string endpoint, string countryCode, string vatNumber)
|
||||||
{
|
{
|
||||||
var xml = new StringBuilder();
|
var xml = new StringBuilder();
|
||||||
|
@ -53,6 +53,7 @@ namespace FCS.Lib.Vies
|
||||||
using var client = new HttpClient();
|
using var client = new HttpClient();
|
||||||
using var viesRequest = new HttpRequestMessage(HttpMethod.Post, endpoint);
|
using var viesRequest = new HttpRequestMessage(HttpMethod.Post, endpoint);
|
||||||
viesRequest.Headers.Add("SOAPAction", "");
|
viesRequest.Headers.Add("SOAPAction", "");
|
||||||
|
viesRequest.Headers.Add("User-Agent", "Innotec Danmark AS - info.innotec.dk");
|
||||||
viesRequest.Content = content;
|
viesRequest.Content = content;
|
||||||
var response = await client.SendAsync(viesRequest).ConfigureAwait(true);
|
var response = await client.SendAsync(viesRequest).ConfigureAwait(true);
|
||||||
var xmlResult = await response.Content.ReadAsStringAsync().ConfigureAwait(true);
|
var xmlResult = await response.Content.ReadAsStringAsync().ConfigureAwait(true);
|
||||||
|
|
|
@ -23,28 +23,28 @@
|
||||||
// </copyright>
|
// </copyright>
|
||||||
// <summary></summary>
|
// <summary></summary>
|
||||||
// ***********************************************************************
|
// ***********************************************************************
|
||||||
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
|
|
||||||
namespace FCS.Lib.Vies;
|
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 xml = XDocument.Parse(xmlData);
|
||||||
var result = (from x in xmlDoc.Root?.Elements("checkVatResponse")
|
|
||||||
select new ViesEntityModel
|
var x = xml.Descendants().Where(c => c.Name.LocalName == "checkVatResponse")
|
||||||
|
.Select(x => new ViesEntityModel()
|
||||||
{
|
{
|
||||||
CountryCode = (string)x.Element("countryCode"),
|
CountryCode = (string)x.Element(x.Name.Namespace + "countryCode"),
|
||||||
VatNumber = (string)x.Element("vatNumber"),
|
VatNumber = (string)x.Element(x.Name.Namespace + "vatNumber"),
|
||||||
RequestDate = (string)x.Element("requestDate"),
|
RequestDate = (string)x.Element(x.Name.Namespace + "requestDate"),
|
||||||
Valid = (bool)x.Element("valid"),
|
Valid = (bool)x.Element(x.Name.Namespace + "valid"),
|
||||||
Name = (string)x.Element("name"),
|
Name = (string)x.Element(x.Name.Namespace + "name"),
|
||||||
Address = (string)x.Element("address")
|
Address = (string)x.Element(x.Name.Namespace + "address")
|
||||||
}).FirstOrDefault();
|
}).FirstOrDefault();
|
||||||
|
return x;
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue