From b8f52e0c843c3bc17f6d660ab145093ab611a9cc Mon Sep 17 00:00:00 2001 From: Loretta Date: Tue, 9 Jun 2026 14:51:23 +0200 Subject: [PATCH] =?UTF-8?q?Add=20PartnerDepot=20grid,=20EK=C3=81ER=20menu,?= =?UTF-8?q?=20and=20test=20refactor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added PartnerDepots navigation to Partner entity/interface - Introduced GridPartnerDepot component and detail tab in partner grid - Added EKÁER menu entry with icon and supporting styles - Moved partner/cargo tests to FruitBankPartnerTests; added PartnerDepot tests - Improved test assertions for clarity - Enabled AOT compilation by default in project file - Updated SignalR binary protocol doc with send-path analysis --- FruitBank.Common/Entities/Partner.cs | 3 + FruitBank.Common/Interfaces/IPartner.cs | 1 + .../FruitBankClientTests.cs | 153 +----------- .../FruitBankPartnerTests.cs | 225 ++++++++++++++++++ .../Grids/Partners/GridPartner.razor | 10 +- .../Grids/Partners/GridPartnerDepot.razor | 124 ++++++++++ .../Grids/Partners/GridPartnerDepotBase.cs | 85 +++++++ FruitBankHybrid.Shared/Layout/NavMenu.razor | 6 + .../Layout/NavMenu.razor.css | 4 + FruitBankHybrid.Shared/wwwroot/app.css | 1 + .../wwwroot/images/ekaer-fluent.svg | 4 + FruitBankHybrid/FruitBankHybrid.csproj | 6 +- 12 files changed, 470 insertions(+), 152 deletions(-) create mode 100644 FruitBankHybrid.Shared.Tests/FruitBankPartnerTests.cs create mode 100644 FruitBankHybrid.Shared/Components/Grids/Partners/GridPartnerDepot.razor create mode 100644 FruitBankHybrid.Shared/Components/Grids/Partners/GridPartnerDepotBase.cs create mode 100644 FruitBankHybrid.Shared/wwwroot/images/ekaer-fluent.svg diff --git a/FruitBank.Common/Entities/Partner.cs b/FruitBank.Common/Entities/Partner.cs index db482074..45d4205e 100644 --- a/FruitBank.Common/Entities/Partner.cs +++ b/FruitBank.Common/Entities/Partner.cs @@ -11,6 +11,9 @@ namespace FruitBank.Common.Entities; [System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.PartnerDbTableName)] public sealed class Partner : PartnerBase, IPartner { + [Association(ThisKey = nameof(Id), OtherKey = nameof(PartnerDepot.PartnerId), CanBeNull = true)] + public List? PartnerDepots { get; set; } + [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingDocument.PartnerId), CanBeNull = true)] public List? ShippingDocuments { get; set; } } \ No newline at end of file diff --git a/FruitBank.Common/Interfaces/IPartner.cs b/FruitBank.Common/Interfaces/IPartner.cs index 5518e234..953fc33a 100644 --- a/FruitBank.Common/Interfaces/IPartner.cs +++ b/FruitBank.Common/Interfaces/IPartner.cs @@ -13,6 +13,7 @@ public interface ICargoPartner : IPartnerBase public interface IPartner : IPartnerBase { + List? PartnerDepots { get; set; } List? ShippingDocuments { get; set; } } diff --git a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs index ed23b765..1d2fe8fe 100644 --- a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs +++ b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs @@ -34,149 +34,6 @@ namespace FruitBankHybrid.Shared.Tests _signalRClient = TestSignalRClientFactory.Create(nameof(FruitBankClientTests)); } - #region Partner - - [TestMethod] - public async Task GetPartnersTest() - { - var partners = await _signalRClient.GetPartners(); - - Assert.IsNotNull(partners); - Assert.IsNotEmpty(partners); - } - - //[TestMethod] - //[DataRow(1)] - public async Task GetPartnerByIdTest(int partnerId) - { - var partner = await _signalRClient.GetPartnerById(partnerId); - - Assert.IsNotNull(partner); - Assert.AreEqual(partnerId, partner.Id); - - return partner; - } - - [TestMethod] - [DataRow(2)] - public async Task UpdatePartnerTest(int partnerId) - { - var partner = await GetPartnerByIdTest(partnerId); - - var newName = GetFixtureName(partner.Name); - - partner.Name = newName; - partner = await _signalRClient.UpdatePartner(partner); - - Assert.IsNotNull(partner); - Assert.IsTrue(partner.Name == newName); - - partner.Name = GetOriginalName(partner.Name); - partner = await _signalRClient.UpdatePartner(partner); - - Assert.IsNotNull(partner); - Assert.AreEqual(partnerId, partner.Id); - } - #endregion Partner - - #region CargoPartner - [TestMethod] - public async Task GetCargoPartnersTest() - { - var partners = await _signalRClient.GetCargoPartners(); - - Assert.IsNotNull(partners); - Assert.IsNotEmpty(partners); - } - //[TestMethod] - //[DataRow(1)] - public async Task GetCargoPartnerByIdTest(int cargoPartnerId) - { - var cargoPartner = await _signalRClient.GetCargoPartnerById(cargoPartnerId); - - Assert.IsNotNull(cargoPartner); - Assert.AreEqual(cargoPartnerId, cargoPartner.Id); - - return cargoPartner; - } - - [TestMethod] - [DataRow(1)] - public async Task UpdateCargoPartnerTest(int cargoPartnerId) - { - var cargoPartner = await GetCargoPartnerByIdTest(cargoPartnerId); - - var newName = GetFixtureName(cargoPartner.Name); - - cargoPartner.Name = newName; - cargoPartner = await _signalRClient.UpdateCargoPartner(cargoPartner); - - Assert.IsNotNull(cargoPartner); - Assert.IsTrue(cargoPartner.Name == newName); - - cargoPartner.Name = GetOriginalName(cargoPartner.Name); - cargoPartner = await _signalRClient.UpdateCargoPartner(cargoPartner); - - Assert.IsNotNull(cargoPartner); - Assert.AreEqual(cargoPartnerId, cargoPartner.Id); - } - #endregion CargoPartner - - #region CargoTruck - [TestMethod] - public async Task GetCargoTrucksTest() - { - var cargoTrucks = await _signalRClient.GetCargoTrucks(); - - Assert.IsNotNull(cargoTrucks); - Assert.IsNotEmpty(cargoTrucks); - } - - //[TestMethod] - //[DataRow(1)] - public async Task GetCargoTruckByIdTest(int cargoTruckId) - { - var cargoTruck = await _signalRClient.GetCargoTruckById(cargoTruckId); - - Assert.IsNotNull(cargoTruck); - Assert.AreEqual(cargoTruckId, cargoTruck.Id); - - return cargoTruck; - } - - [TestMethod] - [DataRow(1)] - public async Task GetCargoTrucksByCargoPartnerIdTest(int cargoPartnerId) - { - var cargoTrucks = await _signalRClient.GetCargoTrucksByCargoPartnerId(cargoPartnerId); - - Assert.IsNotNull(cargoTrucks); - Assert.IsNotEmpty(cargoTrucks); - } - - - [TestMethod] - [DataRow(1)] - public async Task UpdateCargoTruckTest(int cargoTruckId) - { - var cargoTruck = await GetCargoTruckByIdTest(cargoTruckId); - - var newLicencePlate = GetFixtureName(cargoTruck.LicencePlate); - - cargoTruck.LicencePlate = newLicencePlate; - cargoTruck = await _signalRClient.UpdateCargoTruck(cargoTruck); - - Assert.IsNotNull(cargoTruck); - Assert.IsTrue(cargoTruck.LicencePlate == newLicencePlate); - - cargoTruck.LicencePlate = GetOriginalName(cargoTruck.LicencePlate); - cargoTruck = await _signalRClient.UpdateCargoTruck(cargoTruck); - - Assert.IsNotNull(cargoTruck); - Assert.AreEqual(cargoTruckId, cargoTruck.Id); - } - #endregion CargoTruck - #region Shipping [TestMethod] public async Task GetShippingsTest() @@ -299,7 +156,7 @@ namespace FruitBankHybrid.Shared.Tests else { Assert.IsNotNull(shippingItem.ShippingDocument); - Assert.IsTrue(shippingItem.ShippingDocument.ShippingDocumentToFiles?.Count == 0); + Assert.AreEqual(0, shippingItem.ShippingDocument.ShippingDocumentToFiles?.Count); } } @@ -313,11 +170,11 @@ namespace FruitBankHybrid.Shared.Tests if (shippingItem.IsMeasurable) Assert.IsNotNull(shippingItem.Pallet, $"shippingItem.Pallet == null; shippingItem.PalletId: {shippingItem.PalletId}"); Assert.IsNotNull(shippingItem.ProductDto, $"shippingItem.Product == null; shippingItem.ProductId: {shippingItem.ProductId}"); - Assert.IsTrue(shippingItem.Id == shippingItemId); + Assert.AreEqual(shippingItemId, shippingItem.Id); - Assert.IsTrue(shippingItem.QuantityOnDocument > 0, "QuantityOnDocument == 0"); - Assert.IsTrue(shippingItem.NetWeightOnDocument > 0, "NetWeightOnDocument == 0"); - Assert.IsTrue(shippingItem.GrossWeightOnDocument > 0, "GrossWeightOnDocument == 0"); + Assert.IsGreaterThan(0, shippingItem.QuantityOnDocument, "QuantityOnDocument == 0"); + Assert.IsGreaterThan(0, shippingItem.NetWeightOnDocument, "NetWeightOnDocument == 0"); + Assert.IsGreaterThan(0, shippingItem.GrossWeightOnDocument, "GrossWeightOnDocument == 0"); return shippingItem; } diff --git a/FruitBankHybrid.Shared.Tests/FruitBankPartnerTests.cs b/FruitBankHybrid.Shared.Tests/FruitBankPartnerTests.cs new file mode 100644 index 00000000..a3cc4214 --- /dev/null +++ b/FruitBankHybrid.Shared.Tests/FruitBankPartnerTests.cs @@ -0,0 +1,225 @@ +using FruitBank.Common; +using FruitBank.Common.Entities; +using FruitBankHybrid.Shared.Services.SignalRs; + +// ReSharper disable CompareOfFloatsByEqualityOperator + +namespace FruitBankHybrid.Shared.Tests +{ + [TestClass] + public sealed class FruitBankPartnerTests + { + private const int CustomerIdAasdDsserverCom = 6;//aasd@dsserver.com + private const string Fixture = "_test.temp"; + + private FruitBankSignalRClient _signalRClient = null!; + + private static string GetFixtureName(string name) => $"{GetOriginalName(name)}{Fixture}"; + private static string GetOriginalName(string name) => name.Replace(Fixture, string.Empty); + + [TestInitialize] + public void TestInit() + { + if (!FruitBankConstClient.BaseUrl.Contains("localhost:")) throw new Exception("NEM LOCALHOST-ON TESZTELÜNK!"); + + _signalRClient = TestSignalRClientFactory.Create(nameof(FruitBankClientTests)); + } + + #region Partner + + [TestMethod] + public async Task GetPartnersTest() + { + var partners = await _signalRClient.GetPartners(); + + Assert.IsNotNull(partners); + Assert.IsNotEmpty(partners); + } + + //[TestMethod] + //[DataRow(1)] + public async Task GetPartnerByIdTest(int partnerId) + { + var partner = await _signalRClient.GetPartnerById(partnerId); + + Assert.IsNotNull(partner); + Assert.AreEqual(partnerId, partner.Id); + + return partner; + } + + [TestMethod] + [DataRow(2)] + public async Task UpdatePartnerTest(int partnerId) + { + var partner = await GetPartnerByIdTest(partnerId); + + var newName = GetFixtureName(partner.Name); + + partner.Name = newName; + partner = await _signalRClient.UpdatePartner(partner); + + Assert.IsNotNull(partner); + Assert.AreEqual(newName, partner.Name); + + partner.Name = GetOriginalName(partner.Name); + partner = await _signalRClient.UpdatePartner(partner); + + Assert.IsNotNull(partner); + Assert.AreEqual(partnerId, partner.Id); + } + #endregion Partner + + #region CargoPartner + [TestMethod] + public async Task GetCargoPartnersTest() + { + var partners = await _signalRClient.GetCargoPartners(); + + Assert.IsNotNull(partners); + Assert.IsNotEmpty(partners); + } + //[TestMethod] + //[DataRow(1)] + public async Task GetCargoPartnerByIdTest(int cargoPartnerId) + { + var cargoPartner = await _signalRClient.GetCargoPartnerById(cargoPartnerId); + + Assert.IsNotNull(cargoPartner); + Assert.AreEqual(cargoPartnerId, cargoPartner.Id); + + return cargoPartner; + } + + [TestMethod] + [DataRow(1)] + public async Task UpdateCargoPartnerTest(int cargoPartnerId) + { + var cargoPartner = await GetCargoPartnerByIdTest(cargoPartnerId); + + var newName = GetFixtureName(cargoPartner.Name); + + cargoPartner.Name = newName; + cargoPartner = await _signalRClient.UpdateCargoPartner(cargoPartner); + + Assert.IsNotNull(cargoPartner); + Assert.AreEqual(newName, cargoPartner.Name); + + cargoPartner.Name = GetOriginalName(cargoPartner.Name); + cargoPartner = await _signalRClient.UpdateCargoPartner(cargoPartner); + + Assert.IsNotNull(cargoPartner); + Assert.AreEqual(cargoPartnerId, cargoPartner.Id); + } + #endregion CargoPartner + + #region CargoTruck + [TestMethod] + public async Task GetCargoTrucksTest() + { + var cargoTrucks = await _signalRClient.GetCargoTrucks(); + + Assert.IsNotNull(cargoTrucks); + Assert.IsNotEmpty(cargoTrucks); + } + + //[TestMethod] + //[DataRow(1)] + public async Task GetCargoTruckByIdTest(int cargoTruckId) + { + var cargoTruck = await _signalRClient.GetCargoTruckById(cargoTruckId); + + Assert.IsNotNull(cargoTruck); + Assert.AreEqual(cargoTruckId, cargoTruck.Id); + + return cargoTruck; + } + + [TestMethod] + [DataRow(1)] + public async Task GetCargoTrucksByCargoPartnerIdTest(int cargoPartnerId) + { + var cargoTrucks = await _signalRClient.GetCargoTrucksByCargoPartnerId(cargoPartnerId); + + Assert.IsNotNull(cargoTrucks); + Assert.IsNotEmpty(cargoTrucks); + } + + + [TestMethod] + [DataRow(1)] + public async Task UpdateCargoTruckTest(int cargoTruckId) + { + var cargoTruck = await GetCargoTruckByIdTest(cargoTruckId); + + var newLicencePlate = GetFixtureName(cargoTruck.LicencePlate); + + cargoTruck.LicencePlate = newLicencePlate; + cargoTruck = await _signalRClient.UpdateCargoTruck(cargoTruck); + + Assert.IsNotNull(cargoTruck); + Assert.AreEqual(newLicencePlate, cargoTruck.LicencePlate); + + cargoTruck.LicencePlate = GetOriginalName(cargoTruck.LicencePlate); + cargoTruck = await _signalRClient.UpdateCargoTruck(cargoTruck); + + Assert.IsNotNull(cargoTruck); + Assert.AreEqual(cargoTruckId, cargoTruck.Id); + } + #endregion CargoTruck + + #region PartnerDepot + [TestMethod] + public async Task GetPartnerDepotsTest() + { + var partnerDepots = await _signalRClient.GetPartnerDepots(); + + Assert.IsNotNull(partnerDepots); + Assert.IsNotEmpty(partnerDepots); + } + + //[TestMethod] + //[DataRow(1)] + public async Task GetPartnerDepotByIdTest(int partnerDepotId) + { + var partnerDepot = await _signalRClient.GetPartnerDepotById(partnerDepotId); + + Assert.IsNotNull(partnerDepot); + Assert.AreEqual(partnerDepotId, partnerDepot.Id); + + return partnerDepot; + } + + [TestMethod] + [DataRow(1)] + public async Task GetPartnerDepotsByPartnerIdTest(int partnerId) + { + var partnerDepots = await _signalRClient.GetPartnerDepotsByPartnerId(partnerId); + + Assert.IsNotNull(partnerDepots); + Assert.IsNotEmpty(partnerDepots); + } + + [TestMethod] + [DataRow(1)] + public async Task UpdatePartnerDepotTest(int partnerDepotId) + { + var partnerDepot = await GetPartnerDepotByIdTest(partnerDepotId); + + var newName = GetFixtureName(partnerDepot.Name); + + partnerDepot.Name = newName; + partnerDepot = await _signalRClient.UpdatePartnerDepot(partnerDepot); + + Assert.IsNotNull(partnerDepot); + Assert.AreEqual(newName, partnerDepot.Name); + + partnerDepot.Name = GetOriginalName(partnerDepot.Name); + partnerDepot = await _signalRClient.UpdatePartnerDepot(partnerDepot); + + Assert.IsNotNull(partnerDepot); + Assert.AreEqual(partnerDepotId, partnerDepot.Id); + } + #endregion PartnerDepot + } +} diff --git a/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartner.razor b/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartner.razor index 0bc66eb8..61947300 100644 --- a/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartner.razor +++ b/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartner.razor @@ -29,7 +29,7 @@ - + @@ -46,6 +46,7 @@ @if (IsMasterGrid) { var partner = ((Partner)context.DataItem); + var partnerDepots = partner?.PartnerDepots ?? []; var shippingDocuments = partner?.ShippingDocuments ?? []; @@ -62,6 +63,13 @@ } + + + @{ + var observablePartnerDepots = new AcObservableCollection(partnerDepots); + + } + } diff --git a/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartnerDepot.razor b/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartnerDepot.razor new file mode 100644 index 00000000..26a090f1 --- /dev/null +++ b/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartnerDepot.razor @@ -0,0 +1,124 @@ +@using System.Collections.ObjectModel +@using AyCode.Blazor.Components.Components.Grids +@using AyCode.Core.Helpers +@using AyCode.Core.Interfaces +@using AyCode.Core.Loggers +@using AyCode.Utils.Extensions +@using FruitBank.Common.Dtos +@using FruitBank.Common.Entities +@using FruitBankHybrid.Shared.Components.Grids.Shippings +@using FruitBankHybrid.Shared.Databases +@using FruitBankHybrid.Shared.Services.Loggers +@using FruitBankHybrid.Shared.Services.SignalRs + +@inject IEnumerable LogWriters +@inject FruitBankSignalRClient FruitBankSignalRClient + + + + + + + + + + + + + + + + + + + @* + @if (IsMasterGrid) + { + var partnerDepot = ((PartnerDepot)context.DataItem); + + + + @{ + var observableShippingDocuments = new AcObservableCollection(shippingDocuments); + + } + + + + @{ + var observableShippingItems = new AcObservableCollection(shippingDocuments.SelectMany(sd => sd.ShippingItems ?? [])); + + } + + + } + + *@ + @if (IsMasterGrid) + { + + } + + + + + +@code { + //[Inject] public required ObjectLock ObjectLock { get; set; } + [Inject] public required DatabaseClient Database { get; set; } + + [Parameter] public AcObservableCollection? PartnerDepots { get; set; } + + const string ExportFileName = "ExportResult"; + string GridSearchText = ""; + bool EditItemsEnabled { get; set; } + int FocusedRowVisibleIndex { get; set; } + public GridPartnerDepotBase Grid { get; set; } + string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty; + + [Parameter] public IId? ParentDataItem { get; set; } + + public bool IsMasterGrid => ParentDataItem == null; + public bool ParentDataItemIsPartner => (ParentDataItem is Partner); + + private int _activeTabIndex; + private LoggerClient _logger; + + protected override async Task OnInitializedAsync() + { + _logger = new LoggerClient(LogWriters.ToArray()); + await ReloadDataFromDb(false); + } + + private async Task ReloadDataFromDb(bool forceReload = false) + { + if (!IsMasterGrid) return; + + if (Grid == null) return; + + using (await ObjectLock.GetSemaphore().UseWaitAsync()) + if (forceReload) await Grid.ReloadDataSourceAsync(); + + if (forceReload) Grid.Reload(); + } + + async Task Grid_FocusedRowChanged(GridFocusedRowChangedEventArgs args) + { + if (Grid == null) return; + + if (Grid.IsEditing() && !Grid.IsEditingNewRow()) + await Grid.SaveChangesAsync(); + + FocusedRowVisibleIndex = args.VisibleIndex; + EditItemsEnabled = true; + } +} + diff --git a/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartnerDepotBase.cs b/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartnerDepotBase.cs new file mode 100644 index 00000000..c62b4e50 --- /dev/null +++ b/FruitBankHybrid.Shared/Components/Grids/Partners/GridPartnerDepotBase.cs @@ -0,0 +1,85 @@ +using AyCode.Core.Interfaces; +using AyCode.Utils.Extensions; +using DevExpress.Blazor; +using FruitBank.Common.Entities; +using FruitBank.Common.Interfaces; +using FruitBank.Common.SignalRs; +using FruitBankHybrid.Shared.Pages; +using Microsoft.AspNetCore.Components; + +namespace FruitBankHybrid.Shared.Components.Grids.Partners; + +public class GridPartnerDepotBase: FruitBankGridBase, IGrid +{ + private bool _isFirstInitializeParameterCore; + private bool _isFirstInitializeParameters; + + public GridPartnerDepotBase() : base() + { + //GetAllMessageTag = SignalRTags.GetPartnerDepots; + AddMessageTag = SignalRTags.AddPartnerDepot; + UpdateMessageTag = SignalRTags.UpdatePartnerDepot; + + //RemoveMessageTag = SignalRTags.; + } + + protected override async Task OnInitializedAsync() + { + if (GetAllMessageTag > 0) return; + + if (IsMasterGrid) GetAllMessageTag = SignalRTags.GetPartnerDepots; + else + { + if (ContextIds == null || ContextIds.Length == 0) ContextIds = [ParentDataItem!.Id]; + + switch (ParentDataItem) + { + case IPartner: + GetAllMessageTag = SignalRTags.GetPartnerDepotsByPartnerId; + if (KeyFieldNameToParentId.IsNullOrWhiteSpace()) KeyFieldNameToParentId = nameof(PartnerDepot.PartnerId); + + break; + } + } + + await base.OnInitializedAsync(); + } + + protected override void OnParametersSet() + { + base.OnParametersSet(); + + if (!_isFirstInitializeParameters) + { + //if (!IsMasterGrid && (ContextIds == null || ContextIds.Length == 0)) + //{ + // ContextIds = [ParentDataItem!.Id]; + // GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId; + //} + + _isFirstInitializeParameters = false; + } + } + + protected override async Task SetParametersAsyncCore(ParameterView parameters) + { + await base.SetParametersAsyncCore(parameters); + + if (!_isFirstInitializeParameterCore) + { + //if (!IsMasterGrid && (ContextIds == null || ContextIds.Length == 0)) + //{ + // ContextIds = [ParentDataItem!.Id]; + // GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId; + //} + + //ShowFilterRow = true; + //ShowGroupPanel = true; + //AllowSort = false; + + //etc... + + _isFirstInitializeParameterCore = false; + } + } +} \ No newline at end of file diff --git a/FruitBankHybrid.Shared/Layout/NavMenu.razor b/FruitBankHybrid.Shared/Layout/NavMenu.razor index 03b90813..ca3286ad 100644 --- a/FruitBankHybrid.Shared/Layout/NavMenu.razor +++ b/FruitBankHybrid.Shared/Layout/NavMenu.razor @@ -63,6 +63,12 @@ Szállítmányok + + } } else diff --git a/FruitBankHybrid.Shared/Layout/NavMenu.razor.css b/FruitBankHybrid.Shared/Layout/NavMenu.razor.css index e1614b30..2987b88d 100644 --- a/FruitBankHybrid.Shared/Layout/NavMenu.razor.css +++ b/FruitBankHybrid.Shared/Layout/NavMenu.razor.css @@ -59,6 +59,10 @@ --icon-mask-image: var(--icon-login-mask-image); } +::deep .ekaer-icon { + --icon-mask-image: var(--icon-ekaer-mask-image); +} + .nav-item { font-size: 0.9rem; padding-bottom: 0.5rem; diff --git a/FruitBankHybrid.Shared/wwwroot/app.css b/FruitBankHybrid.Shared/wwwroot/app.css index 71e41aa0..52abce8f 100644 --- a/FruitBankHybrid.Shared/wwwroot/app.css +++ b/FruitBankHybrid.Shared/wwwroot/app.css @@ -64,6 +64,7 @@ h1:focus { --icon-orders-mask-image: url("images/orders-fluent.svg"); --icon-shippings-mask-image: url("images/shippings-fluent.svg"); --icon-login-mask-image: url("images/login-fluent.svg"); + --icon-ekaer-mask-image: url("images/ekaer-fluent.svg"); } .icon { diff --git a/FruitBankHybrid.Shared/wwwroot/images/ekaer-fluent.svg b/FruitBankHybrid.Shared/wwwroot/images/ekaer-fluent.svg new file mode 100644 index 00000000..7c6623f3 --- /dev/null +++ b/FruitBankHybrid.Shared/wwwroot/images/ekaer-fluent.svg @@ -0,0 +1,4 @@ + + + + diff --git a/FruitBankHybrid/FruitBankHybrid.csproj b/FruitBankHybrid/FruitBankHybrid.csproj index a5bcd727..5d471d11 100644 --- a/FruitBankHybrid/FruitBankHybrid.csproj +++ b/FruitBankHybrid/FruitBankHybrid.csproj @@ -23,7 +23,7 @@ 1 $(ApplicationDisplayVersion) - false + true true true @@ -47,9 +47,9 @@ - + true