diff --git a/.gitignore b/.gitignore index 97211e58..c567aa4b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +*/**/appsettings.json # ---> JetBrains # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 @@ -381,7 +382,7 @@ node_modules/ *.dsw *.dsp -# Visual Studio 6 technical files +# Visual Studio 6 technical files *.ncb *.aps diff --git a/Wonky.Client.sln b/Wonky.Client.sln index 5bce659c..e23480d7 100644 --- a/Wonky.Client.sln +++ b/Wonky.Client.sln @@ -5,6 +5,10 @@ VisualStudioVersion = 16.0.30114.105 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wonky.Client", "Wonky.Client\Wonky.Client.csproj", "{A001767F-6CA1-428E-938A-EA491A778D3E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wonky.Entity", "..\Wonky.Entity\Wonky.Entity\Wonky.Entity.csproj", "{39D1D838-9D6C-41AB-8A77-ABF4ECC35402}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wonky.Virk", "..\Wonky.Virk\Wonky.Virk\Wonky.Virk.csproj", "{69A68DBC-1CAF-496D-B8FE-7FB82E7FE0E9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -18,5 +22,13 @@ Global {A001767F-6CA1-428E-938A-EA491A778D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU {A001767F-6CA1-428E-938A-EA491A778D3E}.Release|Any CPU.ActiveCfg = Release|Any CPU {A001767F-6CA1-428E-938A-EA491A778D3E}.Release|Any CPU.Build.0 = Release|Any CPU + {39D1D838-9D6C-41AB-8A77-ABF4ECC35402}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39D1D838-9D6C-41AB-8A77-ABF4ECC35402}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39D1D838-9D6C-41AB-8A77-ABF4ECC35402}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39D1D838-9D6C-41AB-8A77-ABF4ECC35402}.Release|Any CPU.Build.0 = Release|Any CPU + {69A68DBC-1CAF-496D-B8FE-7FB82E7FE0E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69A68DBC-1CAF-496D-B8FE-7FB82E7FE0E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69A68DBC-1CAF-496D-B8FE-7FB82E7FE0E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69A68DBC-1CAF-496D-B8FE-7FB82E7FE0E9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/Wonky.Client/AppId.cs b/Wonky.Client/AppId.cs index 91b972b6..41fa952a 100644 --- a/Wonky.Client/AppId.cs +++ b/Wonky.Client/AppId.cs @@ -3,7 +3,7 @@ namespace Wonky.Client; public class AppId { public string Version { get; set; } = "0.2.1"; - public string Name { get; set; } = "Inno Client"; + public string Name { get; set; } = "Wonky Client"; public bool IsBeta { get; set; } = false; } \ No newline at end of file diff --git a/Wonky.Client/Components/RegInfoCompany.razor.cs b/Wonky.Client/Components/RegInfoCompany.razor.cs index 1b1ecdda..2283f18b 100644 --- a/Wonky.Client/Components/RegInfoCompany.razor.cs +++ b/Wonky.Client/Components/RegInfoCompany.razor.cs @@ -17,6 +17,7 @@ using Microsoft.AspNetCore.Components; using Wonky.Client.Services; using Wonky.Entity.Models; using Wonky.Entity.Requests; +using Wonky.Virk.Services; namespace Wonky.Client.Components; diff --git a/Wonky.Client/Components/RegLookupAddress.razor.cs b/Wonky.Client/Components/RegLookupAddress.razor.cs index 652cac55..5be59033 100644 --- a/Wonky.Client/Components/RegLookupAddress.razor.cs +++ b/Wonky.Client/Components/RegLookupAddress.razor.cs @@ -20,6 +20,7 @@ using Wonky.Client.HttpInterceptors; using Wonky.Client.Services; using Wonky.Entity.Models; using Wonky.Entity.Requests; +using Wonky.Virk.Services; namespace Wonky.Client.Components; diff --git a/Wonky.Client/Components/RegLookupVatNo.razor.cs b/Wonky.Client/Components/RegLookupVatNo.razor.cs index 016b4e18..59429b54 100644 --- a/Wonky.Client/Components/RegLookupVatNo.razor.cs +++ b/Wonky.Client/Components/RegLookupVatNo.razor.cs @@ -20,6 +20,7 @@ using Wonky.Client.HttpInterceptors; using Wonky.Client.Services; using Wonky.Entity.Models; using Wonky.Entity.Requests; +using Wonky.Virk.Services; namespace Wonky.Client.Components; diff --git a/Wonky.Client/Components/RegStateVatNumber.razor.cs b/Wonky.Client/Components/RegStateVatNumber.razor.cs index f4607dea..76904722 100644 --- a/Wonky.Client/Components/RegStateVatNumber.razor.cs +++ b/Wonky.Client/Components/RegStateVatNumber.razor.cs @@ -18,6 +18,7 @@ using Microsoft.AspNetCore.Components; using Wonky.Client.Services; using Wonky.Entity.Models; using Wonky.Entity.Requests; +using Wonky.Virk.Services; namespace Wonky.Client.Components; diff --git a/Wonky.Client/Pages/ActivityList.razor b/Wonky.Client/Pages/ActivityList.razor index 414c7a37..e79c5923 100644 --- a/Wonky.Client/Pages/ActivityList.razor +++ b/Wonky.Client/Pages/ActivityList.razor @@ -1,5 +1,4 @@ @page "/activites" -@using Client.V1.Components;

Salgs Aktivitet

diff --git a/Wonky.Client/Pages/ActivityList.razor.cs b/Wonky.Client/Pages/ActivityList.razor.cs index e69dcf2b..e519af77 100644 --- a/Wonky.Client/Pages/ActivityList.razor.cs +++ b/Wonky.Client/Pages/ActivityList.razor.cs @@ -7,10 +7,4 @@ public partial class ActivityList { public List Activities { get; set; } = new(); - [Inject] public ActivityDbContext DbContext { get; set; } - - protected override async Task OnInitializedAsync() - { - Activities = await DbContext.GetAllActivities(); - } } \ No newline at end of file diff --git a/Wonky.Client/Pages/CompanyCreate.razor.cs b/Wonky.Client/Pages/CompanyCreate.razor.cs index fe9a40fa..839dde18 100644 --- a/Wonky.Client/Pages/CompanyCreate.razor.cs +++ b/Wonky.Client/Pages/CompanyCreate.razor.cs @@ -24,6 +24,7 @@ using Wonky.Client.Services; using Wonky.Entity.DTO; using Wonky.Entity.Models; using Wonky.Entity.Requests; +using Wonky.Virk.Services; namespace Wonky.Client.Pages { diff --git a/Wonky.Client/Pages/KrvAdmin/KrvProduct.razor b/Wonky.Client/Pages/KrvAdmin/KrvProduct.razor deleted file mode 100644 index 9baf20d9..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvProduct.razor +++ /dev/null @@ -1,14 +0,0 @@ -@page "/krv-product/{productId}" -@using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin")] -
-
-

@Product.TradingName

-
-
- @Product.TradingName -
- -
diff --git a/Wonky.Client/Pages/KrvAdmin/KrvProduct.razor.cs b/Wonky.Client/Pages/KrvAdmin/KrvProduct.razor.cs deleted file mode 100644 index 36ee5a02..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvProduct.razor.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; - -namespace Wonky.Client.Pages.KrvAdmin; - -public partial class KrvProduct : IDisposable -{ - private KrvProductDto Product { get; set; } = new (); - - [Inject] - public IKrvProductHttpRepository ProductRepo { get; set; } - - [Inject] - public HttpInterceptorService Interceptor { get; set; } - - [Parameter] - public string ProductId { get; set; } = ""; - - protected override async Task OnInitializedAsync() - { - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - Product = await ProductRepo.GetProduct(ProductId); - } - - /// - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// - public void Dispose() - { - Interceptor.DisposeEvent(); - } - -} \ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvProduct.razor.css b/Wonky.Client/Pages/KrvAdmin/KrvProduct.razor.css deleted file mode 100644 index ffdeb335..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvProduct.razor.css +++ /dev/null @@ -1,10 +0,0 @@ -/* product image preview */ -.image-name { - margin-left: 10px; -} -.image-preview { - width: auto; - max-width: 200px; - height: 100px; - margin-top: 15px; -} \ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvProductList.razor b/Wonky.Client/Pages/KrvAdmin/KrvProductList.razor deleted file mode 100644 index 0c52f95e..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvProductList.razor +++ /dev/null @@ -1,35 +0,0 @@ -@page "/krv-products" -@using Client.V1.Components -@using Inno.Entities.RequestFeatures -@using Microsoft.AspNetCore.Authorization - -@attribute [Authorize(Roles = "Admin")] - -
-
- -
-
- -
-
-
-
- @* Nyt firma *@ -
-
-
-
- -
-
- -
-
-
-
-
-
- -
-
\ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvProductList.razor.cs b/Wonky.Client/Pages/KrvAdmin/KrvProductList.razor.cs deleted file mode 100644 index 9e9b22d8..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvProductList.razor.cs +++ /dev/null @@ -1,64 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; -using Wonky.Entity.Requests; - -namespace Wonky.Client.Pages.KrvAdmin; - -public partial class KrvProductList : IDisposable -{ - public List KrvProducts { get; set; } = new(); - public MetaData? MetaData { get; set; } = new(); - - private PagingParams _paging = new(); - - [Inject] - public IKrvProductHttpRepository ProductRepo { get; set; } - - [Inject] - public HttpInterceptorService Interceptor { get; set; } - - protected override async Task OnInitializedAsync() - { - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - await GetKrvProducts(); - } - - private async Task SelectedPage(int page) - { - _paging.PageNumber = page; - await GetKrvProducts(); - } - - private async Task GetKrvProducts() - { - var pagingResponse = await ProductRepo.GetProducts(_paging); - KrvProducts = pagingResponse.Items; - MetaData = pagingResponse.MetaData; - } - - private async Task SetPageSize(int pageSize) - { - _paging.PageSize = pageSize; - _paging.PageNumber = 1; - await GetKrvProducts(); - } - - private async Task SearchChanged(string? searchTerm) - { - _paging.PageNumber = 1; - _paging.SearchTerm = searchTerm; - await GetKrvProducts(); - } - - private async Task SortChanged(string? orderBy) - { - _paging.OrderBy = orderBy; - await GetKrvProducts(); - } - - public void Dispose() => Interceptor.DisposeEvent(); - -} \ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvProductUpdate.razor b/Wonky.Client/Pages/KrvAdmin/KrvProductUpdate.razor deleted file mode 100644 index b2f611ba..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvProductUpdate.razor +++ /dev/null @@ -1,54 +0,0 @@ -@page "/krv-product-update/{productId}" -@using Microsoft.AspNetCore.Authorization -@using Microsoft.AspNetCore.Components -@attribute [Authorize(Roles = "Admin")] -@if (_productDto != null) -{ -
-
-

Opdater KRV Variant

-
- @* *@ - - - @* *@ -
- -
- - -
-
-
- -
- - @* *@ - - @if(!string.IsNullOrWhiteSpace(_productDto.PictureLink)) - { -
- @_productDto.TradingName -
- } -
-
- -
-
- -
-
-
- -
-} -else -{ -

Vent venligst ...

-} diff --git a/Wonky.Client/Pages/KrvAdmin/KrvProductUpdate.razor.cs b/Wonky.Client/Pages/KrvAdmin/KrvProductUpdate.razor.cs deleted file mode 100644 index 08a51b87..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvProductUpdate.razor.cs +++ /dev/null @@ -1,61 +0,0 @@ -using Blazored.Toast.Services; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Forms; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; - -namespace Wonky.Client.Pages.KrvAdmin; - -public partial class KrvProductUpdate : IDisposable -{ - private KrvProductDto _productDto; - private EditContext _editContext; - private bool _formInvalid = true; - - [Parameter] - public string ProductId { get; set; } - - [Inject] - public IKrvProductHttpRepository ProductRepo { get; set; } - - [Inject] - public HttpInterceptorService Interceptor { get; set; } - - [Inject] - public IToastService ToastService { get; set; } - - [Inject] - public ILogger Logger { get; set; } - - protected override async Task OnInitializedAsync() - { - _productDto = await ProductRepo.GetProduct(ProductId); - _editContext = new EditContext(_productDto); - _editContext.OnFieldChanged += HandleFieldChanged; - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - } - - private void HandleFieldChanged(object sender, FieldChangedEventArgs e) - { - _formInvalid = !_editContext.Validate(); - StateHasChanged(); - } - - private async Task Update() - { - await ProductRepo.UpdateProduct(_productDto); - ToastService.ShowSuccess($"Godt så. Produktet '{_productDto.TradingName}' er opdateret."); - } - - private void AssignKrvVariantPicture(string imgUrl) - => _productDto.PictureLink = imgUrl; - - public void Dispose() - { - Interceptor.DisposeEvent(); - _editContext.OnFieldChanged -= HandleFieldChanged; - } - -} \ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvProductUpdate.razor.css b/Wonky.Client/Pages/KrvAdmin/KrvProductUpdate.razor.css deleted file mode 100644 index 670ad559..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvProductUpdate.razor.css +++ /dev/null @@ -1,8 +0,0 @@ -/* product image preview */ -.image-name { - margin-left: 10px; -} -.image-preview { - width: 200px; - margin-top: 15px; -} \ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantCreate.razor b/Wonky.Client/Pages/KrvAdmin/KrvVariantCreate.razor deleted file mode 100644 index 27ca4293..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantCreate.razor +++ /dev/null @@ -1,62 +0,0 @@ -@page "/create-variant" -@using Microsoft.AspNetCore.Authorization -@using Microsoft.AspNetCore.Components -@attribute [Authorize(Roles = "Admin")] -

Opret KRV Variant

-@* *@ - - - @* *@ -
- -
- - -
-
-
- -
- -
-
- -
- -
- - -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
- -
- -
- -
-
- -
-
- -
-
-
\ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantCreate.razor.cs b/Wonky.Client/Pages/KrvAdmin/KrvVariantCreate.razor.cs deleted file mode 100644 index 899529e1..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantCreate.razor.cs +++ /dev/null @@ -1,70 +0,0 @@ -using Blazored.Toast.Services; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Forms; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; - -namespace Wonky.Client.Pages.KrvAdmin; - -public partial class KrvVariantCreate : IDisposable -{ - private KrvVariantDto _variantDto { get; set; } = new(); - - private EditContext _editContext; - private bool _formInvalid = true; - - [Inject] - public IKrvVariantHttpRepository VariantRepo { get; set; } - - [Inject] - public HttpInterceptorService Interceptor { get; set; } - - [Inject] - public IToastService ToastService { get; set; } - - [Inject] - public ILogger Logger { get; set; } - - protected override void OnInitialized() - { - _editContext = new EditContext(_variantDto); - _editContext.OnFieldChanged += HandleFieldChanged; - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - } - - private async Task Create() - { - Logger.LogDebug($"{_variantDto}"); - await VariantRepo.CreateVariant(_variantDto); - ToastService.ShowSuccess($"Godt så. Produktet '{_variantDto.ErpName}' er oprettet."); - _variantDto = new KrvVariantDto(); - _editContext.OnValidationStateChanged += ValidationChanged; - _editContext.NotifyValidationStateChanged(); - } - private void HandleFieldChanged(object sender, FieldChangedEventArgs e) - { - _formInvalid = !_editContext.Validate(); - StateHasChanged(); - } - private void ValidationChanged(object sender, ValidationStateChangedEventArgs e) - { - _formInvalid = true; - _editContext.OnFieldChanged -= HandleFieldChanged; - _editContext = new EditContext(_variantDto); - _editContext.OnFieldChanged += HandleFieldChanged; - _editContext.OnValidationStateChanged -= ValidationChanged; - } - - public void Dispose() - { - Interceptor.DisposeEvent(); - _editContext.OnFieldChanged -= HandleFieldChanged; - _editContext.OnValidationStateChanged -= ValidationChanged; - } - - private void AssignImageUrl(string imgUrl) => _variantDto.PictureLink = imgUrl; -} - - diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantList.razor b/Wonky.Client/Pages/KrvAdmin/KrvVariantList.razor deleted file mode 100644 index 6dc2f659..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantList.razor +++ /dev/null @@ -1,35 +0,0 @@ -@page "/krv-variants" -@using Client.V1.Components -@using Inno.Entities.RequestFeatures -@using Microsoft.AspNetCore.Authorization - -@attribute [Authorize(Roles = "Admin")] - -
-
- -
-
- -
-
-
-
- @* Nyt firma *@ -
-
-
-
- -
-
- -
-
-
-
-
-
- -
-
\ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantList.razor.cs b/Wonky.Client/Pages/KrvAdmin/KrvVariantList.razor.cs deleted file mode 100644 index a3f3107a..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantList.razor.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; -using Wonky.Entity.Requests; - -namespace Wonky.Client.Pages.KrvAdmin; - -public partial class KrvVariantList : IDisposable -{ - private List KrvVariants { get; set; } = new(); - private MetaData MetaData { get; set; } = new(); - - private PagingParams _paging = new(); - - [Inject] public IKrvVariantHttpRepository VariantRepo { get; set; } - [Inject] public HttpInterceptorService Interceptor { get; set; } - - protected override async Task OnInitializedAsync() - { - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - await GetKrvVariants(); - } - - private async Task SelectedPage(int page) - { - _paging.PageNumber = page; - await GetKrvVariants(); - } - - private async Task GetKrvVariants() - { - var pagingResponse = await VariantRepo.GetVariants(_paging); - KrvVariants = pagingResponse.Items; - MetaData = pagingResponse.MetaData; - } - - private async Task SetPageSize(int pageSize) - { - _paging.PageSize = pageSize; - _paging.PageNumber = 1; - await GetKrvVariants(); - } - - private async Task SearchChanged(string? searchTerm) - { - _paging.PageNumber = 1; - _paging.SearchTerm = searchTerm; - await GetKrvVariants(); - } - - private async Task SortChanged(string? orderBy) - { - _paging.OrderBy = orderBy; - await GetKrvVariants(); - } - - public void Dispose() => Interceptor.DisposeEvent(); -} \ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantUpdate.razor b/Wonky.Client/Pages/KrvAdmin/KrvVariantUpdate.razor deleted file mode 100644 index 869b47c4..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantUpdate.razor +++ /dev/null @@ -1,90 +0,0 @@ -@page "/krv-variant-update/{variantId}" -@using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin")] -@if (_variantDto != null) -{ -
-
-

Opdater KRV Variant

-
- @* *@ - - - @* *@ -
- -
- - -
-
-
- -
- - -
-
- -
- -
- - -
-
-
- -
- - -
-
-
- -
- - -
-
-
- -
- - -
-
- -
- -
- - @* *@ - - @if(!string.IsNullOrWhiteSpace(_variantDto.PictureLink)) - { -
- @_variantDto.Name -
- } -
-
- -
-
- -
-
-
- -
-} -else -{ -

Vent venligst ...

-} diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantUpdate.razor.cs b/Wonky.Client/Pages/KrvAdmin/KrvVariantUpdate.razor.cs deleted file mode 100644 index 7a86f550..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantUpdate.razor.cs +++ /dev/null @@ -1,61 +0,0 @@ -using Blazored.Toast.Services; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Forms; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; - -namespace Wonky.Client.Pages.KrvAdmin; - -public partial class KrvVariantUpdate : IDisposable -{ - private KrvVariantDto _variantDto; - private EditContext _editContext; - private bool _formInvalid = true; - - [Parameter] - public string VariantId { get; set; } - - [Inject] - public IKrvVariantHttpRepository VariantRepo { get; set; } - - [Inject] - public HttpInterceptorService Interceptor { get; set; } - - [Inject] - public IToastService ToastService { get; set; } - - [Inject] - public ILogger Logger { get; set; } - - protected override async Task OnInitializedAsync() - { - _variantDto = await VariantRepo.GetVariant(VariantId); - _editContext = new EditContext(_variantDto); - _editContext.OnFieldChanged += HandleFieldChanged; - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - } - - private void HandleFieldChanged(object sender, FieldChangedEventArgs e) - { - _formInvalid = !_editContext.Validate(); - StateHasChanged(); - } - - private async Task Update() - { - await VariantRepo.UpdateVariant(_variantDto); - ToastService.ShowSuccess($"Godt så. Produktet '{_variantDto.ErpName}' er opdateret."); - } - - private void AssignKrvVariantPicture(string imgUrl) - => _variantDto.PictureLink = imgUrl; - - public void Dispose() - { - Interceptor.DisposeEvent(); - _editContext.OnFieldChanged -= HandleFieldChanged; - } - -} \ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantUpdate.razor.css b/Wonky.Client/Pages/KrvAdmin/KrvVariantUpdate.razor.css deleted file mode 100644 index 789b48ef..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantUpdate.razor.css +++ /dev/null @@ -1,8 +0,0 @@ -/* variant image preview */ -.image-name { - margin-left: 10px; -} -.image-preview { - width: 200px; - margin-top: 15px; -} \ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantView.razor b/Wonky.Client/Pages/KrvAdmin/KrvVariantView.razor deleted file mode 100644 index 7eccd174..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantView.razor +++ /dev/null @@ -1,49 +0,0 @@ -@page "/krv-variant/{variantId}" -@using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin")] -
-
-

@Variant.Name

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BE Navn@Variant.Name
BE Varenr@Variant.Sku
DK Navn@Variant.ErpName
DK Varenr@Variant.ErpSku
Kort navn@Variant.ShortName
SDS URL@Variant.SdsLink
Billede URL@Variant.PictureLink
@Variant.Name
-
- -
diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantView.razor.cs b/Wonky.Client/Pages/KrvAdmin/KrvVariantView.razor.cs deleted file mode 100644 index 699a9b70..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantView.razor.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; - -namespace Wonky.Client.Pages.KrvAdmin; - -public partial class KrvVariantView : IDisposable -{ - private KrvVariantDto Variant { get; set; } = new (); - - [Inject] - public IKrvVariantHttpRepository VariantRepo { get; set; } - - [Inject] - public HttpInterceptorService Interceptor { get; set; } - - [Parameter] - public string VariantId { get; set; } = ""; - - protected override async Task OnInitializedAsync() - { - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - Variant = await VariantRepo.GetVariant(VariantId); - } - - /// - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// - public void Dispose() - { - Interceptor.DisposeEvent(); - } -} \ No newline at end of file diff --git a/Wonky.Client/Pages/KrvAdmin/KrvVariantView.razor.css b/Wonky.Client/Pages/KrvAdmin/KrvVariantView.razor.css deleted file mode 100644 index a9b07550..00000000 --- a/Wonky.Client/Pages/KrvAdmin/KrvVariantView.razor.css +++ /dev/null @@ -1,10 +0,0 @@ -/* variant image preview */ -.image-name { - margin-left: 10px; -} -.image-preview { - width: auto; - max-width: 200px; - height: 100px; - margin-top: 15px; -} \ No newline at end of file diff --git a/Wonky.Client/Pages/Testing/Counter.razor b/Wonky.Client/Pages/Testing/Counter.razor deleted file mode 100644 index 7b00c5ae..00000000 --- a/Wonky.Client/Pages/Testing/Counter.razor +++ /dev/null @@ -1,36 +0,0 @@ -@page "/counter" -@using Client.V1.Components -@using System.Security.Claims - - - - Bruger @context.User.FindFirst(ClaimTypes.Name).Value har tilladelse - - - Bruger har IKKE tilladelse - - - - - - -@code { - private int currentCount = 0; - - [CascadingParameter] - public Task AuthState { get; set; } - - private async void IncrementCount() - { - var authState = await AuthState; - var user = authState.User; - if(user.Identity.IsAuthenticated) - { - currentCount++; - } - else - { - currentCount--; - } - } -} diff --git a/Wonky.Client/Pages/Testing/JsInterop.razor b/Wonky.Client/Pages/Testing/JsInterop.razor deleted file mode 100644 index d0b22791..00000000 --- a/Wonky.Client/Pages/Testing/JsInterop.razor +++ /dev/null @@ -1,77 +0,0 @@ -@page "/js-interop" -

JsInterop in Blazor

- -
-
- Calling JS returning void -
-
- -
-
-
-
-
- Calling JS returning void (with object) -
-
- -
-
-
-
-
- Calling JS returning a result -
-
- -
-
- @_registrationResult -
-
-
-
-
- Calling JS returning an object -
-
- -
-
- @_messageDetails -
-
-
-
-
- Passing HTML Reference to JS Function -
-
- -
-
- -
-
-
-
-
- Passing Input Component to JS Function -
-
- - - -
-
- -
-
-
-
-
- @_errorMessage -
-
\ No newline at end of file diff --git a/Wonky.Client/Pages/Testing/JsInterop.razor.cs b/Wonky.Client/Pages/Testing/JsInterop.razor.cs deleted file mode 100644 index e261ae50..00000000 --- a/Wonky.Client/Pages/Testing/JsInterop.razor.cs +++ /dev/null @@ -1,85 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Microsoft.JSInterop; - -namespace Wonky.Client.Pages.Testing; - -public partial class JsInterop -{ - [Inject] public IJSRuntime JsRuntime { get; set; } - private IJSObjectReference _jsModule; - private string _registrationResult; - private string _messageDetails; - private ElementReference _elRef; - private EmailDetails _emailDetails = new EmailDetails(); - private string _errorMessage = ""; - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - _jsModule = await JsRuntime - .InvokeAsync("import", "./scripts/jsExample.js"); - await FocusAndStyleElement(); - await ThrowError(); - } - - } - - private async Task ShowAlertWindow() - { - // global namespace - await _jsModule.InvokeVoidAsync("showAlert", "JS function call called from .NET"); - } - - private async Task ShowAlertObject() - { - // global namespace - await _jsModule - .InvokeVoidAsync("showAlertObject", new { Name = "Frede", Age = "61"}); - } - - private async Task RegisterEmail() - { - _registrationResult = await _jsModule - .InvokeAsync("emailRegistration", "Angiv email adresse"); - } - - private async Task ExtractEmailDetails() - { - var emailDetails = await _jsModule.InvokeAsync("splitEmail", "Angiv email"); - _messageDetails = emailDetails != null - ? $"Navn: {emailDetails.Name}, Domain: {emailDetails.Domain}, TLD: {emailDetails.Tld}" - : "Email ikke angivet"; - } - - private async Task FocusAndStyleElement() - { - await _jsModule.InvokeVoidAsync("focusAndStyleElement", _elRef); - } - private async Task FocusAndStyleInputComponent() - { - await _jsModule.InvokeVoidAsync("focusAndStyleInputComponent", "dummyInputComponent"); - } - - private async Task ThrowError() - { - try - { - await _jsModule.InvokeVoidAsync("throwError"); - } - catch (JSException ex) - { - _errorMessage = ex.Message; - StateHasChanged(); - } - - } - -} - -public class EmailDetails -{ - public string Name { get; set; } - public string Domain { get; set; } - public string Tld { get; set; } -} \ No newline at end of file diff --git a/Wonky.Client/Pages/Testing/JsInterop2.razor b/Wonky.Client/Pages/Testing/JsInterop2.razor deleted file mode 100644 index 3e0c6394..00000000 --- a/Wonky.Client/Pages/Testing/JsInterop2.razor +++ /dev/null @@ -1,43 +0,0 @@ -@page "/js-interop-2" -

JsInterop2

- -
-
- Calling C# static method from JS -
-
- -
-
- -
-
-
-
-
- Calling C# static method from JS -
-
- -
-
- -
-
-
-
-
- Calling instance method from JS -
-
- -
-
-
- @_coordinates.X - @_coordinates.Y -
-
-
\ No newline at end of file diff --git a/Wonky.Client/Pages/Testing/JsInterop2.razor.cs b/Wonky.Client/Pages/Testing/JsInterop2.razor.cs deleted file mode 100644 index c155a8da..00000000 --- a/Wonky.Client/Pages/Testing/JsInterop2.razor.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Microsoft.JSInterop; - -namespace Wonky.Client.Pages.Testing; - -public partial class JsInterop2 -{ - private MouseCoordinates _coordinates = new MouseCoordinates(); - - [Inject] public IJSRuntime JsRuntime { get; set; } - - [JSInvokable] - public static string CalculateSquareRoot(int number) - { - var result = Math.Sqrt(number); - return $"result from {number} is {result}"; - } - - [JSInvokable("CalculateSquareRootJustResult")] - public static string CalculateSquareRoot(int number, bool justResult) - { - var result = Math.Sqrt(number); - return !justResult ? $"result from {number} is {result}" : result.ToString(); - } - - private async Task SendDotNetInstanceToJS() - { - var dotNetObjRef = DotNetObjectReference.Create(this); - await JsRuntime.InvokeVoidAsync("jsFunctions.registerMouseCoordinatesHandler", dotNetObjRef); - } - - [JSInvokable] - public void ShowCoordinates(MouseCoordinates coordinates) - { - _coordinates = coordinates; - StateHasChanged(); - } - public class MouseCoordinates - { - public int X { get; set; } - public int Y { get; set; } - } -} \ No newline at end of file diff --git a/Wonky.Client/Pages/Testing/JsInterop2.razor.css b/Wonky.Client/Pages/Testing/JsInterop2.razor.css deleted file mode 100644 index ebbe8075..00000000 --- a/Wonky.Client/Pages/Testing/JsInterop2.razor.css +++ /dev/null @@ -1,7 +0,0 @@ -.coords { - height: 200px; - width: 400px; - background-color: #d6d8d6; - text-align: center; - font-size: 20px; -} \ No newline at end of file diff --git a/Wonky.Client/Program.cs b/Wonky.Client/Program.cs index d7392db4..7e3c3b06 100644 --- a/Wonky.Client/Program.cs +++ b/Wonky.Client/Program.cs @@ -25,6 +25,7 @@ using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpRepository; using Wonky.Client.Services; using Wonky.Entity.Configuration; +using Wonky.Virk.Services; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add("#app"); diff --git a/Wonky.Client/Services/VirkRegistryService.cs b/Wonky.Client/Services/VirkRegistryService.cs deleted file mode 100644 index 81a7ced1..00000000 --- a/Wonky.Client/Services/VirkRegistryService.cs +++ /dev/null @@ -1,75 +0,0 @@ -// 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 Microsoft.AspNetCore.WebUtilities; -using Microsoft.Extensions.Options; -using Wonky.Entity.Configuration; -using Wonky.Entity.Models; -using Wonky.Entity.Requests; - -namespace Wonky.Client.Services; - -public class VirkRegistryService -{ - private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true }; - private readonly HttpClient _client; - private readonly IOptions _apiConfig; - private readonly List _noData = new() { new VirkRegInfo { Name = "INGEN DATA" } }; - - public VirkRegistryService(HttpClient client, IOptions apiConfig) - { - _client = client; - _apiConfig = apiConfig; - } - - public async Task> QueryVirkRegistry(VirkParams @params) - { - if(!ValidateCvrQuery(@params)) - { - throw new ArgumentException("CvrQuery does not validate"); - } - var queryString = new Dictionary - { - ["vatNumber"] = @params.VatNumber, - ["streetName"] = @params.StreetName, - ["houseNumber"] = @params.HouseNumber, - ["zipCode"] = @params.ZipCode - }; - var endpoint = QueryHelpers.AddQueryString(_apiConfig.Value.CvrLookup , queryString); - var response = await _client.GetAsync(endpoint); - var content = await response.Content.ReadAsStringAsync(); - - var jsonResult = JsonSerializer.Deserialize>(content, _options); - - if (string.IsNullOrWhiteSpace(content) || !jsonResult.Any()) return _noData; - - if (!string.IsNullOrWhiteSpace(@params.VatNumber)) return jsonResult; - - var result = jsonResult - .Where(x => x.States[^1].State == "NORMAL") - .OrderBy(x => x.Name).ToList(); - - return result.Count == 0 ? _noData : result; - } - - private static bool ValidateCvrQuery(VirkParams @params) - { - if (!string.IsNullOrWhiteSpace(@params.VatNumber)) - return true; - return !string.IsNullOrWhiteSpace(@params.HouseNumber) && !string.IsNullOrWhiteSpace(@params.StreetName) && - !string.IsNullOrWhiteSpace(@params.ZipCode); - } -} \ No newline at end of file diff --git a/Wonky.Client/Wonky.Client.csproj b/Wonky.Client/Wonky.Client.csproj index 2595e093..e592bf98 100644 --- a/Wonky.Client/Wonky.Client.csproj +++ b/Wonky.Client/Wonky.Client.csproj @@ -24,5 +24,23 @@ + + + + + <_ContentIncludedByDefault Remove="Pages\KrvAdmin\KrvProduct.razor" /> + <_ContentIncludedByDefault Remove="Pages\KrvAdmin\KrvProductList.razor" /> + <_ContentIncludedByDefault Remove="Pages\KrvAdmin\KrvProductUpdate.razor" /> + <_ContentIncludedByDefault Remove="Pages\KrvAdmin\KrvVariantCreate.razor" /> + <_ContentIncludedByDefault Remove="Pages\KrvAdmin\KrvVariantList.razor" /> + <_ContentIncludedByDefault Remove="Pages\KrvAdmin\KrvVariantUpdate.razor" /> + <_ContentIncludedByDefault Remove="Pages\KrvAdmin\KrvVariantView.razor" /> + <_ContentIncludedByDefault Remove="Pages\Testing\Counter.razor" /> + <_ContentIncludedByDefault Remove="Pages\Testing\JsInterop.razor" /> + <_ContentIncludedByDefault Remove="Pages\Testing\JsInterop2.razor" /> + + + + diff --git a/Wonky.Client/_Imports.razor b/Wonky.Client/_Imports.razor index cf9a830d..00d258bb 100644 --- a/Wonky.Client/_Imports.razor +++ b/Wonky.Client/_Imports.razor @@ -12,4 +12,6 @@ @using Microsoft.AspNetCore.Components.WebAssembly.Hosting @using Microsoft.AspNetCore.Components.Authorization @using DnetIndexedDb +@using Wonky.Entity +@using Wonky.Virk diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json new file mode 100644 index 00000000..0e0dcd23 --- /dev/null +++ b/Wonky.Client/wwwroot/appsettings.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/Wonky.Client/wwwroot/css/app.css b/Wonky.Client/wwwroot/css/app.css index 3848a5f4..c47b2569 100644 --- a/Wonky.Client/wwwroot/css/app.css +++ b/Wonky.Client/wwwroot/css/app.css @@ -22,6 +22,10 @@ a, .btn-link { border-color: #1861ac; } +.card { + padding: 0; +} + .content { padding-top: 1.1rem; } diff --git a/Wonky.Client/wwwroot/scripts/jsExample.js b/Wonky.Client/wwwroot/scripts/jsExample.js deleted file mode 100644 index 25b12314..00000000 --- a/Wonky.Client/wwwroot/scripts/jsExample.js +++ /dev/null @@ -1,46 +0,0 @@ -export function showAlert(message) { - alert(message); -} - -export function showAlertObject(person) { - const message = 'Navn: ' + person.name + " Alder: " + person.age; - alert(message) -} - -export function emailRegistration(message) { - const result = prompt(message) - if (!result) - return 'Angiv en email'; - - return 'Tak! Din email: ' + result + ' er registreret.'; -} - -export function splitEmail(message) { - const email = prompt(message); - if (!email) - return null; - - const firstPart = email.substring(0, email.indexOf("@")); - const lastPart = email.substring(email.indexOf("@") + 1); - return { - 'name': firstPart, - 'domain': lastPart.split(".")[0], - 'tld': lastPart.split(".")[1] - } -} - -export function focusAndStyleElement(element) { - element.style.color = "red"; - element.focus(); -} - -export function focusAndStyleInputComponent(id) { - const element = document.getElementById(id); - - element.style.color = "red"; - element.focus(); -} - -export function throwError() { - throw Error("Testing error message from JS file.") -} diff --git a/Wonky.Client/wwwroot/scripts/jsExample2.js b/Wonky.Client/wwwroot/scripts/jsExample2.js deleted file mode 100644 index edfbf600..00000000 --- a/Wonky.Client/wwwroot/scripts/jsExample2.js +++ /dev/null @@ -1,32 +0,0 @@ -var jsFunctions = {}; - -jsFunctions.calculateSquareRoot = function () { - const number = prompt("Giv mig et tal"); - - DotNet.invokeMethodAsync("Client.V1", "CalculateSquareRoot", parseInt(number)) - .then(result => { - var el = document.getElementById("string-result"); - el.innerHTML = result; - }) -} - -jsFunctions.calculateSquareRootJustResult = function () { - const number = prompt("Giv mig et tal"); - - DotNet.invokeMethodAsync("Client.V1", "CalculateSquareRootJustResult", parseInt(number), true) - .then(result => { - var el = document.getElementById("result"); - el.innerHTML = result; - }) -} - -jsFunctions.registerMouseCoordinatesHandler = function (dotNetObjRef) { - function mouseCoordinatesHandler() { - dotNetObjRef.invokeMethodAsync("ShowCoordinates", { - x: window.event.screenX, - y: window.event.screenY, - }); - } - mouseCoordinatesHandler(); - document.getElementById("coords").onmousemove = mouseCoordinatesHandler(); -} \ No newline at end of file