WIP: user management
This commit is contained in:
parent
6ac4b111e3
commit
a419b3fe66
74 changed files with 365 additions and 332 deletions
|
@ -25,13 +25,13 @@
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
private int KmMorning { get; set; }
|
private int KmMorning { get; set; }
|
||||||
private UserProfile Profiles { get; set; } = new();
|
private UserProfile Profiles { get; set; } = new();
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
KmMorning = Profiles.KmMorning;
|
KmMorning = Profiles.KmMorning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,6 @@ namespace Wonky.Client.Components;
|
||||||
public partial class AdvisorActivityListComponent
|
public partial class AdvisorActivityListComponent
|
||||||
{
|
{
|
||||||
[Parameter] public List<ReportItemView> ActivityList { get; set; } = new();
|
[Parameter] public List<ReportItemView> ActivityList { get; set; } = new();
|
||||||
// [Inject] private NavigationManager Navigator { get; set; }
|
// [Inject] public NavigationManager Navigator { get; set; }
|
||||||
|
|
||||||
}
|
}
|
|
@ -33,8 +33,8 @@ namespace Wonky.Client.Components
|
||||||
[Parameter] public List<CompanyDto> CompanyList { get; set; } = new();
|
[Parameter] public List<CompanyDto> CompanyList { get; set; } = new();
|
||||||
[Parameter] public EventCallback<string> OnDelete { get; set; }
|
[Parameter] public EventCallback<string> OnDelete { get; set; }
|
||||||
[Parameter] public EventCallback<string> OnSelect { get; set; }
|
[Parameter] public EventCallback<string> OnSelect { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private IJSRuntime JsRuntime { get; set; }
|
[Inject] public IJSRuntime JsRuntime { get; set; }
|
||||||
|
|
||||||
private Lazy<IJSObjectReference> BsTooltip { get; set; } = new();
|
private Lazy<IJSObjectReference> BsTooltip { get; set; } = new();
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ using Wonky.Entity.Views;
|
||||||
namespace Wonky.Client.Components;
|
namespace Wonky.Client.Components;
|
||||||
public partial class AdvisorLandingComponent
|
public partial class AdvisorLandingComponent
|
||||||
{
|
{
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
|
|
||||||
private readonly JsonSerializerOptions JsonOptions = new JsonSerializerOptions
|
private readonly JsonSerializerOptions JsonOptions = new JsonSerializerOptions
|
||||||
{
|
{
|
||||||
|
@ -45,7 +45,7 @@ public partial class AdvisorLandingComponent
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
SelectedDate = string.IsNullOrWhiteSpace(Profiles.WorkDate) ? DateTime.Now : DateTime.Parse(Profiles.WorkDate);
|
SelectedDate = string.IsNullOrWhiteSpace(Profiles.WorkDate) ? DateTime.Now : DateTime.Parse(Profiles.WorkDate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,8 +22,8 @@ namespace Wonky.Client.Components;
|
||||||
|
|
||||||
public partial class CatalogGroupComponent
|
public partial class CatalogGroupComponent
|
||||||
{
|
{
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
||||||
private Dictionary<string, string> Items { get; set; } = new();
|
private Dictionary<string, string> Items { get; set; } = new();
|
||||||
private UserProfile _profiles = new();
|
private UserProfile _profiles = new();
|
||||||
|
|
|
@ -24,7 +24,7 @@ public partial class CatalogSearchComponent : IDisposable
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// User preference service
|
/// User preference service
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// OnChanged event callback
|
/// OnChanged event callback
|
||||||
|
@ -47,7 +47,7 @@ public partial class CatalogSearchComponent : IDisposable
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
ProfileService.OnChange += ProfileServiceOnOnChange;
|
ProfileService.OnChange += ProfileServiceOnOnChange;
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
SearchCol = Profiles.ItemSearch;
|
SearchCol = Profiles.ItemSearch;
|
||||||
await OnChanged.InvokeAsync(SearchCol);
|
await OnChanged.InvokeAsync(SearchCol);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ public partial class CatalogSortComponent : IDisposable
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// User preference service
|
/// User preference service
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// OnChanged callback function
|
/// OnChanged callback function
|
||||||
|
@ -47,7 +47,7 @@ public partial class CatalogSortComponent : IDisposable
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
ProfileService.OnChange += ProfileServiceOnOnChange;
|
ProfileService.OnChange += ProfileServiceOnOnChange;
|
||||||
_profiles = await ProfileService.GetPreferences();
|
_profiles = await ProfileService.GetProfile();
|
||||||
SortCol = _profiles.ItemSort;
|
SortCol = _profiles.ItemSort;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace Wonky.Client.Components;
|
||||||
|
|
||||||
public partial class CustomerInventoryListComponent
|
public partial class CustomerInventoryListComponent
|
||||||
{
|
{
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
// Parameters
|
// Parameters
|
||||||
[Parameter] public List<ProductInventoryView> Inventory { get; set; } = new();
|
[Parameter] public List<ProductInventoryView> Inventory { get; set; } = new();
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
|
|
|
@ -24,7 +24,7 @@ public partial class CustomerProductCheckListComponent
|
||||||
{
|
{
|
||||||
[Parameter] public List<ProductInventoryView> ProductList { get; set; } = new();
|
[Parameter] public List<ProductInventoryView> ProductList { get; set; } = new();
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
// private variables
|
// private variables
|
||||||
private bool Descending { get; set; }
|
private bool Descending { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,8 @@ namespace Wonky.Client.Components;
|
||||||
|
|
||||||
public partial class CustomerSearchColumnComponent : IDisposable
|
public partial class CustomerSearchColumnComponent : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
||||||
private Dictionary<string, string> Items { get; set; } = new();
|
private Dictionary<string, string> Items { get; set; } = new();
|
||||||
private UserProfile Profiles { get; set; } = new();
|
private UserProfile Profiles { get; set; } = new();
|
||||||
|
@ -33,7 +33,7 @@ public partial class CustomerSearchColumnComponent : IDisposable
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
ProfileService.OnChange += ProfileServiceOnOnChange;
|
ProfileService.OnChange += ProfileServiceOnOnChange;
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
SearchCol = Profiles.CompanySearch;
|
SearchCol = Profiles.CompanySearch;
|
||||||
}
|
}
|
||||||
private async Task OnSelectionChanged(ChangeEventArgs e)
|
private async Task OnSelectionChanged(ChangeEventArgs e)
|
||||||
|
|
|
@ -26,12 +26,12 @@ namespace Wonky.Client.Components
|
||||||
private Timer InputTimer { get; set; } = new();
|
private Timer InputTimer { get; set; } = new();
|
||||||
private string SearchTerm { get; set; } = "";
|
private string SearchTerm { get; set; } = "";
|
||||||
private UserProfile Profiles { get; set; } = new ();
|
private UserProfile Profiles { get; set; } = new ();
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
SearchTerm = string.IsNullOrWhiteSpace(Profiles.CompanyFilterPhrase) ? "" : Profiles.CompanyFilterPhrase.Trim();
|
SearchTerm = string.IsNullOrWhiteSpace(Profiles.CompanyFilterPhrase) ? "" : Profiles.CompanyFilterPhrase.Trim();
|
||||||
|
|
||||||
if(!string.IsNullOrWhiteSpace(SearchTerm))
|
if(!string.IsNullOrWhiteSpace(SearchTerm))
|
||||||
|
|
|
@ -24,8 +24,8 @@ namespace Wonky.Client.Components
|
||||||
{
|
{
|
||||||
public partial class CustomerSortComponent : IDisposable
|
public partial class CustomerSortComponent : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
||||||
private Dictionary<string, string> Items { get; set; } = new();
|
private Dictionary<string, string> Items { get; set; } = new();
|
||||||
private UserProfile _profiles = new();
|
private UserProfile _profiles = new();
|
||||||
|
@ -33,7 +33,7 @@ namespace Wonky.Client.Components
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
ProfileService.OnChange += ProfileServiceOnOnChange;
|
ProfileService.OnChange += ProfileServiceOnOnChange;
|
||||||
_profiles = await ProfileService.GetPreferences();
|
_profiles = await ProfileService.GetProfile();
|
||||||
SortCol = _profiles.CompanySort;
|
SortCol = _profiles.CompanySort;
|
||||||
}
|
}
|
||||||
private async Task OnSelectionChanged(ChangeEventArgs e)
|
private async Task OnSelectionChanged(ChangeEventArgs e)
|
||||||
|
|
|
@ -34,8 +34,8 @@
|
||||||
<td>Ubehandlet</td>
|
<td>Ubehandlet</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><i class="bi-hand-thumbs-up" style="font-size:1.3rem"></i></td>
|
<td><i class="bi-printer" style="font-size:1.3rem"></i></td>
|
||||||
<td>Accepteret</td>
|
<td>Udskrevet</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><i class="bi-file-earmark-check" style="font-size:1.3rem"></i></td>
|
<td><i class="bi-file-earmark-check" style="font-size:1.3rem"></i></td>
|
||||||
|
|
|
@ -40,8 +40,8 @@ namespace Wonky.Client.Components
|
||||||
|
|
||||||
// ******************************************************
|
// ******************************************************
|
||||||
// injects
|
// injects
|
||||||
[Inject] public ICountryCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public ICountryCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
[Inject] public ICountryActivityRepository ActivityRepo { get; set; }
|
[Inject] public ICountryActivityRepository ActivityRepo { get; set; }
|
||||||
|
|
||||||
// ******************************************************
|
// ******************************************************
|
||||||
// overlays
|
// overlays
|
||||||
|
|
|
@ -33,7 +33,7 @@ using Wonky.Entity.Views;
|
||||||
namespace Wonky.Client.Components;
|
namespace Wonky.Client.Components;
|
||||||
public partial class OfficeLandingComponent
|
public partial class OfficeLandingComponent
|
||||||
{
|
{
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
|
|
||||||
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
||||||
{
|
{
|
||||||
|
@ -48,7 +48,7 @@ public partial class OfficeLandingComponent
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
ProfileService.OnChange += ProfileChanged;
|
ProfileService.OnChange += ProfileChanged;
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
if (string.IsNullOrWhiteSpace(Profiles.WorkDate))
|
if (string.IsNullOrWhiteSpace(Profiles.WorkDate))
|
||||||
{
|
{
|
||||||
await ProfileService.SetWorkDate(DateTime.Now);
|
await ProfileService.SetWorkDate(DateTime.Now);
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace Wonky.Client.Components;
|
||||||
public partial class OfficeReportActivityListComponent
|
public partial class OfficeReportActivityListComponent
|
||||||
{
|
{
|
||||||
[Parameter] public List<ReportItemView> ActivityList { get; set; } = new();
|
[Parameter] public List<ReportItemView> ActivityList { get; set; } = new();
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
|
|
||||||
private void ShowOrder(string companyId, string orderId)
|
private void ShowOrder(string companyId, string orderId)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,8 +24,8 @@ namespace Wonky.Client.Components
|
||||||
{
|
{
|
||||||
public partial class PageSizeComponent : IDisposable
|
public partial class PageSizeComponent : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
[Parameter] public EventCallback<string> OnChanged { get; set; }
|
||||||
private Dictionary<string, string> Items { get; set; } = new();
|
private Dictionary<string, string> Items { get; set; } = new();
|
||||||
private UserProfile _profiles = new();
|
private UserProfile _profiles = new();
|
||||||
|
@ -34,7 +34,7 @@ namespace Wonky.Client.Components
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
ProfileService.OnChange += ProfileServiceOnOnChange;
|
ProfileService.OnChange += ProfileServiceOnOnChange;
|
||||||
_profiles = await ProfileService.GetPreferences();
|
_profiles = await ProfileService.GetProfile();
|
||||||
PageSize = _profiles.PageSize;
|
PageSize = _profiles.PageSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,5 +23,5 @@ namespace Wonky.Client.Components;
|
||||||
public partial class ProductPriceListComponent
|
public partial class ProductPriceListComponent
|
||||||
{
|
{
|
||||||
[Parameter] public List<SalesItemView> ItemList { get; set; } = new();
|
[Parameter] public List<SalesItemView> ItemList { get; set; } = new();
|
||||||
[Inject] private IToastService ToastService { get; set; }
|
[Inject] public IToastService ToastService { get; set; }
|
||||||
}
|
}
|
|
@ -28,7 +28,7 @@ public partial class WorkDateComponent : IDisposable
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// User preference service
|
/// User preference service
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Inject] public UserProfileService Profiles { get; set; }
|
[Inject] public UserProfileService UserProfile { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// OnChanged callback function
|
/// OnChanged callback function
|
||||||
|
@ -56,8 +56,8 @@ public partial class WorkDateComponent : IDisposable
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
WorkDateContext = new EditContext(SelectedDate);
|
WorkDateContext = new EditContext(SelectedDate);
|
||||||
Profiles.OnChange += ProfileServiceOnOnChange;
|
UserProfile.OnChange += ProfileServiceOnOnChange;
|
||||||
Profile = await Profiles.GetPreferences();
|
Profile = await UserProfile.GetProfile();
|
||||||
SelectedDate = string.IsNullOrWhiteSpace(Profile.WorkDate)
|
SelectedDate = string.IsNullOrWhiteSpace(Profile.WorkDate)
|
||||||
? DateTime.Now
|
? DateTime.Now
|
||||||
: DateTime.Parse(Profile.WorkDate);
|
: DateTime.Parse(Profile.WorkDate);
|
||||||
|
@ -72,7 +72,7 @@ public partial class WorkDateComponent : IDisposable
|
||||||
var x = DateTime.TryParse(e.Value.ToString(), out var setDate);
|
var x = DateTime.TryParse(e.Value.ToString(), out var setDate);
|
||||||
if (x)
|
if (x)
|
||||||
{
|
{
|
||||||
await Profiles.SetWorkDate(setDate);
|
await UserProfile.SetWorkDate(setDate);
|
||||||
await OnChangedCallback.InvokeAsync($"{setDate:yyyy-MM-dd}");
|
await OnChangedCallback.InvokeAsync($"{setDate:yyyy-MM-dd}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,6 +92,6 @@ public partial class WorkDateComponent : IDisposable
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
Profiles.OnChange -= ProfileServiceOnOnChange;
|
UserProfile.OnChange -= ProfileServiceOnOnChange;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -26,9 +26,9 @@ namespace Wonky.Client.OverlayCustomer;
|
||||||
|
|
||||||
public partial class CustomerInventoryListOverlay : IDisposable
|
public partial class CustomerInventoryListOverlay : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ICountryCatalogRepository CatalogRepo { get; set; }
|
[Inject] public ICountryCatalogRepository CatalogRepo { get; set; }
|
||||||
[Inject] private ILogger<CustomerInventoryListOverlay> Logger { get; set; }
|
[Inject] public ILogger<CustomerInventoryListOverlay> Logger { get; set; }
|
||||||
|
|
||||||
[Parameter] public string CompanyName { get; set; } = "";
|
[Parameter] public string CompanyName { get; set; } = "";
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
|
|
|
@ -27,7 +27,7 @@ public partial class CustomerInventoryReorderOverlay
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public SalesItemView SalesItem { get; set; } = new();
|
[Parameter] public SalesItemView SalesItem { get; set; } = new();
|
||||||
[Inject] private IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
[Parameter] public EventCallback<DraftItem> OnSelected { get; set; }
|
[Parameter] public EventCallback<DraftItem> OnSelected { get; set; }
|
||||||
private List<ProductHistoryView>? History { get; set; } = new();
|
private List<ProductHistoryView>? History { get; set; } = new();
|
||||||
private DraftItem SelectedItem { get; set; } = new();
|
private DraftItem SelectedItem { get; set; } = new();
|
||||||
|
|
|
@ -25,7 +25,7 @@ public partial class CustomerInvoiceListOverlay
|
||||||
{
|
{
|
||||||
[Parameter] public InvoiceListView CustomerInvoices { get; set; } = new();
|
[Parameter] public InvoiceListView CustomerInvoices { get; set; } = new();
|
||||||
|
|
||||||
[Inject] private ILogger<CustomerInvoiceListOverlay> Logger { get; set; }
|
[Inject] public ILogger<CustomerInvoiceListOverlay> Logger { get; set; }
|
||||||
private CustomerInvoiceViewOverlay CustomerInvoiceView { get; set; } = new();
|
private CustomerInvoiceViewOverlay CustomerInvoiceView { get; set; } = new();
|
||||||
private string InvoiceId { get; set; } = "";
|
private string InvoiceId { get; set; } = "";
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
|
|
|
@ -26,8 +26,8 @@ public partial class CustomerInvoiceViewOverlay : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string InvoiceId { get; set; } = "";
|
[Parameter] public string InvoiceId { get; set; } = "";
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
private bool _showBackdrop;
|
private bool _showBackdrop;
|
||||||
private InvoiceView Invoice { get; set; } = new();
|
private InvoiceView Invoice { get; set; } = new();
|
||||||
|
|
|
@ -28,7 +28,7 @@ public partial class OfficeCustomerInventoryReorderOverlay
|
||||||
{
|
{
|
||||||
[Parameter] public CompanyDto Company { get; set; }
|
[Parameter] public CompanyDto Company { get; set; }
|
||||||
[Parameter] public SalesItemView SalesItem { get; set; } = new();
|
[Parameter] public SalesItemView SalesItem { get; set; } = new();
|
||||||
[Inject] public ICountryCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public ICountryCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
[Parameter] public EventCallback<DraftItem> OrderItemCallback { get; set; }
|
[Parameter] public EventCallback<DraftItem> OrderItemCallback { get; set; }
|
||||||
private List<ProductHistoryView> History { get; set; } = new();
|
private List<ProductHistoryView> History { get; set; } = new();
|
||||||
private DraftItem SelectedItem { get; set; } = new();
|
private DraftItem SelectedItem { get; set; } = new();
|
||||||
|
|
|
@ -27,7 +27,7 @@ public partial class OfficeCustomerInvoiceListOverlay
|
||||||
[Parameter] public InvoiceListView InvoiceList { get; set; } = new();
|
[Parameter] public InvoiceListView InvoiceList { get; set; } = new();
|
||||||
[Parameter] public CompanyDto Company { get; set; } = new();
|
[Parameter] public CompanyDto Company { get; set; } = new();
|
||||||
// dependency injection
|
// dependency injection
|
||||||
[Inject] private ILogger<OfficeCustomerInvoiceListOverlay> Logger { get; set; }
|
[Inject] public ILogger<OfficeCustomerInvoiceListOverlay> Logger { get; set; }
|
||||||
private string InvoiceId { get; set; } = "";
|
private string InvoiceId { get; set; } = "";
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
private bool _showBackdrop;
|
private bool _showBackdrop;
|
||||||
|
|
|
@ -27,8 +27,8 @@ public partial class OfficeCustomerInvoiceViewOverlay : IDisposable
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string InvoiceId { get; set; } = "";
|
[Parameter] public string InvoiceId { get; set; } = "";
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ICountryCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public ICountryCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
|
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
private bool _showBackdrop;
|
private bool _showBackdrop;
|
||||||
|
|
|
@ -26,9 +26,9 @@ namespace Wonky.Client.OverlayOffice;
|
||||||
|
|
||||||
public partial class OfficeCustomerProductListOverlay : IDisposable
|
public partial class OfficeCustomerProductListOverlay : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ICountryCatalogRepository CatalogRepo { get; set; }
|
[Inject] public ICountryCatalogRepository CatalogRepo { get; set; }
|
||||||
[Inject] private ILogger<OfficeCustomerProductListOverlay> Logger { get; set; }
|
[Inject] public ILogger<OfficeCustomerProductListOverlay> Logger { get; set; }
|
||||||
|
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
private bool _showBackdrop;
|
private bool _showBackdrop;
|
||||||
|
|
|
@ -29,10 +29,10 @@ namespace Wonky.Client.OverlayOrderCreate;
|
||||||
public partial class PriceCatalogOverlay : IDisposable
|
public partial class PriceCatalogOverlay : IDisposable
|
||||||
{
|
{
|
||||||
// injections
|
// injections
|
||||||
[Inject] private ICountryCatalogRepository CatalogRepo { get; set; }
|
[Inject] public ICountryCatalogRepository CatalogRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Inject] private ILogger<PriceCatalogOverlay> Logger { get; set; }
|
[Inject] public ILogger<PriceCatalogOverlay> Logger { get; set; }
|
||||||
// parameters
|
// parameters
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[Parameter] public EventCallback<SelectedSku> OnSelected { get; set; }
|
[Parameter] public EventCallback<SelectedSku> OnSelected { get; set; }
|
||||||
|
@ -53,7 +53,7 @@ public partial class PriceCatalogOverlay : IDisposable
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
_userProfile = await ProfileService.GetPreferences();
|
_userProfile = await ProfileService.GetProfile();
|
||||||
_pager.OrderBy = _userProfile.ItemSort;
|
_pager.OrderBy = _userProfile.ItemSort;
|
||||||
_pager.SearchColumn = _userProfile.ItemSearch;
|
_pager.SearchColumn = _userProfile.ItemSearch;
|
||||||
_pager.PageSize = Convert.ToInt32(_userProfile.PageSize);
|
_pager.PageSize = Convert.ToInt32(_userProfile.PageSize);
|
||||||
|
|
|
@ -27,7 +27,7 @@ public partial class ProductHistoryOverlay
|
||||||
// [Parameter] public EventCallback<decimal> OnSelected { get; set; }
|
// [Parameter] public EventCallback<decimal> OnSelected { get; set; }
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string ItemSku { get; set; } = "";
|
[Parameter] public string ItemSku { get; set; } = "";
|
||||||
[Inject] private IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
private List<ProductHistoryView>? History { get; set; }
|
private List<ProductHistoryView>? History { get; set; }
|
||||||
private string ProductName { get; set; } = "";
|
private string ProductName { get; set; } = "";
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
|
|
|
@ -27,7 +27,7 @@ public partial class ProductPriceHistoryOverlay
|
||||||
[Parameter] public EventCallback<decimal> OnSelected { get; set; }
|
[Parameter] public EventCallback<decimal> OnSelected { get; set; }
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string Sku { get; set; } = "";
|
[Parameter] public string Sku { get; set; } = "";
|
||||||
[Inject] private IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
private List<ProductHistoryView>? History { get; set; }
|
private List<ProductHistoryView>? History { get; set; }
|
||||||
private string ProductName { get; set; } = "";
|
private string ProductName { get; set; } = "";
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
|
|
|
@ -48,7 +48,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
[Inject] public IAdvisorActivityRepository ActivityRepo { get; set; }
|
[Inject] public IAdvisorActivityRepository ActivityRepo { get; set; }
|
||||||
[Inject] public IAdvisorReportRepository ReportRepo { get; set; }
|
[Inject] public IAdvisorReportRepository ReportRepo { get; set; }
|
||||||
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
[Inject] private UserInfoService UserInfoService { get; set; }
|
[Inject] public IUserInfoService UserInfoService { get; set; }
|
||||||
|
|
||||||
[CascadingParameter] private DraftStateProvider DraftProvider { get; set; } = new();
|
[CascadingParameter] private DraftStateProvider DraftProvider { get; set; } = new();
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
|
@ -106,7 +106,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
Interceptor.RegisterEvent();
|
Interceptor.RegisterEvent();
|
||||||
Interceptor.RegisterBeforeSendEvent();
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
// User Preferences
|
// User Preferences
|
||||||
UserProfile = await ProfileService.GetPreferences();
|
UserProfile = await ProfileService.GetProfile();
|
||||||
// User Info
|
// User Info
|
||||||
SalesRep = await UserInfoService.GetUserInfo();
|
SalesRep = await UserInfoService.GetUserInfo();
|
||||||
// Fetch Customer from http
|
// Fetch Customer from http
|
||||||
|
|
|
@ -27,13 +27,13 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class AdvisorActivityTodayListPage : IDisposable
|
public partial class AdvisorActivityTodayListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Inject] private ILogger<AdvisorActivityTodayListPage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorActivityTodayListPage> Logger { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private IAdvisorActivityRepository ActivityRepo { get; set; }
|
[Inject] public IAdvisorActivityRepository ActivityRepo { get; set; }
|
||||||
[Inject] private IAdvisorReportRepository ReportRepo { get; set; }
|
[Inject] public IAdvisorReportRepository ReportRepo { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
private ReportStatusView ReportStatusView { get; set; } = new();
|
private ReportStatusView ReportStatusView { get; set; } = new();
|
||||||
private UserProfile UserProfile { get; set; } = new();
|
private UserProfile UserProfile { get; set; } = new();
|
||||||
private DateTime SelectedDate { get; set; }
|
private DateTime SelectedDate { get; set; }
|
||||||
|
@ -44,7 +44,7 @@ public partial class AdvisorActivityTodayListPage : IDisposable
|
||||||
{
|
{
|
||||||
Interceptor.RegisterEvent();
|
Interceptor.RegisterEvent();
|
||||||
Interceptor.RegisterBeforeSendEvent();
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
UserProfile = await ProfileService.GetPreferences();
|
UserProfile = await ProfileService.GetProfile();
|
||||||
SelectedDate = string.IsNullOrWhiteSpace(UserProfile.WorkDate) ? DateTime.Now : DateTime.Parse(UserProfile.WorkDate);
|
SelectedDate = string.IsNullOrWhiteSpace(UserProfile.WorkDate) ? DateTime.Now : DateTime.Parse(UserProfile.WorkDate);
|
||||||
ReportExist = await ReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
ReportExist = await ReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
||||||
await GetActivities($"{SelectedDate:yyyy-MM-dd}");
|
await GetActivities($"{SelectedDate:yyyy-MM-dd}");
|
||||||
|
|
|
@ -30,11 +30,11 @@ public partial class AdvisorActivityViewPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string OrderId { get; set; } = "";
|
[Parameter] public string OrderId { get; set; } = "";
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||||
[Inject] private ILogger<AdvisorActivityViewPage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorActivityViewPage> Logger { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
private ReportItemView ReportItem { get; set; } = new();
|
private ReportItemView ReportItem { get; set; } = new();
|
||||||
private ActivityOfficeNote Note { get; set; } = new();
|
private ActivityOfficeNote Note { get; set; } = new();
|
||||||
private EditContext NoteContext { get; set; }
|
private EditContext NoteContext { get; set; }
|
||||||
|
|
|
@ -27,9 +27,9 @@ namespace Wonky.Client.Pages;
|
||||||
public partial class AdvisorCustomerActivityListPage : IDisposable
|
public partial class AdvisorCustomerActivityListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||||
[Inject] private IAdvisorCustomerRepository CompanyRepo { get; set; }
|
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||||
private List<ReportItemView> ActivityList { get; set; } = new();
|
private List<ReportItemView> ActivityList { get; set; } = new();
|
||||||
private CompanyDto Company { get; set; } = new();
|
private CompanyDto Company { get; set; } = new();
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
|
@ -34,14 +34,14 @@ namespace Wonky.Client.Pages
|
||||||
{
|
{
|
||||||
public partial class AdvisorCustomerCreatePage : IDisposable
|
public partial class AdvisorCustomerCreatePage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
[Inject] private ILogger<AdvisorCustomerCreatePage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorCustomerCreatePage> Logger { get; set; }
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private IAdvisorCustomerRepository CompanyRepo { get; set; }
|
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private VatInfoLookupService VatService { get; set; }
|
[Inject] public VatInfoLookupService VatService { get; set; }
|
||||||
[Inject] private UserInfoService UserInfoService { get; set; }
|
[Inject] public IUserInfoService UserInfoService { get; set; }
|
||||||
|
|
||||||
private EditContext CompanyContext { get; set; }
|
private EditContext CompanyContext { get; set; }
|
||||||
private CompanyDto Company { get; set; } = new();
|
private CompanyDto Company { get; set; } = new();
|
||||||
|
|
|
@ -31,13 +31,13 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class AdvisorCustomerInventoryListPage : IDisposable
|
public partial class AdvisorCustomerInventoryListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
[Inject] private IAdvisorCustomerRepository CustomerREpo { get; set; }
|
[Inject] public IAdvisorCustomerRepository CustomerREpo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
[Inject] private ILogger<AdvisorCustomerInventoryListPage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorCustomerInventoryListPage> Logger { get; set; }
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private ICountryCatalogRepository CatalogRepo { get; set; }
|
[Inject] public ICountryCatalogRepository CatalogRepo { get; set; }
|
||||||
|
|
||||||
[CascadingParameter] public DraftStateProvider DraftStateProvider { get; set; } = new();
|
[CascadingParameter] public DraftStateProvider DraftStateProvider { get; set; } = new();
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
|
|
|
@ -30,12 +30,12 @@ namespace Wonky.Client.Pages;
|
||||||
public partial class AdvisorCustomerInvoiceListPage : IDisposable
|
public partial class AdvisorCustomerInvoiceListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Inject] private IAdvisorCustomerRepository CompanyRepo { get; set; }
|
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private ILogger<AdvisorCustomerInvoiceListPage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorCustomerInvoiceListPage> Logger { get; set; }
|
||||||
private InvoiceListView CompanyInvoices { get; set; } = new();
|
private InvoiceListView CompanyInvoices { get; set; } = new();
|
||||||
private CompanyDto Company { get; set; } = new();
|
private CompanyDto Company { get; set; } = new();
|
||||||
private CustomerInvoiceViewOverlay CustomerInvoiceView { get; set; } = new();
|
private CustomerInvoiceViewOverlay CustomerInvoiceView { get; set; } = new();
|
||||||
|
|
|
@ -28,12 +28,12 @@ namespace Wonky.Client.Pages
|
||||||
{
|
{
|
||||||
public partial class AdvisorCustomerListPage : IDisposable
|
public partial class AdvisorCustomerListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Inject] private IAdvisorCustomerRepository CompanyRepo { get; set; }
|
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private UserInfoService UserInfoService { get; set; }
|
[Inject] public IUserInfoService UserInfoService { get; set; }
|
||||||
|
|
||||||
private List<CompanyDto> CompanyList { get; set; } = new();
|
private List<CompanyDto> CompanyList { get; set; } = new();
|
||||||
private UserProfile Profiles { get; set; } = new();
|
private UserProfile Profiles { get; set; } = new();
|
||||||
|
@ -55,7 +55,7 @@ namespace Wonky.Client.Pages
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
// set preferences
|
// set preferences
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
XUserInfo = await UserInfoService.GetUserInfo();
|
XUserInfo = await UserInfoService.GetUserInfo();
|
||||||
Paging.OrderBy = Profiles.CompanySort;
|
Paging.OrderBy = Profiles.CompanySort;
|
||||||
Paging.SearchColumn = Profiles.CompanySearch;
|
Paging.SearchColumn = Profiles.CompanySearch;
|
||||||
|
|
|
@ -36,16 +36,16 @@ namespace Wonky.Client.Pages;
|
||||||
public partial class AdvisorCustomerViewPage : IDisposable
|
public partial class AdvisorCustomerViewPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
[Inject] private ILogger<AdvisorCustomerViewPage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorCustomerViewPage> Logger { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private IAdvisorCustomerRepository CompanyRepo { get; set; }
|
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||||
[Inject] private IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
[Inject] private IAdvisorContactRepository AdvisorContactRepo { get; set; }
|
[Inject] public IAdvisorContactRepository AdvisorContactRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private VatInfoLookupService VatService { get; set; }
|
[Inject] public VatInfoLookupService VatService { get; set; }
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private UserInfoService UserInfoService { get; set; }
|
[Inject] public IUserInfoService UserInfoService { get; set; }
|
||||||
|
|
||||||
private readonly JsonSerializerOptions _options = new () { PropertyNameCaseInsensitive = true };
|
private readonly JsonSerializerOptions _options = new () { PropertyNameCaseInsensitive = true };
|
||||||
private CompanyDto Company { get; set; } = new();
|
private CompanyDto Company { get; set; } = new();
|
||||||
|
|
|
@ -28,11 +28,11 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class AdvisorQuoteListPage : IDisposable
|
public partial class AdvisorQuoteListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ILogger<AdvisorQuoteListPage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorQuoteListPage> Logger { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
private List<ReportItemView> QuoteList { get; set; } = new();
|
private List<ReportItemView> QuoteList { get; set; } = new();
|
||||||
private List<ReportItemView> FilteredQuotes { get; set; } = new();
|
private List<ReportItemView> FilteredQuotes { get; set; } = new();
|
||||||
private bool Working { get; set; }
|
private bool Working { get; set; }
|
||||||
|
|
|
@ -31,13 +31,13 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class AdvisorReportCreatePage : IDisposable
|
public partial class AdvisorReportCreatePage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Inject] private IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||||
[Inject] private IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
[Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private ILogger<AdvisorReportCreatePage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorReportCreatePage> Logger { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
private EditContext ReportContext { get; set; }
|
private EditContext ReportContext { get; set; }
|
||||||
private ReportDto Report { get; set; } = new();
|
private ReportDto Report { get; set; } = new();
|
||||||
private List<ReportItemView> Activities { get; set; } = new();
|
private List<ReportItemView> Activities { get; set; } = new();
|
||||||
|
@ -70,7 +70,7 @@ public partial class AdvisorReportCreatePage : IDisposable
|
||||||
ReportContext.OnValidationStateChanged += ValidationChanged;
|
ReportContext.OnValidationStateChanged += ValidationChanged;
|
||||||
|
|
||||||
ProfileService.OnChange += ProfileServiceOnOnChange;
|
ProfileService.OnChange += ProfileServiceOnOnChange;
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
Logger.LogDebug("{}", JsonSerializer.Serialize(Profiles));
|
Logger.LogDebug("{}", JsonSerializer.Serialize(Profiles));
|
||||||
|
|
||||||
WorkDate = Profiles.WorkDate;
|
WorkDate = Profiles.WorkDate;
|
||||||
|
|
|
@ -24,10 +24,10 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class AdvisorReportListPage : IDisposable
|
public partial class AdvisorReportListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
[Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private ILogger<AdvisorReportListPage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorReportListPage> Logger { get; set; }
|
||||||
|
|
||||||
private List<SalesReportListView> ReportList { get; set; } = new();
|
private List<SalesReportListView> ReportList { get; set; } = new();
|
||||||
private bool Working { get; set; }
|
private bool Working { get; set; }
|
||||||
|
|
|
@ -29,13 +29,13 @@ namespace Wonky.Client.Pages;
|
||||||
public partial class AdvisorReportViewPage : IDisposable
|
public partial class AdvisorReportViewPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string ReportDate { get; set; }
|
[Parameter] public string ReportDate { get; set; }
|
||||||
[Inject] private IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
[Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ILogger<AdvisorReportViewPage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorReportViewPage> Logger { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Inject] private UserInfoService UserInfoService { get; set; }
|
[Inject] public IUserInfoService UserInfoService { get; set; }
|
||||||
|
|
||||||
private UserProfile Profiles { get; set; } = new();
|
private UserProfile Profiles { get; set; } = new();
|
||||||
private ReportView Report { get; set; } = new();
|
private ReportView Report { get; set; } = new();
|
||||||
|
|
|
@ -26,12 +26,12 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class AdvisorTaskItemListCrmPage : IDisposable
|
public partial class AdvisorTaskItemListCrmPage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private UserProfileService UserProfileService { get; set; }
|
[Inject] public UserProfileService UserProfileService { get; set; }
|
||||||
[Inject] private ILogger<AdvisorTaskItemListCrmPage> Logger { get; set; }
|
[Inject] public ILogger<AdvisorTaskItemListCrmPage> Logger { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private IAdvisorTaskItemRepository TaskRepo { get; set; }
|
[Inject] public IAdvisorTaskItemRepository TaskRepo { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
private UserProfile Profile { get; set; } = new();
|
private UserProfile Profile { get; set; } = new();
|
||||||
private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
|
private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public partial class AdvisorTaskItemListCrmPage : IDisposable
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
Profile = await UserProfileService.GetPreferences();
|
Profile = await UserProfileService.GetProfile();
|
||||||
if(!string.IsNullOrWhiteSpace(Profile.WorkDate))
|
if(!string.IsNullOrWhiteSpace(Profile.WorkDate))
|
||||||
WorkDate = Profile.WorkDate;
|
WorkDate = Profile.WorkDate;
|
||||||
|
|
||||||
|
|
|
@ -27,8 +27,8 @@ namespace Wonky.Client.Pages;
|
||||||
public partial class AdvisorTaskItemViewCrmPage : IDisposable
|
public partial class AdvisorTaskItemViewCrmPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string TaskItemId { get; set; }
|
[Parameter] public string TaskItemId { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private IAdvisorTaskItemRepository TaskRepo { get; set; }
|
[Inject] public IAdvisorTaskItemRepository TaskRepo { get; set; }
|
||||||
private TaskItemDto TaskItem { get; set; } = new ();
|
private TaskItemDto TaskItem { get; set; } = new ();
|
||||||
private EditContext TaskContext { get; set; }
|
private EditContext TaskContext { get; set; }
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
|
@ -26,8 +26,8 @@ public partial class AdvisorWorkplaceDocumentListPage
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string WorkplaceId { get; set; } = "";
|
[Parameter] public string WorkplaceId { get; set; } = "";
|
||||||
|
|
||||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
[Inject] public HttpInterceptorService _interceptor { get; set; }
|
||||||
[Inject] private IAdvisorWorkplaceRepository Workplaces { get; set; }
|
[Inject] public IAdvisorWorkplaceRepository Workplaces { get; set; }
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
||||||
}
|
}
|
|
@ -26,9 +26,9 @@ namespace Wonky.Client.Pages;
|
||||||
public partial class AdvisorWorkplaceListPage : IDisposable
|
public partial class AdvisorWorkplaceListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Inject] private IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
|
[Inject] public IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
|
||||||
[Inject] private IAdvisorCustomerRepository CustomerRepo { get; set; }
|
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
private List<WorkplaceListView> WorkplaceList { get; set; } = new();
|
private List<WorkplaceListView> WorkplaceList { get; set; } = new();
|
||||||
private CompanyDto Company { get; set; } = new();
|
private CompanyDto Company { get; set; } = new();
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
|
@ -27,10 +27,10 @@ public partial class AdvisorWorkplaceViewPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string WorkplaceId { get; set; } = "";
|
[Parameter] public string WorkplaceId { get; set; } = "";
|
||||||
[Inject] private IAdvisorWorkplaceRepository Workplaces { get; set; }
|
[Inject] public IAdvisorWorkplaceRepository Workplaces { get; set; }
|
||||||
[Inject] private IAdvisorCustomerRepository CustomerRepo { get; set; }
|
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
private WorkplaceDto Workplace { get; set; } = new();
|
private WorkplaceDto Workplace { get; set; } = new();
|
||||||
private EditContext WorkplaceContext { get; set; }
|
private EditContext WorkplaceContext { get; set; }
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
|
@ -31,13 +31,13 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class CatalogCountryPage : IDisposable
|
public partial class CatalogCountryPage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private ICountryCatalogRepository Catalog { get; set; }
|
[Inject] public ICountryCatalogRepository Catalog { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Inject] private ILogger<CatalogCountryPage> Logger { get; set; }
|
[Inject] public ILogger<CatalogCountryPage> Logger { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private UserInfoService UserInfoService { get; set; }
|
[Inject] public IUserInfoService UserInfoService { get; set; }
|
||||||
|
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ public partial class CatalogCountryPage : IDisposable
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
XUserInfo = await UserInfoService.GetUserInfo();
|
XUserInfo = await UserInfoService.GetUserInfo();
|
||||||
|
|
||||||
Pager.OrderBy = Profiles.ItemSort;
|
Pager.OrderBy = Profiles.ItemSort;
|
||||||
|
|
|
@ -26,9 +26,9 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class CatalogCountryPrintPage : IDisposable
|
public partial class CatalogCountryPrintPage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private ICountryCatalogRepository Catalog { get; set; }
|
[Inject] public ICountryCatalogRepository Catalog { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
private List<SalesItemView> Items { get; set; } = new();
|
private List<SalesItemView> Items { get; set; } = new();
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class ErrorPage404
|
public partial class ErrorPage404
|
||||||
{
|
{
|
||||||
[Inject] private NavigationManager NavigationManager { get; set; }
|
[Inject] public NavigationManager NavigationManager { get; set; }
|
||||||
|
|
||||||
private void NavigateToHome()
|
private void NavigateToHome()
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,9 +23,9 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class Login
|
public partial class Login
|
||||||
{
|
{
|
||||||
[Inject] private NavigationManager NavigationManager { get; set; }
|
[Inject] public NavigationManager NavigationManager { get; set; }
|
||||||
[Inject] private IAuthenticationService AuthenticationService { get; set; }
|
[Inject] public IAuthenticationService AuthenticationService { get; set; }
|
||||||
[Inject] private ILogger<Login> Logger { get; set; }
|
[Inject] public ILogger<Login> Logger { get; set; }
|
||||||
[Parameter] public string ReturnUrl { get; set; } = "";
|
[Parameter] public string ReturnUrl { get; set; } = "";
|
||||||
private CredentialDto CredentialDto { get; set; } = new ();
|
private CredentialDto CredentialDto { get; set; } = new ();
|
||||||
private bool ShowAuthError { get; set; }
|
private bool ShowAuthError { get; set; }
|
||||||
|
|
|
@ -23,8 +23,8 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class Logout
|
public partial class Logout
|
||||||
{
|
{
|
||||||
[Inject] private IAuthenticationService AuthenticationService { get; set; }
|
[Inject] public IAuthenticationService AuthenticationService { get; set; }
|
||||||
[Inject] private NavigationManager NavigationManager { get; set; }
|
[Inject] public NavigationManager NavigationManager { get; set; }
|
||||||
[Inject] private ILocalStorageService LocalStorage { get; set; }
|
[Inject] private ILocalStorageService LocalStorage { get; set; }
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
|
|
|
@ -34,15 +34,15 @@ public partial class OfficeAdvisorReportViewPage : IDisposable
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[Parameter] public string UserId { get; set; } = "";
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
[Parameter] public string ReportDate { get; set; } = "";
|
[Parameter] public string ReportDate { get; set; } = "";
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ICountryReportRepository ReportRepo { get; set; }
|
[Inject] public ICountryReportRepository ReportRepo { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private ILogger<OfficeAdvisorReportViewPage> Logger { get; set; }
|
[Inject] public ILogger<OfficeAdvisorReportViewPage> Logger { get; set; }
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Inject] private IJSRuntime JsRuntime { get; set; }
|
[Inject] public IJSRuntime JsRuntime { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
[Inject] private IOrderProcessRepository ProcessRepo { get; set; }
|
[Inject] public IOrderProcessRepository ProcessRepo { get; set; }
|
||||||
private IJSObjectReference JsModule { get; set; }
|
private IJSObjectReference JsModule { get; set; }
|
||||||
private ReportView Report { get; set; } = new();
|
private ReportView Report { get; set; } = new();
|
||||||
private List<ReportItemView> Activities { get; set; } = new();
|
private List<ReportItemView> Activities { get; set; } = new();
|
||||||
|
|
|
@ -29,12 +29,12 @@ namespace Wonky.Client.Pages
|
||||||
public partial class OfficeCountryCustomerListPage : IDisposable
|
public partial class OfficeCountryCustomerListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private UserProfileService ProfileService { get; set; }
|
[Inject] public UserProfileService ProfileService { get; set; }
|
||||||
[Inject] private ICountryCustomerRepository CustomerRepo { get; set; }
|
[Inject] public ICountryCustomerRepository CustomerRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private UserInfoService UserInfoService { get; set; }
|
[Inject] public IUserInfoService UserInfoService { get; set; }
|
||||||
|
|
||||||
private List<CompanyDto> Companies { get; set; } = new();
|
private List<CompanyDto> Companies { get; set; } = new();
|
||||||
private UserProfile Profiles { get; set; } = new();
|
private UserProfile Profiles { get; set; } = new();
|
||||||
|
@ -54,7 +54,7 @@ namespace Wonky.Client.Pages
|
||||||
Interceptor.RegisterBeforeSendEvent();
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
|
|
||||||
// set preferences
|
// set preferences
|
||||||
Profiles = await ProfileService.GetPreferences();
|
Profiles = await ProfileService.GetProfile();
|
||||||
XUserInfo = await UserInfoService.GetUserInfo();
|
XUserInfo = await UserInfoService.GetUserInfo();
|
||||||
Paging.OrderBy = Profiles.CompanySort;
|
Paging.OrderBy = Profiles.CompanySort;
|
||||||
Paging.SearchColumn = Profiles.CompanySearch;
|
Paging.SearchColumn = Profiles.CompanySearch;
|
||||||
|
|
|
@ -31,13 +31,13 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class OfficeOrderCreatePage : IDisposable
|
public partial class OfficeOrderCreatePage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private ILogger<OfficeOrderCreatePage> Logger { get; set; }
|
[Inject] public ILogger<OfficeOrderCreatePage> Logger { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ICountryCustomerRepository CustomerRepo { get; set; }
|
[Inject] public ICountryCustomerRepository CustomerRepo { get; set; }
|
||||||
[Inject] private ICountryCustomerHistoryRepository InventoryRepo { get; set; }
|
[Inject] public ICountryCustomerHistoryRepository InventoryRepo { get; set; }
|
||||||
[Inject] private ICountryReportRepository ReportRepo { get; set; }
|
[Inject] public ICountryReportRepository ReportRepo { get; set; }
|
||||||
[Inject] private ISystemUserRepository UserRepo { get; set; }
|
[Inject] public ISystemUserRepository UserRepo { get; set; }
|
||||||
[Inject] private ICountryCatalogRepository Catalog { get; set; }
|
[Inject] public ICountryCatalogRepository Catalog { get; set; }
|
||||||
// parameters
|
// parameters
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
|
|
|
@ -32,14 +32,14 @@ public partial class OfficeOrderViewPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string OrderId { get; set; } = "";
|
[Parameter] public string OrderId { get; set; } = "";
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||||
[Inject] private ISystemSendMailService MailService { get; set; }
|
[Inject] public ISystemSendMailService MailService { get; set; }
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private ISystemUserRepository SystemUserRepo { get; set; }
|
[Inject] public ISystemUserRepository SystemUserRepo { get; set; }
|
||||||
[Inject] private ILogger<OfficeOrderViewPage> Logger { get; set; }
|
[Inject] public ILogger<OfficeOrderViewPage> Logger { get; set; }
|
||||||
[Inject] private IToastService Toast { get; set; }
|
[Inject] public IToastService Toast { get; set; }
|
||||||
[Inject] private UserInfoService UserInfoService { get; set; }
|
[Inject] public IUserInfoService UserInfoService { get; set; }
|
||||||
|
|
||||||
private ReportItemView ReportItem { get; set; } = new();
|
private ReportItemView ReportItem { get; set; } = new();
|
||||||
private bool IsNotified { get; set; }
|
private bool IsNotified { get; set; }
|
||||||
|
|
|
@ -27,10 +27,10 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class OfficeUserAdvisorCustomerListPage : IDisposable
|
public partial class OfficeUserAdvisorCustomerListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ICountryCustomerRepository CustomerRepo { get; set; }
|
[Inject] public ICountryCustomerRepository CustomerRepo { get; set; }
|
||||||
[Inject] private UserProfileService UserProfileService { get; set; }
|
[Inject] public UserProfileService UserProfileService { get; set; }
|
||||||
[Inject] private ISystemUserRepository UserRepo { get; set; }
|
[Inject] public ISystemUserRepository UserRepo { get; set; }
|
||||||
|
|
||||||
[Parameter] public string UserId { get; set; } = "";
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
[Parameter] public string CountryCode { get; set; } = "dk";
|
[Parameter] public string CountryCode { get; set; } = "dk";
|
||||||
|
@ -52,7 +52,7 @@ public partial class OfficeUserAdvisorCustomerListPage : IDisposable
|
||||||
SalesRep = await UserRepo.GetUserInfo(UserId);
|
SalesRep = await UserRepo.GetUserInfo(UserId);
|
||||||
|
|
||||||
// set preferences
|
// set preferences
|
||||||
UserProfile = await UserProfileService.GetPreferences();
|
UserProfile = await UserProfileService.GetProfile();
|
||||||
Paging.OrderBy = UserProfile.CompanySort;
|
Paging.OrderBy = UserProfile.CompanySort;
|
||||||
Paging.SearchColumn = UserProfile.CompanySearch;
|
Paging.SearchColumn = UserProfile.CompanySearch;
|
||||||
Paging.PageSize = Convert.ToInt32(UserProfile.PageSize);
|
Paging.PageSize = Convert.ToInt32(UserProfile.PageSize);
|
||||||
|
|
|
@ -25,8 +25,8 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class OfficeUserAdvisorListPage :IDisposable
|
public partial class OfficeUserAdvisorListPage :IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ISystemUserRepository SystemUserRepo { get; set; }
|
[Inject] public ISystemUserRepository SystemUserRepo { get; set; }
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
private List<UserManagerListView> SalesReps { get; set; } = new();
|
private List<UserManagerListView> SalesReps { get; set; } = new();
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
|
@ -27,10 +27,10 @@ public partial class OfficeUserAdvisorReportListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string UserId { get; set; } = "";
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[Inject] private ICountryReportRepository ReportRepo { get; set; }
|
[Inject] public ICountryReportRepository ReportRepo { get; set; }
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ISystemUserRepository SystemUserRepo { get; set; }
|
[Inject] public ISystemUserRepository SystemUserRepo { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
private List<SalesReportListView> ActivityReports { get; set; } = new();
|
private List<SalesReportListView> ActivityReports { get; set; } = new();
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
private UserManagerEditView UserInfo { get; set; } = new();
|
private UserManagerEditView UserInfo { get; set; } = new();
|
||||||
|
|
|
@ -32,12 +32,12 @@ public partial class ReportPrintOrderPage
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[Parameter] public string UserId { get; set; } = "";
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
[Parameter] public string ReportDate { get; set; } = "";
|
[Parameter] public string ReportDate { get; set; } = "";
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private IOrderProcessRepository ProcessRepo { get; set; }
|
[Inject] public IOrderProcessRepository ProcessRepo { get; set; }
|
||||||
[Inject] private IJSRuntime JsRuntime { get; set; }
|
[Inject] public IJSRuntime JsRuntime { get; set; }
|
||||||
[Inject] private ILogger<ReportPrintOrderPage> Logger { get; set; }
|
[Inject] public ILogger<ReportPrintOrderPage> Logger { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
private ReportView Report { get; set; } = new();
|
private ReportView Report { get; set; } = new();
|
||||||
private List<ReportItemView> Items { get; set; } = new();
|
private List<ReportItemView> Items { get; set; } = new();
|
||||||
private IJSObjectReference JsModule { get; set; }
|
private IJSObjectReference JsModule { get; set; }
|
||||||
|
|
|
@ -28,10 +28,10 @@ public partial class ReportPrintSummaryPage
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[Parameter] public string UserId { get; set; } = "";
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
[Parameter] public string ReportDate { get; set; } = "";
|
[Parameter] public string ReportDate { get; set; } = "";
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private IJSRuntime JsRuntime { get; set; }
|
[Inject] public IJSRuntime JsRuntime { get; set; }
|
||||||
[Inject] private ILogger<ReportPrintSummaryPage> Logger { get; set; }
|
[Inject] public ILogger<ReportPrintSummaryPage> Logger { get; set; }
|
||||||
private ReportView Report { get; set; } = new();
|
private ReportView Report { get; set; } = new();
|
||||||
private IJSObjectReference JsModule { get; set; }
|
private IJSObjectReference JsModule { get; set; }
|
||||||
private string ReturnUrl { get; set; } = "";
|
private string ReturnUrl { get; set; } = "";
|
||||||
|
|
|
@ -31,11 +31,11 @@ public partial class SystemUserViewEditPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string UserId { get; set; } = "";
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] public ISystemUserRepository UserRepo { get; set; }
|
[Inject] public ISystemUserRepository UserRepo { get; set; }
|
||||||
// [Inject] public ILogger<SystemUserViewEditPage> Logger { get; set; }
|
// [Inject] public ILogger<SystemUserViewEditPage> Logger { get; set; }
|
||||||
// [Inject] public NavigationManager Navigator { get; set; }
|
// [Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
private UserManagerEditView UserInfo { get; set; } = new();
|
private UserManagerEditView UserInfo { get; set; } = new();
|
||||||
private EditContext UserEditContext { get; set; }
|
private EditContext UserEditContext { get; set; }
|
||||||
private ResetPasswordDto Passwords { get; set; } = new();
|
private ResetPasswordDto Passwords { get; set; } = new();
|
||||||
|
|
|
@ -29,9 +29,9 @@ public partial class WarehouseOrderListPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string Status { get; set; } = "none";
|
[Parameter] public string Status { get; set; } = "none";
|
||||||
|
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private IOrderProcessRepository OrderProcessRepo { get; set; }
|
[Inject] public IOrderProcessRepository OrderProcessRepo { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
|
|
||||||
private List<WarehouseOrderView> OrderList { get; set; } = new();
|
private List<WarehouseOrderView> OrderList { get; set; } = new();
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
|
@ -28,11 +28,11 @@ namespace Wonky.Client.Pages;
|
||||||
public partial class WarehouseOrderViewPage : IDisposable
|
public partial class WarehouseOrderViewPage : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string OrderId { get; set; } = "";
|
[Parameter] public string OrderId { get; set; } = "";
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private IOrderProcessRepository OrderProcessRepo { get; set; }
|
[Inject] public IOrderProcessRepository OrderProcessRepo { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] private IToastService Toast { get; set; }
|
[Inject] public IToastService Toast { get; set; }
|
||||||
[Inject] private ILogger<WarehouseOrderViewPage> Logger { get; set; }
|
[Inject] public ILogger<WarehouseOrderViewPage> Logger { get; set; }
|
||||||
|
|
||||||
private WarehouseOrderView Order { get; set; } = new();
|
private WarehouseOrderView Order { get; set; } = new();
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
|
@ -54,6 +54,9 @@ builder.Services.AddHttpClientInterceptor();
|
||||||
builder.Services.Configure<ApiConfig>(builder.Configuration.GetSection("ApiConfig"));
|
builder.Services.Configure<ApiConfig>(builder.Configuration.GetSection("ApiConfig"));
|
||||||
// app info object
|
// app info object
|
||||||
builder.Services.Configure<AppInfo>(builder.Configuration.GetSection("AppInfo"));
|
builder.Services.Configure<AppInfo>(builder.Configuration.GetSection("AppInfo"));
|
||||||
|
// user
|
||||||
|
builder.Services.AddScoped<IUserInfoService, UserInfoService>();
|
||||||
|
builder.Services.AddScoped<UserProfileService, UserProfileService>();
|
||||||
// crm repositories
|
// crm repositories
|
||||||
builder.Services.AddScoped<IAdvisorActivityRepository, AdvisorActivityRepository>();
|
builder.Services.AddScoped<IAdvisorActivityRepository, AdvisorActivityRepository>();
|
||||||
builder.Services.AddScoped<IAdvisorCustomerRepository, AdvisorCustomerRepository>();
|
builder.Services.AddScoped<IAdvisorCustomerRepository, AdvisorCustomerRepository>();
|
||||||
|
@ -75,7 +78,6 @@ builder.Services.AddScoped<IOrderProcessRepository, OrderProcessRepository>();
|
||||||
builder.Services.AddScoped<ISystemSendMailService, SystemSendMailService>();
|
builder.Services.AddScoped<ISystemSendMailService, SystemSendMailService>();
|
||||||
// interceptor
|
// interceptor
|
||||||
builder.Services.AddScoped<HttpInterceptorService>();
|
builder.Services.AddScoped<HttpInterceptorService>();
|
||||||
builder.Services.AddScoped<UserInfoService>();
|
|
||||||
// storage
|
// storage
|
||||||
builder.Services.AddBlazoredLocalStorage();
|
builder.Services.AddBlazoredLocalStorage();
|
||||||
// authorization
|
// authorization
|
||||||
|
@ -88,8 +90,6 @@ builder.Services.AddScoped<IAuthenticationService, AuthenticationService>();
|
||||||
builder.Services.AddScoped<RefreshTokenService>();
|
builder.Services.AddScoped<RefreshTokenService>();
|
||||||
// vat registry service
|
// vat registry service
|
||||||
builder.Services.AddScoped<VatInfoLookupService>();
|
builder.Services.AddScoped<VatInfoLookupService>();
|
||||||
// preference service
|
|
||||||
builder.Services.AddScoped<UserProfileService>();
|
|
||||||
// activity draft service
|
// activity draft service
|
||||||
builder.Services.AddScoped<OrderDraftService>();
|
builder.Services.AddScoped<OrderDraftService>();
|
||||||
|
|
||||||
|
|
|
@ -31,23 +31,29 @@ namespace Wonky.Client.Services
|
||||||
private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true };
|
private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true };
|
||||||
private readonly HttpClient _client;
|
private readonly HttpClient _client;
|
||||||
private readonly AuthenticationStateProvider _authStateProvider;
|
private readonly AuthenticationStateProvider _authStateProvider;
|
||||||
private readonly ILocalStorageService _localStorage;
|
|
||||||
private readonly IOptions<ApiConfig> _apiConfig;
|
private readonly IOptions<ApiConfig> _apiConfig;
|
||||||
private readonly ILogger<AuthenticationService> _logger;
|
private readonly ILogger<AuthenticationService> _logger;
|
||||||
|
private readonly IUserInfoService _infoService;
|
||||||
|
private readonly UserProfileService _profile;
|
||||||
|
private readonly ILocalStorageService _localStorage;
|
||||||
|
|
||||||
public AuthenticationService(
|
public AuthenticationService(
|
||||||
HttpClient client,
|
HttpClient client,
|
||||||
AuthenticationStateProvider authStateProvider,
|
AuthenticationStateProvider authStateProvider,
|
||||||
ILocalStorageService localStorage,
|
|
||||||
IOptions<ApiConfig> apiConfig,
|
IOptions<ApiConfig> apiConfig,
|
||||||
ILogger<AuthenticationService> logger
|
ILogger<AuthenticationService> logger,
|
||||||
|
IUserInfoService infoService,
|
||||||
|
UserProfileService profile,
|
||||||
|
ILocalStorageService localStorage
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
_client = client;
|
_client = client;
|
||||||
_authStateProvider = authStateProvider;
|
_authStateProvider = authStateProvider;
|
||||||
_localStorage = localStorage;
|
|
||||||
_apiConfig = apiConfig;
|
_apiConfig = apiConfig;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
_infoService = infoService;
|
||||||
|
_profile = profile;
|
||||||
|
_localStorage = localStorage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<AuthResponseView> Login(CredentialDto credentials)
|
public async Task<AuthResponseView> Login(CredentialDto credentials)
|
||||||
|
@ -70,19 +76,18 @@ namespace Wonky.Client.Services
|
||||||
IsSuccess = false, ErrorMessage = $"Kontroller indtastning"
|
IsSuccess = false, ErrorMessage = $"Kontroller indtastning"
|
||||||
};
|
};
|
||||||
|
|
||||||
_logger.LogDebug("response {}", resContent);
|
|
||||||
|
|
||||||
// process response content
|
// process response content
|
||||||
var data = JsonSerializer.Deserialize<AuthResponseView>(resContent, _options);
|
var data = JsonSerializer.Deserialize<AuthResponseView>(resContent, _options);
|
||||||
await _localStorage.SetItemAsync("_xa", data.AccessToken);
|
|
||||||
await _localStorage.SetItemAsync("_xr", data.RefreshToken);
|
await _infoService.SetAccessToken(data.AccessToken);
|
||||||
await _localStorage.SetItemAsync("_xe", (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds + data.ExpiresIn - 60);
|
await _infoService.SetRefreshToken(data.RefreshToken);
|
||||||
|
await _infoService.SetExpiration((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds + data.ExpiresIn - 60);
|
||||||
|
|
||||||
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", data.AccessToken);
|
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", data.AccessToken);
|
||||||
|
|
||||||
var userInfo = await UserInfo();
|
var userInfo = await UserInfo();
|
||||||
|
|
||||||
await _localStorage.SetItemAsync("_xu", userInfo);
|
await _infoService.SetUserInfo(userInfo);
|
||||||
|
|
||||||
// notify system on state change
|
// notify system on state change
|
||||||
((AuthStateProvider)_authStateProvider).NotifyUserAuthenticationAsync(data.AccessToken);
|
((AuthStateProvider)_authStateProvider).NotifyUserAuthenticationAsync(data.AccessToken);
|
||||||
|
@ -92,7 +97,7 @@ namespace Wonky.Client.Services
|
||||||
|
|
||||||
public async Task<string> RefreshToken()
|
public async Task<string> RefreshToken()
|
||||||
{
|
{
|
||||||
var refreshToken = await _localStorage.GetItemAsync<string>("_xr");
|
var refreshToken = await _infoService.GetRefreshToken();
|
||||||
var credentials = new Dictionary<string, string>
|
var credentials = new Dictionary<string, string>
|
||||||
{
|
{
|
||||||
["grant_type"] = "refresh_token",
|
["grant_type"] = "refresh_token",
|
||||||
|
@ -110,38 +115,30 @@ namespace Wonky.Client.Services
|
||||||
|
|
||||||
// set default request headers using access_token
|
// set default request headers using access_token
|
||||||
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", data.AccessToken);
|
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", data.AccessToken);
|
||||||
await _localStorage.SetItemAsync("_xa", data.AccessToken);
|
await _infoService.SetAccessToken(data.AccessToken);
|
||||||
await _localStorage.SetItemAsync("_xr", data.RefreshToken);
|
await _infoService.SetRefreshToken(data.RefreshToken);
|
||||||
await _localStorage.SetItemAsync("_xe", (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds + data.ExpiresIn - 60);
|
await _infoService.SetExpiration((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds + data.ExpiresIn - 60);
|
||||||
return data.AccessToken;
|
return data.AccessToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task Logout()
|
public async Task Logout()
|
||||||
{
|
{
|
||||||
// create a backup copy of user profile
|
var profileBackup = await _profile.GetProfile();
|
||||||
var profileBackup = await _localStorage.GetItemAsync<UserProfile>("preferences");
|
Task.Delay(150);
|
||||||
// clear storage
|
|
||||||
await _localStorage.ClearAsync();
|
await _localStorage.ClearAsync();
|
||||||
// write profile back
|
Task.Delay(150);
|
||||||
await _localStorage.SetItemAsync("preferences", profileBackup);
|
await _profile.SetProfile(profileBackup);
|
||||||
// remove authentication headers
|
|
||||||
_client.DefaultRequestHeaders.Authorization = null;
|
_client.DefaultRequestHeaders.Authorization = null;
|
||||||
// notify logout
|
|
||||||
((AuthStateProvider)_authStateProvider).NotifyUserLogout();
|
((AuthStateProvider)_authStateProvider).NotifyUserLogout();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<UserManagerEditView> UserInfo(bool write = false)
|
public async Task<UserManagerEditView> UserInfo(bool write = false)
|
||||||
{
|
{
|
||||||
_logger.LogDebug("sending userinfo request");
|
|
||||||
var response = await _client.GetAsync(_apiConfig.Value.UserInfo).ConfigureAwait(true);
|
var response = await _client.GetAsync(_apiConfig.Value.UserInfo).ConfigureAwait(true);
|
||||||
|
|
||||||
var content = await response.Content.ReadAsStringAsync();
|
var content = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
_logger.LogDebug("UserInfo <= {}", content);
|
|
||||||
|
|
||||||
var userInfo = JsonSerializer.Deserialize<UserManagerEditView>(content, _options);
|
var userInfo = JsonSerializer.Deserialize<UserManagerEditView>(content, _options);
|
||||||
if(write)
|
if(write)
|
||||||
await _localStorage.SetItemAsync("_xui", userInfo);
|
await _infoService.SetUserInfo(userInfo);
|
||||||
return userInfo ?? new UserManagerEditView();
|
return userInfo ?? new UserManagerEditView();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
15
Wonky.Client/Services/IUserInfoService.cs
Normal file
15
Wonky.Client/Services/IUserInfoService.cs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
using Wonky.Entity.DTO;
|
||||||
|
|
||||||
|
namespace Wonky.Client.Services;
|
||||||
|
|
||||||
|
public interface IUserInfoService
|
||||||
|
{
|
||||||
|
Task<UserManagerEditView> GetUserInfo();
|
||||||
|
Task SetUserInfo(UserManagerEditView userInfo);
|
||||||
|
Task<string> GetRefreshToken();
|
||||||
|
Task SetRefreshToken(string token);
|
||||||
|
Task<string> GetAccessToken();
|
||||||
|
Task SetAccessToken(string token);
|
||||||
|
Task<long> GetExpiration();
|
||||||
|
Task SetExpiration(long expiration);
|
||||||
|
}
|
|
@ -1,14 +1,62 @@
|
||||||
|
using System.Security.Cryptography.Xml;
|
||||||
|
using System.Text.Json;
|
||||||
using Blazored.LocalStorage;
|
using Blazored.LocalStorage;
|
||||||
using Wonky.Entity.DTO;
|
using Wonky.Entity.DTO;
|
||||||
|
|
||||||
namespace Wonky.Client.Services;
|
namespace Wonky.Client.Services;
|
||||||
|
|
||||||
public class UserInfoService
|
public class UserInfoService : IUserInfoService
|
||||||
{
|
{
|
||||||
|
private const string _infoKey = "_xui";
|
||||||
|
private const string _refreshKey = "_xr";
|
||||||
|
private const string _accessKey = "_xa";
|
||||||
|
private const string _expiryKey = "_xe";
|
||||||
|
|
||||||
private readonly ILocalStorageService _localStorageService;
|
private readonly ILocalStorageService _localStorageService;
|
||||||
|
private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true };
|
||||||
|
|
||||||
|
public UserInfoService(ILocalStorageService localStorageService)
|
||||||
|
{
|
||||||
|
_localStorageService = localStorageService;
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<UserManagerEditView> GetUserInfo()
|
public async Task<UserManagerEditView> GetUserInfo()
|
||||||
{
|
{
|
||||||
return await _localStorageService.GetItemAsync<UserManagerEditView>("_xui");
|
return await _localStorageService.GetItemAsync<UserManagerEditView>(_infoKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task SetUserInfo(UserManagerEditView userInfo)
|
||||||
|
{
|
||||||
|
await _localStorageService.SetItemAsync(_infoKey, userInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string> GetRefreshToken()
|
||||||
|
{
|
||||||
|
return await _localStorageService.GetItemAsStringAsync(_refreshKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task SetRefreshToken(string token)
|
||||||
|
{
|
||||||
|
await _localStorageService.SetItemAsStringAsync(_refreshKey, token);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string> GetAccessToken()
|
||||||
|
{
|
||||||
|
return await _localStorageService.GetItemAsStringAsync(_accessKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task SetAccessToken(string token)
|
||||||
|
{
|
||||||
|
await _localStorageService.SetItemAsStringAsync(_accessKey, token);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<long> GetExpiration()
|
||||||
|
{
|
||||||
|
return await _localStorageService.GetItemAsync<long>(_expiryKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task SetExpiration(long expiration)
|
||||||
|
{
|
||||||
|
await _localStorageService.SetItemAsync(_expiryKey, expiration);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -35,6 +35,7 @@ public class UserProfileService
|
||||||
private readonly ILocalStorageService _localStorageService;
|
private readonly ILocalStorageService _localStorageService;
|
||||||
private const string KeyName = "preferences";
|
private const string KeyName = "preferences";
|
||||||
public event Action<UserProfile>? OnChange;
|
public event Action<UserProfile>? OnChange;
|
||||||
|
|
||||||
public UserProfileService(ILocalStorageService localStorageService)
|
public UserProfileService(ILocalStorageService localStorageService)
|
||||||
{
|
{
|
||||||
_localStorageService = localStorageService;
|
_localStorageService = localStorageService;
|
||||||
|
@ -42,7 +43,7 @@ public class UserProfileService
|
||||||
|
|
||||||
public async Task SetDateConfirmed(bool confirmed)
|
public async Task SetDateConfirmed(bool confirmed)
|
||||||
{
|
{
|
||||||
var preferences = await GetPreferences();
|
var preferences = await GetProfile();
|
||||||
var newPreferences = preferences
|
var newPreferences = preferences
|
||||||
with
|
with
|
||||||
{
|
{
|
||||||
|
@ -54,7 +55,7 @@ public class UserProfileService
|
||||||
|
|
||||||
public async Task SetKmMorning(int kmMorning)
|
public async Task SetKmMorning(int kmMorning)
|
||||||
{
|
{
|
||||||
var preferences = await GetPreferences();
|
var preferences = await GetProfile();
|
||||||
var newPreferences = preferences
|
var newPreferences = preferences
|
||||||
with
|
with
|
||||||
{
|
{
|
||||||
|
@ -66,7 +67,7 @@ public class UserProfileService
|
||||||
|
|
||||||
public async Task SetCompanyFilterPhrase(string filterPhrase)
|
public async Task SetCompanyFilterPhrase(string filterPhrase)
|
||||||
{
|
{
|
||||||
var preferences = await GetPreferences();
|
var preferences = await GetProfile();
|
||||||
var newPreferences = preferences
|
var newPreferences = preferences
|
||||||
with
|
with
|
||||||
{
|
{
|
||||||
|
@ -78,7 +79,7 @@ public class UserProfileService
|
||||||
|
|
||||||
public async Task SetWorkDate(DateTime workDate)
|
public async Task SetWorkDate(DateTime workDate)
|
||||||
{
|
{
|
||||||
var preferences = await GetPreferences();
|
var preferences = await GetProfile();
|
||||||
var newPreferences = preferences
|
var newPreferences = preferences
|
||||||
with
|
with
|
||||||
{
|
{
|
||||||
|
@ -90,7 +91,7 @@ public class UserProfileService
|
||||||
|
|
||||||
public async Task SetCompanySearch(string companySearch)
|
public async Task SetCompanySearch(string companySearch)
|
||||||
{
|
{
|
||||||
var preferences = await GetPreferences();
|
var preferences = await GetProfile();
|
||||||
var newPreferences = preferences
|
var newPreferences = preferences
|
||||||
with { CompanySearch = companySearch };
|
with { CompanySearch = companySearch };
|
||||||
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
||||||
|
@ -99,7 +100,7 @@ public class UserProfileService
|
||||||
|
|
||||||
public async Task SetCompanySort(string companySort)
|
public async Task SetCompanySort(string companySort)
|
||||||
{
|
{
|
||||||
var preferences = await GetPreferences();
|
var preferences = await GetProfile();
|
||||||
var newPreferences = preferences
|
var newPreferences = preferences
|
||||||
with { CompanySort = companySort };
|
with { CompanySort = companySort };
|
||||||
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
||||||
|
@ -108,7 +109,7 @@ public class UserProfileService
|
||||||
|
|
||||||
public async Task SetItemSearch(string itemSearch)
|
public async Task SetItemSearch(string itemSearch)
|
||||||
{
|
{
|
||||||
var preferences = await GetPreferences();
|
var preferences = await GetProfile();
|
||||||
var newPreferences = preferences
|
var newPreferences = preferences
|
||||||
with { ItemSearch = itemSearch };
|
with { ItemSearch = itemSearch };
|
||||||
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
||||||
|
@ -117,7 +118,7 @@ public class UserProfileService
|
||||||
|
|
||||||
public async Task SetItemSort(string itemSort)
|
public async Task SetItemSort(string itemSort)
|
||||||
{
|
{
|
||||||
var preferences = await GetPreferences();
|
var preferences = await GetProfile();
|
||||||
var newPreferences = preferences
|
var newPreferences = preferences
|
||||||
with { ItemSort = itemSort };
|
with { ItemSort = itemSort };
|
||||||
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
||||||
|
@ -126,15 +127,20 @@ public class UserProfileService
|
||||||
|
|
||||||
public async Task SetPageSize(string pageSize)
|
public async Task SetPageSize(string pageSize)
|
||||||
{
|
{
|
||||||
var preferences = await GetPreferences();
|
var preferences = await GetProfile();
|
||||||
var newPreferences = preferences
|
var newPreferences = preferences
|
||||||
with { PageSize = pageSize };
|
with { PageSize = pageSize };
|
||||||
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
await _localStorageService.SetItemAsync(KeyName, newPreferences);
|
||||||
OnChange?.Invoke(newPreferences);
|
OnChange?.Invoke(newPreferences);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<UserProfile> GetPreferences()
|
public async Task<UserProfile> GetProfile()
|
||||||
{
|
{
|
||||||
return await _localStorageService.GetItemAsync<UserProfile>(KeyName) ?? new UserProfile();
|
return await _localStorageService.GetItemAsync<UserProfile>(KeyName) ?? new UserProfile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task SetProfile(UserProfile profile)
|
||||||
|
{
|
||||||
|
await _localStorageService.SetItemAsync(KeyName, profile);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -18,6 +18,7 @@ using System.Net.Http.Headers;
|
||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
using Blazored.LocalStorage;
|
using Blazored.LocalStorage;
|
||||||
using Microsoft.AspNetCore.Components.Authorization;
|
using Microsoft.AspNetCore.Components.Authorization;
|
||||||
|
using Wonky.Client.Services;
|
||||||
using Wonky.Entity.DTO;
|
using Wonky.Entity.DTO;
|
||||||
using Wonky.Entity.Views;
|
using Wonky.Entity.Views;
|
||||||
|
|
||||||
|
@ -26,35 +27,36 @@ namespace Wonky.Client.Shared
|
||||||
public class AuthStateProvider : AuthenticationStateProvider
|
public class AuthStateProvider : AuthenticationStateProvider
|
||||||
{
|
{
|
||||||
private readonly HttpClient _client;
|
private readonly HttpClient _client;
|
||||||
private readonly ILocalStorageService _storage;
|
// private readonly ILocalStorageService _storage;
|
||||||
private readonly AuthenticationState _anonymous;
|
private readonly AuthenticationState _anonymous;
|
||||||
|
private readonly IUserInfoService _infoService;
|
||||||
|
|
||||||
public AuthStateProvider(HttpClient client, ILocalStorageService storage)
|
public AuthStateProvider(HttpClient client, IUserInfoService infoService)
|
||||||
{
|
{
|
||||||
_client = client;
|
_client = client;
|
||||||
_storage = storage;
|
_infoService = infoService;
|
||||||
_anonymous = new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
|
_anonymous = new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task<AuthenticationState> GetAuthenticationStateAsync()
|
public override async Task<AuthenticationState> GetAuthenticationStateAsync()
|
||||||
{
|
{
|
||||||
var token = await _storage.GetItemAsync<string>("_xa");
|
var token = await _infoService.GetAccessToken();
|
||||||
if (string.IsNullOrEmpty(token))
|
if (string.IsNullOrEmpty(token))
|
||||||
return _anonymous;
|
return _anonymous;
|
||||||
|
|
||||||
var userInfo = await _storage.GetItemAsync<UserManagerEditView>("_xu");
|
var userInfo = await _infoService.GetUserInfo();
|
||||||
if (userInfo == null)
|
if (userInfo == null)
|
||||||
return _anonymous;
|
return _anonymous;
|
||||||
|
|
||||||
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);
|
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);
|
||||||
var exp = await _storage.GetItemAsync<string>("_xe");
|
var exp = await _infoService.GetExpiration();
|
||||||
var claims = new List<Claim>
|
var claims = new List<Claim>
|
||||||
{
|
{
|
||||||
new(ClaimTypes.Name, $"{userInfo.FirstName} {userInfo.LastName}"),
|
new(ClaimTypes.Name, $"{userInfo.FirstName} {userInfo.LastName}"),
|
||||||
new(ClaimTypes.Email, userInfo.Email),
|
new(ClaimTypes.Email, userInfo.Email),
|
||||||
new(ClaimTypes.Country, userInfo.CountryCode),
|
new(ClaimTypes.Country, userInfo.CountryCode),
|
||||||
new(ClaimTypes.MobilePhone, userInfo.PhoneNumber),
|
new(ClaimTypes.MobilePhone, userInfo.PhoneNumber),
|
||||||
new(ClaimTypes.Expiration, exp)
|
new(ClaimTypes.Expiration, exp.ToString())
|
||||||
};
|
};
|
||||||
claims.AddRange(
|
claims.AddRange(
|
||||||
from role in userInfo.AssignedRoles
|
from role in userInfo.AssignedRoles
|
||||||
|
@ -73,8 +75,8 @@ namespace Wonky.Client.Shared
|
||||||
|
|
||||||
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);
|
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);
|
||||||
|
|
||||||
var userInfo = await _storage.GetItemAsync<UserManagerEditView>("_xu");
|
var userInfo = await _infoService.GetUserInfo();
|
||||||
var exp = await _storage.GetItemAsync<string>("_xe");
|
var exp = await _infoService.GetExpiration();
|
||||||
|
|
||||||
var claims = new List<Claim>
|
var claims = new List<Claim>
|
||||||
{
|
{
|
||||||
|
@ -82,7 +84,7 @@ namespace Wonky.Client.Shared
|
||||||
new(ClaimTypes.Email, userInfo.Email),
|
new(ClaimTypes.Email, userInfo.Email),
|
||||||
new(ClaimTypes.Country, userInfo.CountryCode),
|
new(ClaimTypes.Country, userInfo.CountryCode),
|
||||||
new(ClaimTypes.MobilePhone, userInfo.PhoneNumber),
|
new(ClaimTypes.MobilePhone, userInfo.PhoneNumber),
|
||||||
new(ClaimTypes.Expiration, exp)
|
new(ClaimTypes.Expiration, exp.ToString())
|
||||||
};
|
};
|
||||||
claims.AddRange(
|
claims.AddRange(
|
||||||
from role in userInfo.AssignedRoles
|
from role in userInfo.AssignedRoles
|
||||||
|
|
|
@ -25,7 +25,7 @@ public partial class DraftStateProvider
|
||||||
{
|
{
|
||||||
[Parameter] public RenderFragment ChildContent { get; set; }
|
[Parameter] public RenderFragment ChildContent { get; set; }
|
||||||
[Parameter] public string DraftId { get; set; } = "";
|
[Parameter] public string DraftId { get; set; } = "";
|
||||||
[Inject] private ILocalStorageService LocalStorageService { get; set; }
|
[Inject] public ILocalStorageService LocalStorageService { get; set; }
|
||||||
public Draft Draft { get; set; } = new();
|
public Draft Draft { get; set; } = new();
|
||||||
|
|
||||||
private bool _hasLoaded;
|
private bool _hasLoaded;
|
||||||
|
|
|
@ -36,9 +36,9 @@ public partial class VatLookupDkModal
|
||||||
[Parameter] public string EntityName { get; set; } = "";
|
[Parameter] public string EntityName { get; set; } = "";
|
||||||
[Parameter] public string VatNumber { get; set; } = "";
|
[Parameter] public string VatNumber { get; set; } = "";
|
||||||
[Parameter] public EventCallback<VirkRegInfo> OnSelectedCompany { get; set; }
|
[Parameter] public EventCallback<VirkRegInfo> OnSelectedCompany { get; set; }
|
||||||
[Inject] private VatInfoLookupService VatService { get; set; }
|
[Inject] public VatInfoLookupService VatService { get; set; }
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
[Inject] private ILogger<VatLookupDkModal> Logger { get; set; }
|
[Inject] public ILogger<VatLookupDkModal> Logger { get; set; }
|
||||||
private VirkRegInfo CompanyRegInfo { get; set; } = new();
|
private VirkRegInfo CompanyRegInfo { get; set; } = new();
|
||||||
private List<VirkRegInfo> VatInfos { get; set; } = new();
|
private List<VirkRegInfo> VatInfos { get; set; } = new();
|
||||||
private VatAddress ThisVatAddress { get; set; } = new();
|
private VatAddress ThisVatAddress { get; set; } = new();
|
||||||
|
|
|
@ -1,35 +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.Serialization;
|
|
||||||
|
|
||||||
namespace Wonky.Entity.Views;
|
|
||||||
|
|
||||||
public class X_WebUserInfoView
|
|
||||||
{
|
|
||||||
[JsonPropertyName("userId")] public string UserId { get; set; } = "";
|
|
||||||
[JsonPropertyName("salesRep")] public string Advisor { get; set; } = "";
|
|
||||||
[JsonPropertyName("countryCode")] public string CountryCode { get; set; } = "";
|
|
||||||
[JsonPropertyName("countryName")] public string CountryName { get; set; } = "";
|
|
||||||
[JsonPropertyName("email")] public string Email { get; set; } = "";
|
|
||||||
[JsonPropertyName("firstName")] public string FirstName { get; set; } = "";
|
|
||||||
[JsonPropertyName("lastName")]public string LastName { get; set; } = "";
|
|
||||||
[JsonPropertyName("phoneNumber")]public string PhoneNumber { get; set; } = "";
|
|
||||||
[JsonPropertyName("lockoutEnabled")] public bool LockoutEnabled { get; set; }
|
|
||||||
[JsonPropertyName("emailConfirmed")] public bool EmailConfirmed { get; set; }
|
|
||||||
[JsonPropertyName("isAdmin")] public bool IsAdmin { get; set; }
|
|
||||||
[JsonPropertyName("isAdvisor")] public bool IsAdvisor { get; set; }
|
|
||||||
}
|
|
Loading…
Reference in a new issue