Escali License control 1
ProductPage.razor
Gå til dokumentasjonen til denne filen.
1@inject ProductViewModel _productViewService
2@inject ModuleViewModel _moduleViewService
3@inject PriceListViewModel _priceListViewService
4@inject PriceElementViewModel _priceElementViewService
5@inject StateService _stateService
6@implements IDisposable
7
8@page "/products"
9
10<ProductSelector ChangeProductEvent="ChangeProduct"/>
11<ProductTable />
12
13
14@code {
15
16 private void ChangeProduct(string name)
17 {
18 if (_productViewService.Products != null)
19 {
20 _stateService.SelectedProductSeq.Value = (from p in _productViewService.Products
21 where p.ProductName == name
22 select p.ProductSeq).First()!.Value;
23 }
24 SelectNewestPriceLists();
25 }
26
27 private void SelectFinancials() => ChangeProduct("Escali Financials");
28
29 private void SelectNewestPriceLists()
30 {
31 if (_priceListViewService.PriceLists != null)
32 {
33 var priceListSeq = _priceListViewService.PriceLists?
34 .Where(p => p.ProductSeq == _stateService.SelectedProductSeq.Value)
35 .OrderByDescending(p => p.DateTo)
36 .First()
37 .PriceListSeq;
38 _stateService.SelectedPriceListSeq.Value = priceListSeq!.Value;
39 }
40 }
41
42 protected override void OnInitialized()
43 {
44 _stateService.HeaderName.Value = "Produkter";
45
46 _productViewService.DataChanged += StateHasChanged;
47
48 _productViewService.DataChanged += SelectFinancials;
49 _priceListViewService.DataChanged += SelectNewestPriceLists;
50
51 if (_productViewService.Products != null) SelectFinancials();
52 if (_priceListViewService.PriceLists != null) SelectNewestPriceLists();
53 }
54
55 void IDisposable.Dispose()
56 {
57 _productViewService.DataChanged -= StateHasChanged;
58
59 _productViewService.DataChanged -= SelectFinancials;
60 _priceListViewService.DataChanged -= SelectNewestPriceLists;
61 }
62
63}