header check

This commit is contained in:
Frede Hundewadt 2023-02-07 09:01:03 +01:00
parent 35cf79beba
commit 5427c78dbe
211 changed files with 1195 additions and 382 deletions

View file

@ -1,3 +1,20 @@
@*
// 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 Wonky.Client.Services
<div class="input-group">
@ -10,12 +27,12 @@
[Inject] private UserProfileService ProfileService { get; set; }
private int KmMorning { get; set; }
private UserPref Prefs { get; set; } = new();
private UserProfile Profiles { get; set; } = new();
protected override async Task OnInitializedAsync()
{
Prefs = await ProfileService.GetPreferences();
KmMorning = Prefs.KmMorning;
Profiles = await ProfileService.GetPreferences();
KmMorning = Profiles.KmMorning;
}
private async Task OnKmChanged()

View file

@ -1,4 +1,4 @@
@using Wonky.Client.Helpers
@*
// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
@ -16,6 +16,7 @@
//
*@
@using Wonky.Client.Helpers
@if (ActivityList.Any())
{
<table class="table table-sm table-bordered d-print-table table-striped">

View file

@ -1,5 +1,4 @@
@using Wonky.Entity.Views
@using Wonky.Entity.DTO
@*
// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
@ -17,6 +16,9 @@
//
*@
@using Wonky.Entity.Views
@using Wonky.Entity.DTO
<table class="table table-sm table-bordered table-striped">
<thead>
<tr class="bg-dark text-white opacity-75 border-bottom">

View file

@ -26,7 +26,7 @@ public partial class CatalogGroupComponent
[Inject] private UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs = new();
private UserProfile _profiles = new();
private string? GroupCol { get; set; }

View file

@ -34,7 +34,7 @@ public partial class CatalogSearchComponent : IDisposable
/// <summary>
/// User preferences
/// </summary>
private UserPref Prefs { get; set; } = new();
private UserProfile Profiles { get; set; } = new();
/// <summary>
/// Selected item
@ -47,8 +47,8 @@ public partial class CatalogSearchComponent : IDisposable
protected override async Task OnInitializedAsync()
{
ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await ProfileService.GetPreferences();
SearchCol = Prefs.ItemSearch;
Profiles = await ProfileService.GetPreferences();
SearchCol = Profiles.ItemSearch;
await OnChanged.InvokeAsync(SearchCol);
}
@ -67,10 +67,10 @@ public partial class CatalogSearchComponent : IDisposable
/// <summary>
/// Preference update from profile service
/// </summary>
/// <param name="newUserPref"></param>
private void ProfileServiceOnOnChange(UserPref newUserPref)
/// <param name="newUserProfile"></param>
private void ProfileServiceOnOnChange(UserProfile newUserProfile)
{
Prefs = newUserPref;
Profiles = newUserProfile;
StateHasChanged();
}

View file

@ -34,7 +34,7 @@ public partial class CatalogSortComponent : IDisposable
/// <summary>
/// User's preferences
/// </summary>
private UserPref Prefs = new();
private UserProfile _profiles = new();
/// <summary>
/// Item selected by user
@ -47,8 +47,8 @@ public partial class CatalogSortComponent : IDisposable
protected override async Task OnInitializedAsync()
{
ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await ProfileService.GetPreferences();
SortCol = Prefs.ItemSort;
_profiles = await ProfileService.GetPreferences();
SortCol = _profiles.ItemSort;
}
/// <summary>
@ -66,10 +66,10 @@ public partial class CatalogSortComponent : IDisposable
/// <summary>
/// Get updated settings from preference service
/// </summary>
/// <param name="newUserPref"></param>
private void ProfileServiceOnOnChange(UserPref newUserPref)
/// <param name="newUserProfile"></param>
private void ProfileServiceOnOnChange(UserProfile newUserProfile)
{
Prefs = newUserPref;
_profiles = newUserProfile;
StateHasChanged();
}

View file

@ -1,5 +1,4 @@
@using Wonky.Client.Models
@using System.ComponentModel.Design
@*
// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
@ -17,6 +16,8 @@
//
*@
@using Wonky.Client.Models
@using System.ComponentModel.Design
<div class="row">
@if (Inventory.Any())

View file

@ -1,3 +1,20 @@
@*
// 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 Wonky.Entity.Views
@using System.Linq.Expressions

View file

@ -1,3 +1,19 @@
// 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 Microsoft.AspNetCore.Components;
using Wonky.Client.Shared;
using Wonky.Entity.Views;

View file

@ -1,5 +1,4 @@
@using Wonky.Client.Models
@using System.ComponentModel.Design
@*
// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
@ -16,7 +15,8 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
*@
@using Wonky.Client.Models
@using System.ComponentModel.Design
<div class="row">
@if (ProductList.Any())

View file

@ -14,7 +14,6 @@
//
using Microsoft.AspNetCore.Components;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.Components;

View file

@ -28,13 +28,13 @@ public partial class CustomerSearchColumnComponent : IDisposable
[Inject] private UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs { get; set; } = new();
private UserProfile Profiles { get; set; } = new();
private string SearchCol { get; set; } = "name";
protected override async Task OnInitializedAsync()
{
ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await ProfileService.GetPreferences();
SearchCol = Prefs.CompanySearch;
Profiles = await ProfileService.GetPreferences();
SearchCol = Profiles.CompanySearch;
}
private async Task OnSelectionChanged(ChangeEventArgs e)
{
@ -43,9 +43,9 @@ public partial class CustomerSearchColumnComponent : IDisposable
await OnChanged.InvokeAsync(val);
await ProfileService.SetCompanySearch(val);
}
private void ProfileServiceOnOnChange(UserPref newUserPref)
private void ProfileServiceOnOnChange(UserProfile newUserProfile)
{
Prefs = newUserPref;
Profiles = newUserProfile;
StateHasChanged();
}
public void Dispose()

View file

@ -24,14 +24,14 @@ namespace Wonky.Client.Components
{
private Timer InputTimer { get; set; } = new();
private string SearchTerm { get; set; } = "";
private UserPref Prefs { get; set; } = new ();
private UserProfile Profiles { get; set; } = new ();
[Inject] private UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
protected override async Task OnInitializedAsync()
{
Prefs = await ProfileService.GetPreferences();
SearchTerm = string.IsNullOrWhiteSpace(Prefs.CompanyFilterPhrase) ? "" : Prefs.CompanyFilterPhrase.Trim();
Profiles = await ProfileService.GetPreferences();
SearchTerm = string.IsNullOrWhiteSpace(Profiles.CompanyFilterPhrase) ? "" : Profiles.CompanyFilterPhrase.Trim();
if(!string.IsNullOrWhiteSpace(SearchTerm))
await OnChanged.InvokeAsync(SearchTerm);

View file

@ -27,13 +27,13 @@ namespace Wonky.Client.Components
[Inject] private UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs = new();
private UserProfile _profiles = new();
private string SortCol { get; set; } = "name";
protected override async Task OnInitializedAsync()
{
ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await ProfileService.GetPreferences();
SortCol = Prefs.CompanySort;
_profiles = await ProfileService.GetPreferences();
SortCol = _profiles.CompanySort;
}
private async Task OnSelectionChanged(ChangeEventArgs e)
{
@ -42,9 +42,9 @@ namespace Wonky.Client.Components
await OnChanged.InvokeAsync(val);
await ProfileService.SetCompanySort(val);
}
private void ProfileServiceOnOnChange(UserPref newUserPref)
private void ProfileServiceOnOnChange(UserProfile newUserProfile)
{
Prefs = newUserPref;
_profiles = newUserProfile;
StateHasChanged();
}
public void Dispose()

View file

@ -1,3 +1,19 @@
@*
// 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]
//
*@
<h3>Sælger</h3>
<table class="table">
<thead>

View file

@ -1,3 +1,19 @@
@*
// 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]
//
*@
<h3>Testede browsere</h3>
<ul class="list-group">
<li class="list-group-item">Safari (macOS, iOS)</li>

View file

@ -1,3 +1,19 @@
@*
// 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]
//
*@
<h3>Fælles</h3>
<table class="table">
<thead>

View file

@ -1,3 +1,19 @@
@*
// 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]
//
*@
<h3>Kontor</h3>
<table class="table">
<thead>

View file

@ -1,3 +1,19 @@
@*
// 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]
//
*@
<h3>Open Source</h3>
<ul class="list-group">
<a class="list-group-item list-group-item-action" href="https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor/" target="_blank">Blazor WebAssembly</a>

View file

@ -1,4 +1,19 @@
@*
// 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]
//
*@
<h3>Bestilling Status</h3>
<table class="table">
<thead>

View file

@ -1,3 +1,19 @@
@*
// 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]
//
*@
<h3>Aftaler / Tilbud</h3>
<table class="table">
<thead>

View file

@ -1,3 +1,19 @@
@*
// 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]
//
*@
<h3>Lager</h3>
<table class="table">
<thead>

View file

@ -40,13 +40,13 @@ public partial class LandingComponentAdvisor
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};
private UserPref Prefs { get; set; } = new();
private UserProfile Profiles { get; set; } = new();
private DateTime SelectedDate { get; set; }
protected override async Task OnInitializedAsync()
{
Prefs = await ProfileService.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(Prefs.WorkDate) ? DateTime.Now : DateTime.Parse(Prefs.WorkDate);
Profiles = await ProfileService.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(Profiles.WorkDate) ? DateTime.Now : DateTime.Parse(Profiles.WorkDate);
}
}

View file

@ -40,24 +40,24 @@ public partial class LandingComponentOffice
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};
private UserPref Prefs { get; set; } = new();
private UserProfile Profiles { get; set; } = new();
private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
private string Today { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
protected override async Task OnInitializedAsync()
{
ProfileService.OnChange += ProfileChanged;
Prefs = await ProfileService.GetPreferences();
if (string.IsNullOrWhiteSpace(Prefs.WorkDate))
Profiles = await ProfileService.GetPreferences();
if (string.IsNullOrWhiteSpace(Profiles.WorkDate))
{
await ProfileService.SetWorkDate(DateTime.Now);
}
}
private void ProfileChanged(UserPref newPrefs)
private void ProfileChanged(UserProfile newProfiles)
{
Prefs = newPrefs;
WorkDate = Prefs.WorkDate;
Profiles = newProfiles;
WorkDate = Profiles.WorkDate;
}
}

View file

@ -32,7 +32,7 @@
<a class="btn btn-success d-block" href="/office/users/advisors/@user.CountryCode.ToLower()/@user.UserId/customers">Kunder</a>
</div>
<div class="col-sm-2">
<AuthorizeView Roles="Admin">
<AuthorizeView Roles="Admin,Office">
<Authorized>
<a class="btn btn-info d-block" href="/office/users/advisors/@user.CountryCode.ToLower()/@user.UserId/view">Rediger</a>
</Authorized>

View file

@ -21,5 +21,5 @@ namespace Wonky.Client.Components;
public partial class OfficeCountryAdvisorListComponent
{
[Parameter] public List<UserListAdminView> UserList { get; set; } = new();
[Parameter] public List<UserManagerListView> UserList { get; set; } = new();
}

View file

@ -20,28 +20,6 @@
@if (CompanyList.Any())
{
@*
<div class="list-group list-group-flush">
<div class="list-group-item px-3 bg-black text-white opacity-75">
<div class="row">
<div class="col-sm-1">
Sælger
</div>
<div class="col-sm-1">
Konto
</div>
<div class="col-sm-1">
Telefon
</div>
<div class="col-sm-3">
Navn
</div>
<div class="col">
Bynavn
</div>
</div>
</div>
*@
<div class="row d-flex g-3">
@foreach (var company in CompanyList)
{
@ -71,29 +49,24 @@
<div class="col-sm-9 col-md-9">@company.CountryCode.ToUpper()-@company.ZipCode @company.City</div>
</div>
</div>
<div class="card-footer">
<div class="row">
<div class="col">
<button class="btn btn-danger" disabled>Faktura</button>
</div>
<div class="col">
<button class="btn btn-warning" disabled>Aktivitet</button>
</div>
<div class="col">
<button class="btn btn-success" disabled>Produkt</button>
</div>
<div class="col">
<button class="btn btn-primary" disabled>Bestilling</button>
</div>
</div>
</div>
</div>
</div>
@*
<a class=" list-group-item list-group-item-action" href="/office/customers/@CountryCode/@company.CompanyId/order">
<div class="row align-items-center">
<div class="col-sm-1">
@company.SalesRep
</div>
<div class="col-sm-1">
@company.Account
</div>
<div class="col-sm-1">
@company.Phone
</div>
<div class="col-sm-3">
@company.Name
</div>
<div class="col">
@company.CountryCode.ToUpper()-@company.ZipCode @company.City
</div>
</div>
</a>
*@
}
</div>
}
@ -101,3 +74,12 @@ else
{
<div>Ingen data</div>
}
@*
<CustomerInvoiceListModalOverlay CustomerInvoices="Invoices" @ref="InvoiceListOverlay" />
<CustomerActivityListModalOverlay Activities="Activities" CompanyName="@CompanyName" @ref="ActivityListOverlay" />
<CustomerInventoryListModalOverlay CompanyName="@CompanyName" CompanyId="@CompanyId" CountryCode="@CountryCode"
OnInventorySelected="OnInventoryCallback" Inventory="Inventory" @ref="InventoryListOverlay" />
*@

View file

@ -29,5 +29,19 @@ namespace Wonky.Client.Components
[Parameter] public List<CompanyDto> CompanyList { get; set; } = new();
[Parameter] public string CountryCode { get; set; } = "";
private CustomerInvoiceListModalOverlay InvoiceListOverlay { get; set; } = new();
private CustomerInventoryListModalOverlay InventoryListOverlay { get; set; } = new();
private CustomerActivityListModalOverlay ActivityListOverlay { get; set; } = new();
private string CompanyName { get; set; } = "";
private string CompanyId { get; set; } = "";
private InvoiceListView Invoices { get; set; } = new();
private List<ReportItemView> Activities { get; set; } = new();
private List<ProductHistoryView> Inventory { get; set; } = new();
private void OnInventoryCallback()
{
}
}
}

View file

@ -14,11 +14,11 @@
//
using Microsoft.AspNetCore.Components;
using Wonky.Entity.Views;
using Wonky.Entity.DTO;
namespace Wonky.Client.Components;
public partial class OfficeCountryUserListComponent
{
[Parameter] public List<UserListAdminView> UserList { get; set; } = new();
[Parameter] public List<UserManagerListView> UserList { get; set; } = new();
}

View file

@ -27,14 +27,14 @@ namespace Wonky.Client.Components
[Inject] private UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs = new();
private UserProfile _profiles = new();
private string PageSize { get; set; } = "";
protected override async Task OnInitializedAsync()
{
ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await ProfileService.GetPreferences();
PageSize = Prefs.PageSize;
_profiles = await ProfileService.GetPreferences();
PageSize = _profiles.PageSize;
}
private async Task OnSelectChanged(ChangeEventArgs e)
@ -45,9 +45,9 @@ namespace Wonky.Client.Components
await ProfileService.SetPageSize(val);
}
private void ProfileServiceOnOnChange(UserPref newUserPref)
private void ProfileServiceOnOnChange(UserProfile newUserProfile)
{
Prefs = newUserPref;
_profiles = newUserProfile;
StateHasChanged();
}

View file

@ -1,3 +1,19 @@
@*
// 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 Wonky.Entity.Views
@using Wonky.Client.Models

View file

@ -1,3 +1,18 @@
// 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 Microsoft.AspNetCore.Components;
using Wonky.Client.Models;
using Wonky.Entity.Views;

View file

@ -1,3 +1,18 @@
// 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 Microsoft.AspNetCore.Components;
using Wonky.Entity.Views;

View file

@ -49,7 +49,7 @@ public partial class WorkDateComponent : IDisposable
/// <summary>
/// user preferences
/// </summary>
private UserPref Prefs = new();
private UserProfile _profiles = new();
/// <summary>
/// Component Initialization
@ -58,10 +58,10 @@ public partial class WorkDateComponent : IDisposable
{
WorkDateContext = new EditContext(SelectedDate);
Profiles.OnChange += ProfileServiceOnOnChange;
Prefs = await Profiles.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(Prefs.WorkDate)
_profiles = await Profiles.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(_profiles.WorkDate)
? DateTime.Now
: DateTime.Parse(Prefs.WorkDate);
: DateTime.Parse(_profiles.WorkDate);
}
/// <summary>
@ -81,10 +81,10 @@ public partial class WorkDateComponent : IDisposable
/// <summary>
/// ProfileService
/// </summary>
/// <param name="newUserPref"></param>
private void ProfileServiceOnOnChange(UserPref newUserPref)
/// <param name="newUserProfile"></param>
private void ProfileServiceOnOnChange(UserProfile newUserProfile)
{
Prefs = newUserPref;
_profiles = newUserProfile;
StateHasChanged();
}

View file

@ -1,3 +1,17 @@
// 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 Blazored.Toast.Services;
using Microsoft.AspNetCore.Components;

View file

@ -1,3 +1,19 @@
@*
// 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 Wonky.Entity.DTO
@using Wonky.Entity.Views

View file

@ -1,3 +1,18 @@
// 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 Microsoft.AspNetCore.Components;
using Wonky.Entity.Views;

View file

@ -13,7 +13,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Collections.Generic;
using Wonky.Entity.Requests;
namespace Wonky.Client.Features;

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Globalization;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,4 +1,5 @@
// Copyright (C) 2022 FCS Frede's Computer Services.

// 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
@ -13,11 +14,10 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System;
using System.Net.Mail;
using Wonky.Entity.DTO;
namespace Wonky.Client.Helpers;
/// <summary>
/// Utilities
/// </summary>
@ -70,7 +70,7 @@ public static class Utils
if (trimmedEmail.EndsWith("."))
{
return false; // suggested by @TK-421
return false;
}
try
@ -93,6 +93,7 @@ public static class Utils
{
return value.ToString();
}
/// <summary>
/// Parse string to enum of T
/// </summary>
@ -103,6 +104,7 @@ public static class Utils
{
return (T)Enum.Parse(typeof(T), value, true);
}
/// <summary>
/// Generate unique hashcode from time
/// </summary>

View file

@ -1,3 +1,4 @@
// 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
@ -13,9 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Globalization;
using System.Reflection.Metadata.Ecma335;
using System.Runtime.CompilerServices;
using System.Text.RegularExpressions;
namespace Wonky.Client.Helpers;

View file

@ -1,3 +1,4 @@
// 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
@ -16,12 +17,10 @@
using System.Net;
using System.Net.Http.Headers;
using System.Text.Json;
using System.Threading.Tasks;
using Blazored.LocalStorage;
using Blazored.Toast.Services;
using Wonky.Client.Services;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Logging;
using Toolbelt.Blazor;
namespace Wonky.Client.HttpInterceptors

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System;
using System.Runtime.Serialization;
namespace Wonky.Client.HttpInterceptors

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,3 +1,4 @@
using Wonky.Entity.DTO;
namespace Wonky.Client.HttpInterfaces;

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using Wonky.Entity.Views;
namespace Wonky.Client.HttpInterfaces;

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using Wonky.Entity.DTO;
namespace Wonky.Client.HttpInterfaces;

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using Wonky.Entity.Views;
namespace Wonky.Client.HttpInterfaces;

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using Wonky.Entity.Views;
namespace Wonky.Client.HttpInterfaces;

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,3 +1,19 @@
// 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 Wonky.Entity.DTO;
using Wonky.Entity.Views;

View file

@ -1,3 +1,4 @@
// 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
@ -27,7 +28,7 @@ public interface ISystemUserRepository
/// Get Advisors (Office)
/// </summary>
/// <returns></returns>
Task<List<UserListAdminView>> GetAdvisors();
Task<List<UserManagerListView>> GetAdvisors();
/// <summary>
/// Get Advisor Info for given userId
@ -48,7 +49,7 @@ public interface ISystemUserRepository
/// Get Administrative Users
/// </summary>
/// <returns></returns>
Task<List<UserListAdminView>> GetAdminUsers();
Task<List<UserManagerListView>> GetAdminUsers();
/// <summary>
/// Get Admin Info for giver userId

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Net;
using System.Net.Http.Json;
using System.Text.Json;
using Microsoft.AspNetCore.Components;

View file

@ -1,3 +1,19 @@
// 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.Net.Http.Json;
using System.Text.Json;
using Microsoft.AspNetCore.Components;

View file

@ -1,3 +1,4 @@
// 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
@ -18,9 +19,7 @@ using System.Text.Json;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Options;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.Pages;
using Wonky.Entity.Configuration;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;

View file

@ -1,3 +1,4 @@
// 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
@ -13,22 +14,16 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
using System.Threading.Tasks;
using Wonky.Client.Features;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Wonky.Client.HttpInterfaces;
using Wonky.Entity.Configuration;
using Wonky.Entity.DTO;
using Wonky.Entity.Requests;
using Wonky.Entity.Views;
#pragma warning disable CS8601

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Net.Http.Json;
using System.Text.Json;
using Microsoft.AspNetCore.Components;

View file

@ -1,3 +1,4 @@
// 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
@ -13,16 +14,13 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Net.Http.Json;
using System.Text.Json;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Options;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.Pages;
using Wonky.Entity.Configuration;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,3 +1,4 @@
// 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
@ -13,19 +14,14 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
using System.Threading.Tasks;
using Wonky.Client.Features;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Options;
using Wonky.Client.HttpInterfaces;
using Wonky.Entity.Configuration;
using Wonky.Entity.DTO;
using Wonky.Entity.Requests;
using Wonky.Entity.Views;

View file

@ -1,3 +1,4 @@
// 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
@ -18,9 +19,7 @@ using System.Text.Json;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Options;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.Pages;
using Wonky.Entity.Configuration;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;

View file

@ -1,3 +1,4 @@
// 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
@ -13,22 +14,16 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
using System.Threading.Tasks;
using Wonky.Client.Features;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Wonky.Client.HttpInterfaces;
using Wonky.Entity.Configuration;
using Wonky.Entity.DTO;
using Wonky.Entity.Requests;
using Wonky.Entity.Views;
#pragma warning disable CS8601

View file

@ -1,3 +1,4 @@
// 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
@ -13,14 +14,12 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Net.Http.Json;
using System.Text.Json;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.Options;
using Wonky.Client.HttpInterfaces;
using Wonky.Entity.Configuration;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,4 +1,19 @@
using System.Net;
// 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.Net.Http.Json;
using System.Text.Json;
using Microsoft.AspNetCore.Components;

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Net.Http.Json;
using System.Text.Json;
using Microsoft.AspNetCore.Components;
@ -50,9 +50,9 @@ public class SystemUserRepository : ISystemUserRepository
/// Get Advisors (Office)
/// </summary>
/// <returns></returns>
public async Task<List<UserListAdminView>> GetAdvisors()
public async Task<List<UserManagerListView>> GetAdvisors()
{
return await _client.GetFromJsonAsync<List<UserListAdminView>>(_api.OfficeAdvisors);
return await _client.GetFromJsonAsync<List<UserManagerListView>>(_api.OfficeAdvisors);
}
/// <summary>
@ -80,9 +80,9 @@ public class SystemUserRepository : ISystemUserRepository
/// Get Administrative Users
/// </summary>
/// <returns></returns>
public async Task<List<UserListAdminView>> GetAdminUsers()
public async Task<List<UserManagerListView>> GetAdminUsers()
{
return await _client.GetFromJsonAsync<List<UserListAdminView>>(_api.OfficeUsers);
return await _client.GetFromJsonAsync<List<UserManagerListView>>(_api.OfficeUsers);
}
/// <summary>

View file

@ -1,3 +1,4 @@
// 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
@ -13,22 +14,8 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.Models;
/// <summary>
/// Draft Item model class
/// </summary>
public class DraftItem
{
public int Quantity { get; set; }
public SalesItemView Item { get; set; }
public decimal Price { get; set; }
public decimal Discount { get; set; }
public bool Sas { get; set; }
public decimal LineTotal => (Price - Price * Discount / 100) * Quantity;
}
/// <summary>
/// Draft model class
/// </summary>

View file

@ -0,0 +1,32 @@
// 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 Wonky.Entity.Views;
namespace Wonky.Client.Models;
/// <summary>
/// Draft Item model class
/// </summary>
public class DraftItem
{
public int Quantity { get; set; }
public SalesItemView Item { get; set; }
public decimal Price { get; set; }
public decimal Discount { get; set; }
public bool Sas { get; set; }
public decimal LineTotal => (Price - Price * Discount / 100) * Quantity;
}

View file

@ -1,3 +1,19 @@
// 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]
//
namespace Wonky.Client.Models;
public enum PSort

View file

@ -1,3 +1,19 @@
// 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]
//
namespace Wonky.Client.Models;
public enum PStatus

View file

@ -1,3 +1,19 @@
// 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]
//
namespace Wonky.Client.Models;
public enum PTarget

View file

@ -1,3 +1,19 @@
// 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]
//
namespace Wonky.Client.Models;
public class QCallbackArgs

View file

@ -1,3 +1,19 @@
// 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]
//
namespace Wonky.Client.Models;
public enum QStatus

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,3 +1,4 @@
// 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
@ -13,7 +14,6 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.ComponentModel.DataAnnotations;
namespace Wonky.Client.Models;

View file

@ -345,7 +345,7 @@ else
<ProductHistoryModalOverlay CompanyId="@CompanyId" ItemSku="@SelectedItem.Sku" @ref="ProductOverlay"/>
<ProductPriceHistoryModal CompanyId="@CompanyId" Sku="@SelectedItem.Sku"
OnSelected="PriceHistoryCallback" @ref="PriceOverlay"/>
OnSelected="PriceHistoryCallback" @ref="PriceModalOverlay"/>
<ConfirmProductCheckModalOverlay BodyMessage="" CompanyId="@CompanyId" Products="CheckList"
OnOkClicked="ConfirmProductCheckCallback" @ref="ProductCheckOverlay" />

View file

@ -1,4 +1,5 @@
// Copyright (C) 2022 FCS Frede's Computer Services.

// 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
@ -51,7 +52,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
// variables
private readonly JsonSerializerOptions _options = new() {PropertyNameCaseInsensitive = true};
private SalesItemView SelectedItem { get; set; } = new();
private UserPref UserPrefs { get; set; } = new();
private UserProfile UserProfile { get; set; } = new();
private ActivityDto Activity { get; set; } = new();
private CompanyDto Company = new();
private EditContext? ActivityContext { get; set; }
@ -73,7 +74,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
// OVERLAY PAGES
private PriceCatalogModalOverlay CatalogOverlay { get; set; } = new();
private ProductHistoryModalOverlay ProductOverlay { get; set; } = new();
private ProductPriceHistoryModal PriceOverlay { get; set; } = new();
private ProductPriceHistoryModalOverlay PriceModalOverlay { get; set; } = new();
private ConfirmWorkDateModalOverlay WorkDateOverlay { get; set; } = new();
private ConfirmProductCheckModalOverlay ProductCheckOverlay { get; set; } = new();
private CustomerInvoiceListModalOverlay InvoiceListOverlay { get; set; } = new();
@ -101,7 +102,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
// User Preferences
UserPrefs = await Profiles.GetPreferences();
UserProfile = await Profiles.GetPreferences();
// User Info
SalesRep = await Storage.GetItemAsync<UserInfoView>("_xu");
// Fetch Customer from http
@ -143,12 +144,12 @@ public partial class AdvisorActivityCreatePage : IDisposable
Activity.DlvZipCode = Company.ZipCode;
Activity.DlvCity = Company.City;
// Initialize date variable
SelectedDate = string.IsNullOrWhiteSpace(UserPrefs.WorkDate) ? DateTime.Now : DateTime.Parse(UserPrefs.WorkDate);
SelectedDate = string.IsNullOrWhiteSpace(UserProfile.WorkDate) ? DateTime.Now : DateTime.Parse(UserProfile.WorkDate);
// raise flag if report is closed
ReportClosed = await ReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
// Ask for confirmation of date
Logger.LogDebug("Preferences.DateConfirmed => {}", UserPrefs.DateConfirmed);
if (!UserPrefs.DateConfirmed)
Logger.LogDebug("Preferences.DateConfirmed => {}", UserProfile.DateConfirmed);
if (!UserProfile.DateConfirmed)
{
PromptDateConfirm = $"Aktiviteter oprettes med dato {SelectedDate.ToShortDateString()}. Er dette OK?";
WorkDateOverlay.Show();
@ -362,7 +363,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
private void ShowPriceHistoryOverlay()
{
if(ShowItem)
PriceOverlay.Show();
PriceModalOverlay.Show();
}
/// <summary>

View file

@ -1,3 +1,4 @@
// 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
@ -16,10 +17,8 @@
using System.Text.Json;
using Blazored.Toast.Services;
using Microsoft.AspNetCore.Components;
using Wonky.Client.Components;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.HttpRepository;
using Wonky.Client.Services;
using Wonky.Entity.Views;
@ -35,7 +34,7 @@ public partial class AdvisorActivityTodayListPage : IDisposable
[Inject] private IAdvisorReportRepository AdvisorReportRepo { get; set; }
[Inject] private IToastService Toaster { get; set; }
private ReportStatusView? ReportStatusView { get; set; } = new();
private UserPref UserPref { get; set; } = new();
private UserProfile UserProfile { get; set; } = new();
private DateTime SelectedDate { get; set; }
private bool ReportExist { get; set; }
private bool Working { get; set; } = true;
@ -44,8 +43,8 @@ public partial class AdvisorActivityTodayListPage : IDisposable
{
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
UserPref = await UserProfileService.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(UserPref.WorkDate) ? DateTime.Now : DateTime.Parse(UserPref.WorkDate);
UserProfile = await UserProfileService.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(UserProfile.WorkDate) ? DateTime.Now : DateTime.Parse(UserProfile.WorkDate);
ReportExist = await AdvisorReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
await GetActivities($"{SelectedDate:yyyy-MM-dd}");
Working = false;

View file

@ -14,16 +14,12 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.Globalization;
using System.Text.Json;
using System.Text.Json.Serialization;
using Blazored.Toast.Services;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.HttpRepository;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;

View file

@ -15,11 +15,9 @@
//
using System.Text.Json;
using Microsoft.AspNetCore.Components;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.HttpRepository;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;

View file

@ -18,7 +18,6 @@
@page "/advisor/customers/new"
@using Microsoft.AspNetCore.Authorization
@using Wonky.Client.Components
@using System.Xml
@attribute [Authorize(Roles = "Advisor")]
<PageTitle>Rådgiver Opret Kunde</PageTitle>

View file

@ -1,3 +1,4 @@
// 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
@ -13,20 +14,13 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using Blazored.LocalStorage;
using Blazored.Toast.Services;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository;
using Wonky.Client.Services;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.Extensions.Logging;
using Wonky.Client.Helpers;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.Models;
using Wonky.Client.Shared;

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,5 +1,19 @@
using System.Globalization;
using System.Net.NetworkInformation;
// 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.LocalStorage;
using Blazored.Toast.Services;

View file

@ -1,3 +1,4 @@
// 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
@ -13,12 +14,8 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Blazored.LocalStorage;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository;
using Microsoft.AspNetCore.Components;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.Services;
@ -36,7 +33,7 @@ namespace Wonky.Client.Pages
[Inject] private HttpInterceptorService Interceptor { get; set; }
[Inject] private NavigationManager Navigator { get; set; }
private List<CompanyDto> Companies { get; set; } = new();
private UserPref Prefs { get; set; } = new();
private UserProfile Profiles { get; set; } = new();
private UserInfoView UserInfo { get; set; } = new();
private string SavedSearch { get; set; } = "";
private bool IncludeFolded { get; set; }
@ -55,15 +52,15 @@ namespace Wonky.Client.Pages
protected override async Task OnInitializedAsync()
{
// set preferences
Prefs = await ProfileService.GetPreferences();
Profiles = await ProfileService.GetPreferences();
UserInfo = await Storage.GetItemAsync<UserInfoView>("_xu");
Paging.OrderBy = Prefs.CompanySort;
Paging.SearchColumn = Prefs.CompanySearch;
Paging.PageSize = Convert.ToInt32(Prefs.PageSize);
Paging.OrderBy = Profiles.CompanySort;
Paging.SearchColumn = Profiles.CompanySearch;
Paging.PageSize = Convert.ToInt32(Profiles.PageSize);
Paging.HasFolded = IncludeFolded ? 1 : 0;
// load saved search
SavedSearch = string.IsNullOrWhiteSpace(Prefs.CompanyFilterPhrase) ? "" : Prefs.CompanyFilterPhrase;
SavedSearch = string.IsNullOrWhiteSpace(Profiles.CompanyFilterPhrase) ? "" : Profiles.CompanyFilterPhrase;
Paging.SearchTerm = SavedSearch;
// get companies

View file

@ -1,3 +1,4 @@
// 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

View file

@ -1,7 +1,19 @@
using System.Diagnostics.CodeAnalysis;
using System.IO.Enumeration;
using System.Security.Policy;
using System.Text.Json;
// 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 Blazored.LocalStorage;
using Blazored.Toast.Services;
using Microsoft.AspNetCore.Components;
@ -9,7 +21,6 @@ using Wonky.Client.Helpers;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.Models;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.Pages;

View file

@ -17,7 +17,6 @@
@using Microsoft.AspNetCore.Authorization
@using Wonky.Client.Components
@using Wonky.Entity.Views
@attribute [Authorize(Roles = "Advisor")]
@page "/advisor/reports/new"
@ -74,7 +73,7 @@
}
else
{
Report.Figures.KmMorning = Prefs.KmMorning;
Report.Figures.KmMorning = Profiles.KmMorning;
<td>
<input type="time" id="checkIn" class="form-control"
@bind-Value="_checkIn" @bind-Value:event="oninput" @onchange="OnTimeChanged"/>

View file

@ -1,3 +1,4 @@
// 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
@ -40,7 +41,7 @@ public partial class AdvisorReportCreatePage : IDisposable
private ReportDto Report { get; set; } = new();
private List<ReportItemView> Activities { get; set; } = new();
private ReportFiguresDto InitialValues { get; set; }
private UserPref Prefs { get; set; } = new();
private UserProfile Profiles { get; set; } = new();
private bool FormInvalid { get; set; } = true;
private bool NoFigures { get; set; } = true;
private bool Working { get; set; }
@ -68,10 +69,10 @@ public partial class AdvisorReportCreatePage : IDisposable
ReportContext.OnValidationStateChanged += ValidationChanged;
ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await ProfileService.GetPreferences();
Logger.LogDebug("{}", JsonSerializer.Serialize(Prefs));
Profiles = await ProfileService.GetPreferences();
Logger.LogDebug("{}", JsonSerializer.Serialize(Profiles));
WorkDate = Prefs.WorkDate;
WorkDate = Profiles.WorkDate;
if (string.IsNullOrWhiteSpace(WorkDate))
{
_workDate = DateTime.Now;
@ -102,10 +103,10 @@ public partial class AdvisorReportCreatePage : IDisposable
Logger.LogDebug("OnInitializedAsync => GetKeyFigures <= {}", JsonSerializer.Serialize(Report));
}
private void ProfileServiceOnOnChange(UserPref userPref)
private void ProfileServiceOnOnChange(UserProfile userProfile)
{
Prefs = userPref;
WorkDate = Prefs.WorkDate;
Profiles = userProfile;
WorkDate = Profiles.WorkDate;
StateHasChanged();
}
@ -137,7 +138,7 @@ public partial class AdvisorReportCreatePage : IDisposable
}
else
{
Report.Figures.KmMorning = Prefs.KmMorning;
Report.Figures.KmMorning = Profiles.KmMorning;
}
NoFigures = false;

View file

@ -1,3 +1,4 @@
// 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
@ -14,10 +15,8 @@
//
using Microsoft.AspNetCore.Components;
using Toolbelt.Blazor;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.HttpRepository;
using Wonky.Entity.Views;
namespace Wonky.Client.Pages;

View file

@ -1,3 +1,4 @@
// 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
@ -33,7 +34,7 @@ public partial class AdvisorReportViewPage : IDisposable
[Inject] private ILogger<AdvisorReportViewPage> Logger { get; set; }
[Inject] private UserProfileService ProfileService { get; set; }
private UserPref Prefs { get; set; } = new();
private UserProfile Profiles { get; set; } = new();
private ReportView Report { get; set; } = new();
private List<ReportItemView> Activities { get; set; } = new ();
private bool Working { get; set; }
@ -116,10 +117,10 @@ public partial class AdvisorReportViewPage : IDisposable
Working = false;
}
private void ProfileServiceOnOnChange(UserPref userPref)
private void ProfileServiceOnOnChange(UserProfile userProfile)
{
Prefs = userPref;
ReportDate = Prefs.WorkDate;
Profiles = userProfile;
ReportDate = Profiles.WorkDate;
StateHasChanged();
}

View file

@ -1,3 +1,4 @@
// 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
@ -15,13 +16,10 @@
using Blazored.Toast.Services;
using Microsoft.AspNetCore.Components;
using Wonky.Client.Components;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.HttpRepository;
using Wonky.Client.Services;
using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.Pages;
@ -33,7 +31,7 @@ public partial class AdvisorTaskItemListCrmPage : IDisposable
[Inject] private NavigationManager Navigator { get; set; }
[Inject] private IAdvisorTaskItemRepository AdvisorTaskRepo { get; set; }
[Inject] private IToastService Toaster { get; set; }
private UserPref Prefs { get; set; } = new();
private UserProfile Profiles { get; set; } = new();
private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
private bool ReportExist = false;
private List<TaskItemDto> TaskItems { get; set; } = new();
@ -41,9 +39,9 @@ public partial class AdvisorTaskItemListCrmPage : IDisposable
protected override async Task OnInitializedAsync()
{
Prefs = await UserProfileService.GetPreferences();
if(!string.IsNullOrWhiteSpace(Prefs.WorkDate))
WorkDate = Prefs.WorkDate;
Profiles = await UserProfileService.GetPreferences();
if(!string.IsNullOrWhiteSpace(Profiles.WorkDate))
WorkDate = Profiles.WorkDate;
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();

View file

@ -1,3 +1,4 @@
// 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
@ -14,12 +15,10 @@
//
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.HttpRepository;
using Wonky.Entity.DTO;
namespace Wonky.Client.Pages;

View file

@ -1,3 +1,4 @@
// 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
@ -13,11 +14,9 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using Microsoft.AspNetCore.Components;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
using Wonky.Client.HttpRepository;
namespace Wonky.Client.Pages;

Some files were not shown because too many files have changed in this diff Show more