rename preference service - added preference property (confirm date)

This commit is contained in:
Frede Hundewadt 2022-09-28 13:15:28 +02:00
parent b71c0da3ef
commit 6bd819a289
35 changed files with 99 additions and 66 deletions

View file

@ -7,7 +7,7 @@
@code {
[Inject] public UserPreferenceService PreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
private int KmMorning { get; set; }
private Preferences Preferences { get; set; } = new();

View file

@ -68,4 +68,4 @@ else
{
<LoaderThreeDots />
}
<Information BodyMessage="@_info" />
<InformationModal BodyMessage="@_info" />

View file

@ -37,7 +37,7 @@ namespace Wonky.Client.Components
private Lazy<IJSObjectReference> BsTooltip = new();
private Information _information { get; set; } = new();
private InformationModal InformationModal { get; set; } = new();
private string _info { get; set; } = "";
private string _companyId { get; set; } = "";
// private string _actionUrl { get; set; } = "";
@ -55,7 +55,7 @@ namespace Wonky.Client.Components
private void CallInformationModal(string info)
{
_info = info;
_information.Show();
InformationModal.Show();
}
}
}

View file

@ -23,7 +23,7 @@ namespace Wonky.Client.Components;
public partial class CatalogGroupComponent
{
[Inject] public ILocalStorageService LocalStorage { get; set; }
[Inject] public UserPreferenceService UserPreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private Preferences _preferences = new();

View file

@ -24,7 +24,7 @@ public partial class CatalogSearchComponent : IDisposable
/// <summary>
/// User preference service
/// </summary>
[Inject] public UserPreferenceService _preferenceService { get; set; }
[Inject] public PreferenceService _preferenceService { get; set; }
/// <summary>
/// OnChanged event callback

View file

@ -24,7 +24,7 @@ public partial class CatalogSortComponent : IDisposable
/// <summary>
/// User preference service
/// </summary>
[Inject] public UserPreferenceService _preferenceService { get; set; }
[Inject] public PreferenceService _preferenceService { get; set; }
/// <summary>
/// OnChanged callback function

View file

@ -25,15 +25,15 @@ namespace Wonky.Client.Components;
public partial class CompanySearchColumnComponent : IDisposable
{
[Inject] public ILocalStorageService LocalStorage { get; set; }
[Inject] public UserPreferenceService UserPreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private Preferences _preferences = new();
private string Selection { get; set; } = "name";
protected override async Task OnInitializedAsync()
{
UserPreferenceService.OnChange += ProfileServiceOnOnChange;
_preferences = await UserPreferenceService.GetPreferences();
PreferenceService.OnChange += ProfileServiceOnOnChange;
_preferences = await PreferenceService.GetPreferences();
Selection = _preferences.CompanySearch;
}
private async Task OnSelectionChanged(ChangeEventArgs e)
@ -41,7 +41,7 @@ public partial class CompanySearchColumnComponent : IDisposable
var val = e.Value.ToString();
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await UserPreferenceService.SetCompanySearch(val);
await PreferenceService.SetCompanySearch(val);
}
private void ProfileServiceOnOnChange(Preferences newPreferences)
{
@ -50,6 +50,6 @@ public partial class CompanySearchColumnComponent : IDisposable
}
public void Dispose()
{
UserPreferenceService.OnChange -= ProfileServiceOnOnChange;
PreferenceService.OnChange -= ProfileServiceOnOnChange;
}
}

View file

@ -25,7 +25,7 @@ namespace Wonky.Client.Components
private Timer InputTimer { get; set; } = new();
private string SearchTerm { get; set; } = "";
private Preferences Preferences { get; set; } = new ();
[Inject] public UserPreferenceService PreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
protected override async Task OnInitializedAsync()

View file

@ -24,15 +24,15 @@ namespace Wonky.Client.Components
public partial class CompanySortComponent : IDisposable
{
[Inject] public ILocalStorageService LocalStorage { get; set; }
[Inject] public UserPreferenceService UserPreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private Preferences _preferences = new();
private string Selection { get; set; } = "name";
protected override async Task OnInitializedAsync()
{
UserPreferenceService.OnChange += ProfileServiceOnOnChange;
_preferences = await UserPreferenceService.GetPreferences();
PreferenceService.OnChange += ProfileServiceOnOnChange;
_preferences = await PreferenceService.GetPreferences();
Selection = _preferences.CompanySort;
}
private async Task OnSelectionChanged(ChangeEventArgs e)
@ -40,7 +40,7 @@ namespace Wonky.Client.Components
var val = e.Value.ToString();
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await UserPreferenceService.SetCompanySort(val);
await PreferenceService.SetCompanySort(val);
}
private void ProfileServiceOnOnChange(Preferences newPreferences)
{
@ -49,7 +49,7 @@ namespace Wonky.Client.Components
}
public void Dispose()
{
UserPreferenceService.OnChange -= ProfileServiceOnOnChange;
PreferenceService.OnChange -= ProfileServiceOnOnChange;
}
}
}

View file

@ -32,7 +32,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Components;
public partial class LandingComponentAdmin : IDisposable
{
[Inject] public UserPreferenceService _preferenceService { get; set; }
[Inject] public PreferenceService _preferenceService { get; set; }
[Inject] public ILogger<LandingComponentAdmin> _logger { get; set; }
[Inject] public HttpInterceptorService _interceptor { get; set; }
[Inject] public IToastService _toast { get; set; }

View file

@ -32,7 +32,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Components;
public partial class LandingComponentAdvisor : IDisposable
{
[Inject] public UserPreferenceService _preferenceService { get; set; }
[Inject] public PreferenceService _preferenceService { get; set; }
[Inject] public ILogger<LandingComponentAdvisor> _logger { get; set; }
[Inject] public HttpInterceptorService _interceptor { get; set; }
[Inject] public IToastService _toast { get; set; }

View file

@ -24,15 +24,15 @@ namespace Wonky.Client.Components
public partial class PageSizeComponent : IDisposable
{
[Inject] public ILocalStorageService LocalStorage { get; set; }
[Inject] public UserPreferenceService UserPreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private Preferences _preferences = new();
private string Selection { get; set; } = "";
protected override async Task OnInitializedAsync()
{
UserPreferenceService.OnChange += ProfileServiceOnOnChange;
_preferences = await UserPreferenceService.GetPreferences();
PreferenceService.OnChange += ProfileServiceOnOnChange;
_preferences = await PreferenceService.GetPreferences();
Selection = _preferences.PageSize;
}
private async Task OnSelectChanged(ChangeEventArgs e)
@ -40,7 +40,7 @@ namespace Wonky.Client.Components
var val = e.Value.ToString();
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await UserPreferenceService.SetPageSize(val);
await PreferenceService.SetPageSize(val);
}
private void ProfileServiceOnOnChange(Preferences newPreferences)
{
@ -49,7 +49,7 @@ namespace Wonky.Client.Components
}
public void Dispose()
{
UserPreferenceService.OnChange -= ProfileServiceOnOnChange;
PreferenceService.OnChange -= ProfileServiceOnOnChange;
}
}
}

View file

@ -30,7 +30,7 @@
}
@if (ReportItem.VisitTypeEnum.ToLower() == "phone" || ReportItem.OurRef.Contains("T:"))
{
<h3 class="text-center">TELEFONORDRE</h3>
<h5 class="text-center">TELEFONORDRE</h5>
}
@if (ReportItem.Express)
{

View file

@ -81,7 +81,7 @@
}
</tbody>
</table>
<Confirmation BodyMessage="Handlingen kan ikke gøres om. Vil du slette opgaven?" OnOkClicked="DeleteTask" @ref="_confirmation"/>
<ConfirmationModal BodyMessage="Handlingen kan ikke gøres om. Vil du slette opgaven?" OnOkClicked="DeleteTask" @ref="_confirmationModal"/>
}
else
{

View file

@ -30,7 +30,7 @@ namespace Wonky.Client.Components
[Parameter] public EventCallback<string> OnCompleteTask { get; set; }
[Parameter] public EventCallback<string> OnTaskCompleted { get; set; }
private Confirmation _confirmation = new ();
private ConfirmationModal _confirmationModal = new ();
private string _taskItemIdToDelete = "";
/// <summary>
@ -58,7 +58,7 @@ namespace Wonky.Client.Components
private void CallConfirmationModal(string taskItemId)
{
_taskItemIdToDelete = taskItemId;
_confirmation.Show();
_confirmationModal.Show();
}
/// <summary>
@ -66,7 +66,7 @@ namespace Wonky.Client.Components
/// </summary>
private async Task DeleteTask()
{
_confirmation.Hide();
_confirmationModal.Hide();
await OnDeleteTask.InvokeAsync(_taskItemIdToDelete);
}
}

View file

@ -26,7 +26,7 @@ public partial class WorkDateComponent : IDisposable
/// <summary>
/// User preference service
/// </summary>
[Inject] public UserPreferenceService UserPrefs { get; set; }
[Inject] public PreferenceService Prefs { get; set; }
/// <summary>
/// OnChanged callback function
@ -48,8 +48,8 @@ public partial class WorkDateComponent : IDisposable
/// </summary>
protected override async Task OnInitializedAsync()
{
UserPrefs.OnChange += ProfileServiceOnOnChange;
_prefs = await UserPrefs.GetPreferences();
Prefs.OnChange += ProfileServiceOnOnChange;
_prefs = await Prefs.GetPreferences();
if (!string.IsNullOrWhiteSpace(_prefs.WorkDate))
SelectedDate = _prefs.WorkDate;
@ -62,7 +62,7 @@ public partial class WorkDateComponent : IDisposable
private async Task OnDateChanged(ChangeEventArgs e)
{
var val = $"{DateOnly.Parse(e.Value?.ToString()!):yyyy-MM-dd}";
await UserPrefs.SetWorkDate(DateTime.Parse(val));
await Prefs.SetWorkDate(DateTime.Parse(val));
await OnChanged.InvokeAsync(val);
}
@ -81,6 +81,6 @@ public partial class WorkDateComponent : IDisposable
/// </summary>
public void Dispose()
{
UserPrefs.OnChange -= ProfileServiceOnOnChange;
Prefs.OnChange -= ProfileServiceOnOnChange;
}
}

View file

@ -19,7 +19,7 @@ namespace Wonky.Client.HttpInterfaces;
public interface IWarehouseHttpRepository
{
Task<List<WarehouseOrderView>> GetWarehouseOrderListByStatus(string status);
Task<List<WarehouseOrderView>> GetWarehouseOrderListByStatus(string status, string express = "");
Task<WarehouseOrderView> GetWarehouseOrder(string orderId);
Task UpdateWarehouseOrderStatus(WarehouseProcess process);
}

View file

@ -51,9 +51,9 @@ public class WarehouseHttpRepository : IWarehouseHttpRepository
return await _client.GetFromJsonAsync<List<WarehouseOrderView>>($"{_api.Warehouse}?date={date}", _options);
}
public async Task<List<WarehouseOrderView>> GetWarehouseOrderListByStatus(string status)
public async Task<List<WarehouseOrderView>> GetWarehouseOrderListByStatus(string status, string express = "")
{
return await _client.GetFromJsonAsync<List<WarehouseOrderView>>($"{_api.Warehouse}?status={status}", _options);
return await _client.GetFromJsonAsync<List<WarehouseOrderView>>($"{_api.Warehouse}?status={status}&express={express}", _options);
}
public async Task<WarehouseOrderView> GetWarehouseOrder(string orderId)
@ -62,7 +62,7 @@ public class WarehouseHttpRepository : IWarehouseHttpRepository
}
public async Task UpdateWarehouseOrderStatus(WarehouseProcess process)
{
_logger.LogDebug("process => {}", JsonSerializer.Serialize(process));
_logger.LogDebug("process => {}", JsonSerializer.Serialize(process, _options));
await _client.PutAsJsonAsync($"{_api.Warehouse}/{process.OrderId}", process, _options);
}
}

View file

@ -34,7 +34,7 @@ public partial class CatalogPage : IDisposable
[Inject] public ILocalStorageService Storage { get; set; }
[Inject] public ICatalogHttpRepository ItemRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public UserPreferenceService PreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
private List<SalesItemView> _items { get; set; } = new();
private MetaData _metaData { get; set; } = new();
private CatalogPagingParams _paging = new();

View file

@ -27,7 +27,7 @@ namespace Wonky.Client.Pages;
public partial class CrmActivityTodayPage : IDisposable
{
[Inject] public UserPreferenceService _preferenceService { get; set; }
[Inject] public PreferenceService _preferenceService { get; set; }
[Inject] public ILogger<CrmActivityTodayPage> _logger { get; set; }
[Inject] public HttpInterceptorService _interceptor { get; set; }
[Inject] public NavigationManager _navigator { get; set; }

View file

@ -31,7 +31,7 @@ namespace Wonky.Client.Pages
public partial class CrmListCompanyPage : IDisposable
{
[Inject] public ILocalStorageService _storage { get; set; }
[Inject] public UserPreferenceService _preferenceService { get; set; }
[Inject] public PreferenceService _preferenceService { get; set; }
[Inject] public ICrmCompanyHttpRepository _companyRepo { get; set; }
[Inject] public HttpInterceptorService _interceptor { get; set; }
[Inject] public NavigationManager _navigator { get; set; }

View file

@ -27,7 +27,7 @@ namespace Wonky.Client.Pages;
public partial class CrmListTaskItemPage : IDisposable
{
[Inject] public UserPreferenceService UserPrefs { get; set; }
[Inject] public PreferenceService Prefs { get; set; }
[Inject] public ILogger<CrmListTaskItemPage> Logger { get; set; }
[Inject] public HttpInterceptorService _interceptor { get; set; }
[Inject] public NavigationManager _navigator { get; set; }
@ -40,7 +40,7 @@ public partial class CrmListTaskItemPage : IDisposable
protected override async Task OnInitializedAsync()
{
_prefs = await UserPrefs.GetPreferences();
_prefs = await Prefs.GetPreferences();
if(!string.IsNullOrWhiteSpace(_prefs.WorkDate))
_workDate = _prefs.WorkDate;

View file

@ -20,9 +20,10 @@
@attribute [Authorize(Roles = "Advisor")]
@using Wonky.Client.Components
<PriceListModal OnSelected="SelectSku" @ref="_priceListModal"/>
<ProductHistoryModal CompanyId="@CompanyId" ItemSku="@_selectedItem.Sku" @ref="_historyModal"/>
<ProductPriceHistoryModal OnSelected="SelectPrice" CompanyId="@CompanyId" ItemSku="@_selectedItem.Sku" @ref="_priceHistoryModal"/>
<PriceListModal OnSelected="SelectSku" @ref="PriceListModal"/>
<ProductHistoryModal CompanyId="@CompanyId" ItemSku="@_selectedItem.Sku" @ref="HistoryModal"/>
<ProductPriceHistoryModal OnSelected="SelectPrice" CompanyId="@CompanyId" ItemSku="@_selectedItem.Sku" @ref="PriceHistoryModal"/>
<ConfirmationModal BodyMessage="@_confirmDatePrompt" OnOkClicked="WorkDateConfirmed" />
<div class="row align-items-center bg-dark text-white rounded-3 p-3">
<div class="col-9">

View file

@ -38,7 +38,7 @@ public partial class CrmNewActivityPage : IDisposable
// Services
[Inject] public ILogger<CrmNewActivityPage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public UserPreferenceService PreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
[Inject] public IToastService Toast { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ILocalStorageService Storage { get; set; }
@ -69,10 +69,12 @@ public partial class CrmNewActivityPage : IDisposable
private DateTime _workDate { get; set; } = DateTime.Now;
private string _selectedDate { get; set; } = "";
private string _phone { get; set; } = "";
private string _confirmDatePrompt { get; set; }
// MODAL DIALOGS
private PriceListModal _priceListModal { get; set; }
private ProductHistoryModal _historyModal { get; set; }
private ProductPriceHistoryModal _priceHistoryModal { get; set; }
private PriceListModal PriceListModal { get; set; }
private ProductHistoryModal HistoryModal { get; set; }
private ProductPriceHistoryModal PriceHistoryModal { get; set; }
private ConfirmationModal ConfirmationModal { get; set; }
protected override async Task OnParametersSetAsync()
{
@ -91,6 +93,12 @@ public partial class CrmNewActivityPage : IDisposable
protected override async Task OnInitializedAsync()
{
if (!_prefs.DateConfirmed)
{
_confirmDatePrompt = $"Er arbejdsdato {_selectedDate} korrekt?";
CallConfirmWorkDate();
}
_editContext = new EditContext(_activity);
_editContext.OnFieldChanged += HandleFieldChanged;
_editContext.OnValidationStateChanged += ValidationChanged;
@ -145,7 +153,17 @@ public partial class CrmNewActivityPage : IDisposable
}
private void CallPriceListModal()
{
_priceListModal.Show();
PriceListModal.Show();
}
private void CallConfirmWorkDate()
{
ConfirmationModal.Show();
}
private async Task WorkDateConfirmed()
{
await PreferenceService.SetDateConfirmed(true);
}
private async Task SelectSku(SelectedSku sku)
@ -165,7 +183,7 @@ public partial class CrmNewActivityPage : IDisposable
private void CallPriceHistoryModal()
{
if(ShowItem)
_priceHistoryModal.Show();
PriceHistoryModal.Show();
}
private void SelectPrice(decimal price)

View file

@ -263,4 +263,4 @@
</div>
</div>
</EditForm>
<Confirmation BodyMessage="@_prompt" OnOkClicked="ReportSaveConfirmed" @ref="_confirmReport"/>
<ConfirmationModal BodyMessage="@_prompt" OnOkClicked="ReportSaveConfirmed" @ref="_confirmReport"/>

View file

@ -34,7 +34,7 @@ namespace Wonky.Client.Pages;
public partial class CrmNewReportPage : IDisposable
{
[Inject] public HttpInterceptorService _interceptor { get; set; }
[Inject] public UserPreferenceService _userPrefs { get; set; }
[Inject] public PreferenceService Prefs { get; set; }
[Inject] public ICrmActivityHttpRepository CrmActivityRepo { get; set; }
[Inject] public ICrmReportHttpRepository CrmReportRepo { get; set; }
[Inject] public NavigationManager _navigator { get; set; }
@ -53,7 +53,7 @@ public partial class CrmNewReportPage : IDisposable
private TimeOnly _checkOut { get; set; } = new(12, 0);
private DateTime _leaveBegin { get; set; } = DateTime.Now;
private DateTime _leaveEnd { get; set; } = DateTime.Now;
private Confirmation _confirmReport { get; set; }
private ConfirmationModal _confirmReport { get; set; }
private string _prompt { get; set; } = "";
protected override async Task OnInitializedAsync()
@ -64,7 +64,7 @@ public partial class CrmNewReportPage : IDisposable
_editContext.OnFieldChanged += HandleFieldChanged;
_editContext.OnValidationStateChanged += ValidationChanged;
_prefs = await _userPrefs.GetPreferences();
_prefs = await Prefs.GetPreferences();
if (!string.IsNullOrWhiteSpace(_prefs.WorkDate))
_workDate = DateTime.Parse(_prefs.WorkDate);
@ -101,7 +101,7 @@ public partial class CrmNewReportPage : IDisposable
_working = true;
var result = await CrmReportRepo.PostReport($"{_workDate:yyyy-MM-dd}", _report);
await _userPrefs.SetKmMorning(0);
await Prefs.SetKmMorning(0);
_toast.ShowInfo($"Rapport oprettet {_workDate}");
_working = false;

View file

@ -30,7 +30,7 @@ public partial class OfficeListCustomerPage : IDisposable
[Inject] public ILogger<OfficeListCustomerPage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IOfficeCustomerHttpRepository CustomerRepo { get; set; }
[Inject] public UserPreferenceService PreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
private List<CompanyDto> _companyList { get; set; } = new();
private MetaData _metaData { get; set; } = new();
private CompanyPagingParams _paging = new();

View file

@ -30,7 +30,7 @@ public partial class OfficeListCustomerSalesRepPage : IDisposable
[Inject] public ILogger<OfficeListCustomerSalesRepPage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IOfficeCustomerHttpRepository CustomerRepo { get; set; }
[Inject] public UserPreferenceService PreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
private List<CompanyDto> _companyList { get; set; } = new();
private MetaData _metaData { get; set; } = new();
private CompanyPagingParams _paging = new();

View file

@ -76,7 +76,7 @@ builder.Services.AddScoped<AuthenticationStateProvider, AuthStateProvider>();
builder.Services.AddScoped<IAuthenticationService, AuthenticationService>();
builder.Services.AddScoped<RefreshTokenService>();
builder.Services.AddScoped<VatInfoLookupService>();
builder.Services.AddScoped<UserPreferenceService>();
builder.Services.AddScoped<PreferenceService>();
// ---------------------------------------

View file

@ -26,15 +26,29 @@ public record Preferences
public string PageSize { get; set; } = "10";
public string WorkDate { get; set; } = "";
public int KmMorning { get; set; }
public bool DateConfirmed { get; set; }
}
public class UserPreferenceService
public class PreferenceService
{
private readonly ILocalStorageService _localStorageService;
public event Action<Preferences>? OnChange;
public UserPreferenceService(ILocalStorageService localStorageService)
public PreferenceService(ILocalStorageService localStorageService)
{
_localStorageService = localStorageService;
}
public async Task SetDateConfirmed(bool confirmed)
{
var preferences = await GetPreferences();
var newPreferences = preferences
with
{
DateConfirmed = confirmed
};
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
public async Task SetKmMorning(int kmMorning)
{

View file

@ -17,7 +17,7 @@ using Microsoft.AspNetCore.Components;
namespace Wonky.Client.Shared;
public partial class Information
public partial class ConfirmationModal
{
private string _modalDisplay = "";
private bool _showBackdrop;

View file

@ -17,7 +17,7 @@ using Microsoft.AspNetCore.Components;
namespace Wonky.Client.Shared;
public partial class Confirmation
public partial class InformationModal
{
private string _modalDisplay = "";
private bool _showBackdrop;

View file

@ -30,7 +30,7 @@ public partial class PriceListModal : IDisposable
[Parameter] public EventCallback<SelectedSku> OnSelected { get; set; }
[Inject] public ICatalogHttpRepository ItemRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public UserPreferenceService PreferenceService { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
private string _modalDisplay = "";
private bool _showBackdrop;