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