Wonky.Client/Wonky.Client/Shared/VatLookupDkModal.razor.cs
2023-01-16 16:41:43 +01:00

114 lines
No EOL
4 KiB
C#

// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Text.Json;
using Blazored.Toast.Services;
using Microsoft.AspNetCore.Components;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.HttpRepository;
using Wonky.Client.Models;
using Wonky.Client.Services;
using Wonky.Entity.Models;
using Wonky.Entity.Requests;
using Wonky.Entity.Views;
namespace Wonky.Client.Shared;
public partial class VatLookupDkModal
{
private string _modalDisplay = "";
private bool _showBackdrop;
[Parameter] public VatAddress VatAddress { get; set; } = new();
[Parameter] public string EntityName { get; set; } = "";
[Parameter] public string VatNumber { get; set; } = "";
[Parameter] public EventCallback<VirkRegInfo> OnSelectedCompany { get; set; }
[Inject] private VatInfoLookupService VatService { get; set; }
[Inject] private IToastService Toaster { get; set; }
[Inject] private ILogger<VatLookupDkModal> Logger { get; set; }
private VirkRegInfo CompanyRegInfo { get; set; } = new();
private List<VirkRegInfo> VatInfos { get; set; } = new();
private VatAddress _vatAddress { get; set; } = new();
private string _vatNumber { get; set; } = "";
private string _entityName { get; set; } = "";
protected override Task OnParametersSetAsync() {
_vatAddress = VatAddress;
_entityName = EntityName;
_vatNumber = VatNumber;
return base.OnParametersSetAsync();
}
private void SelectCompany(string vatNumber, bool syncAll)
{
CompanyRegInfo = VatInfos.First(x => x.VatNumber == vatNumber);
CompanyRegInfo.SyncAll = syncAll;
Logger.LogDebug($"VatLookupModal => SelectCompany => {JsonSerializer.Serialize(CompanyRegInfo)}");
OnSelectedCompany.InvokeAsync(CompanyRegInfo);
Hide();
}
private async Task GetInfoFromAddress(VatAddress address)
{
Toaster.ShowInfo("Vent for adresse info ...");
VatInfos = await VatService.QueryVirkRegistry(
new VirkParams
{
StreetName = address.StreetName,
HouseNumber = address.HouseNumber,
ZipCode = address.ZipCode
});
if (!VatInfos.Any())
{
Toaster.ShowWarning($"Ingen data fundet ...");
}
}
private async Task GetInfoFromVat(string vatNumber)
{
Toaster.ShowInfo("Vent for firma info ...");
VatInfos = await VatService
.QueryVirkRegistry(new VirkParams {VatNumber = vatNumber});
if (!VatInfos.Any())
{
Toaster.ShowError($"Firma med CVR '{vatNumber}' findes ikke.");
}
}
private async Task GetInfoFromName(string entityName)
{
Toaster.ShowInfo("Vent for firma info ...");
VatInfos = await VatService
.QueryVirkRegistry(new VirkParams {EntityName = entityName});
if (!VatInfos.Any())
{
Toaster.ShowError($"Firma med navn '{entityName}' findes ikke.");
}
}
public void Show()
{
_modalDisplay = "block;";
_showBackdrop = true;
StateHasChanged();
}
private void Hide()
{
_modalDisplay = "none;";
_showBackdrop = false;
StateHasChanged();
}
}