Walter.Vat 2023.11.13.1117

Prefix Reserved
dotnet add package Walter.Vat --version 2023.11.13.1117
                    
NuGet\Install-Package Walter.Vat -Version 2023.11.13.1117
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Walter.Vat" Version="2023.11.13.1117" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Walter.Vat" Version="2023.11.13.1117" />
                    
Directory.Packages.props
<PackageReference Include="Walter.Vat" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Walter.Vat --version 2023.11.13.1117
                    
#r "nuget: Walter.Vat, 2023.11.13.1117"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Walter.Vat@2023.11.13.1117
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Walter.Vat&version=2023.11.13.1117
                    
Install as a Cake Addin
#tool nuget:?package=Walter.Vat&version=2023.11.13.1117
                    
Install as a Cake Tool

About this package

Allows you to query the VAT interface for the European union or the united kingdom


var vies = await Walter.Vat.EuropeanVatInformationQuery.GetAsync("LU12345678").ConfigureAwait(false);

You can do UK VAT validation (even after brexit) using UK as county code and the 9 or 12 number VAT ID


var vies = await Walter.Vat.EuropeanVatInformationQuery.GetAsync("UK123456789").ConfigureAwait(false);

You could integrate this in a controller using the Walter.Bom NuGet package testing if a country is in the EU


[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> ProcessOrder(Order model)
{
    if (!ModelState.IsValid)
        return View(model);

    if (model.Country.IsInTheEuropeanUnion())
    {
        var vies = await Walter.Vat.EuropeanVatInformationQuery.GetAsync(model.VATNumber).ConfigureAwait(false);
        if (!vies.IsValid || !vies.CompanyName.Equals(model.CompanyName, StringComparison.OrdinalIgnoreCase))
        {
            if (!vies.IsValid)
            {
                if (vies.Exception is null)
                {
                    _logger?.Lazy().LogWarning(vies.Exception, "Query European VAT failed with a for {vat} in {country}", model.VATNumber, model.Country);
                }
                else
                {
                    _logger?.Lazy().LogWarning(vies.Exception, "Query European VAT failed with a {exception} exception error {message}", vies.Exception.GetType().Name, vies.Exception.Message);
                }

                ModelState.AddModelError(nameof(model.VATNumber), "The VAT number is not valid");
            }

            if (!vies.CompanyName.Equals(model.CompanyName, StringComparison.OrdinalIgnoreCase))
            {
                ModelState.AddModelError(nameof(model.VATNumber), $"The VAT ID provided is belongs to another company than the one you specified, did you enter the wrong ID?");
                if (vies.CompanyName.Contains(model.CompanyName, StringComparison.OrdinalIgnoreCase))
                {
                    ModelState.AddModelError(nameof(model.CompanyName), $"The VAT number provided is belongs to {vies.CompanyName}, this sounds like {model.CompanyName} but you should update it to avoid complications.");
                }
                else
                {
                    ModelState.AddModelError(nameof(model.CompanyName), $"The VAT number provided is belongs to {vies.CompanyName} did you provide the wrong name?");
                }
            }

            return View(model);
        }
    }
}
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2023.11.13.1117 1,358 11/13/2023
2023.10.26.1502 253 10/29/2023
2023.10.22.845 259 10/22/2023
2023.10.12.1926 264 10/12/2023
2023.9.14.812 282 9/14/2023
2023.9.7.1748 293 9/7/2023
2023.9.7.1241 247 9/7/2023
2023.9.6.1001 260 9/6/2023
2023.9.5.1246 289 9/5/2023
2023.9.5.1032 263 9/5/2023
2023.8.31.1522 287 8/31/2023
2023.8.29.1040 296 8/29/2023
2023.8.17.901 302 8/17/2023
2023.8.9.1314 278 8/9/2023
2023.8.2.750 339 8/2/2023
2023.7.12.830 312 7/12/2023
2023.7.5.1419 325 7/6/2023
2023.6.14.1628 309 6/14/2023
2023.6.11.1304 311 6/11/2023
2023.5.30.1640 351 5/30/2023
Loading failed

Major releases that add functionality other than optimization and minor bug fixing
     12 October 2023
- Build using SDK-7.0.402 and SDK-6.0.415
- Update Package references
     
     
     14 September 2023
- SDK 7.0.401/SDK 6.0.414
- Update to new NuGet Packages
     
     12 July 2023
     - Update to SDK SP 6.0.412. and 7.0.306
     - Update package references
     
14 June 2023
- Update due to SDK Update 7.0.304, and 6.0.410

5 May 2023
- Update due to new Obfuscation tool update

12 April 2023
- Update to a new .net 7.0.5 SDK release

14 Mar 2023
- Update NuGet package refferences

22 Feb 2023
- Axel Imani Release (Go live)

15 February 2023
- Update to .net 6.0.406  and 7.0.3

11 January 2023
- update to 7.0.2, 6.0.13 SDK and build tools for 17.4.4

14 December 2022
- Update to .Net SDK 3.1.426, 6.0.404 and 7.0.101

7 December 2022
- re-enable support for .net standard 2.1

14 November migrate to .net 6 and 7

15 November 2022
- Update NuGet package references

1 October 2022
- Update build with new SDK
- Update code sign certificates

14 September 2022
- Update to include new package 6.0.X and Microsoft CVE-2022-38013

02 September 2022
- Please make sure to update servers using this packages due to a security bug in .net
> System.Security.Cryptography.Xml      4.5.0      Moderate   https://github.com/advisories/GHSA-2m65-m22p-9wjw
     > System.Text.Encodings.Web             4.5.0      Critical   https://github.com/advisories/GHSA-ghhp-997w-qr28

15 June 2022
- Update to support .net 6.0.7 and 3.1.27
- Update package references

21 June 2022
- Update package references
- at native support for .net 6

4 May 2022
- Update NuGet References

15 March 2022
- update to 6.0.3


16 December 2021
- Update to .Net SDK update 14 December for .NET CORE 3.1.416, and .NET 5.0.404 and 6.0.101

9 November 2021
- Fix package dependency on vulnerable packages from Microsoft by upgrading vulnerable packages

8 November 2021
- Update to .Net NuGet packages .NET 6.0.0, .NET 5.0.403 and core 3.1.415

11 October 2021
- CodeSign the binaries as well as the NuGet package for executing in a trust-platform
- Add support for VAT lookup in Scotland,Norther island and England via country code GeoLocation.UnitedKingdom

19 September
- Update NuGet packages release for .Net 5.0.10

8 Aug 2021
- update to .NET 6.0 SDK (v6.0.100-preview.6)

30 June 2021
- Add .Net 6.0 binaries to the nuget package

15 June 2021
- Update to .Net Core 3.1.17 and .Net 5.0.8 SDK

09 June 2021
- Update to .Net SDK 5.0.301 and 3.1.410

07 June 2021
- Update NuGet Package references

25 May 2021
- Update after .net package updates

12 April 2021
- Update to new code base after .net security violation fix

05 April 2021
- update package references
- Add support for .Net Standard 2.0

22 March 2021
- Performance update

05 March 2021
- Update package reference
- Making it easier to integrate in Walter.Web.Firewall module

19  February 2021
- Add support for 32 bit
- Add AditLog storing the last 50 records

12 February 2021
- Framework extension changes
- Update package references

25 January 2021
- Update package references

02 January 2021
- Updated terms and conditions to REL. 2021.01.02

29 December 2020
- Update package references

19-20 December 2020
- Update package references

14 December 2020
- Update package references

11 December 2020
- Update package references
- Compile with Language version 9.0

04 December 2020
-Update package references

22 November 2020
- Update compiler hints improving .net Core 3.1 and .Net 5.0 compiled binaries

11 November 2020
- Update packages and support .Net 5.0

14 October 2020
- Update to .net core 3.1.4

05 October 2020
- Update NuGet Package References
- Update EULA

26 September 2020
- Add json constructor for ViesReply for easy json serialization

17 September 2020
- Add Exception to View response dataset documenting the reason of a failure without raising it

15 September 2020
- updated documentation
https://firewallapi.asp-waf.com/?topic=html/T-Walter.Vat.EuropeanVatInformationQuery.htm
14 September 2020 initial release