Add PartnerDepot grid, EKÁER menu, and test refactor

- 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
This commit is contained in:
Loretta 2026-06-09 14:51:23 +02:00
parent 9a0d5698f0
commit b8f52e0c84
12 changed files with 470 additions and 152 deletions

View File

@ -11,6 +11,9 @@ namespace FruitBank.Common.Entities;
[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.PartnerDbTableName)] [System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.PartnerDbTableName)]
public sealed class Partner : PartnerBase, IPartner public sealed class Partner : PartnerBase, IPartner
{ {
[Association(ThisKey = nameof(Id), OtherKey = nameof(PartnerDepot.PartnerId), CanBeNull = true)]
public List<PartnerDepot>? PartnerDepots { get; set; }
[Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingDocument.PartnerId), CanBeNull = true)] [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingDocument.PartnerId), CanBeNull = true)]
public List<ShippingDocument>? ShippingDocuments { get; set; } public List<ShippingDocument>? ShippingDocuments { get; set; }
} }

View File

@ -13,6 +13,7 @@ public interface ICargoPartner : IPartnerBase
public interface IPartner : IPartnerBase public interface IPartner : IPartnerBase
{ {
List<PartnerDepot>? PartnerDepots { get; set; }
List<ShippingDocument>? ShippingDocuments { get; set; } List<ShippingDocument>? ShippingDocuments { get; set; }
} }

View File

@ -34,149 +34,6 @@ namespace FruitBankHybrid.Shared.Tests
_signalRClient = TestSignalRClientFactory.Create(nameof(FruitBankClientTests)); _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<Partner> 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<CargoPartner> 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<CargoTruck> 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 #region Shipping
[TestMethod] [TestMethod]
public async Task GetShippingsTest() public async Task GetShippingsTest()
@ -299,7 +156,7 @@ namespace FruitBankHybrid.Shared.Tests
else else
{ {
Assert.IsNotNull(shippingItem.ShippingDocument); 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}"); 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.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.IsGreaterThan(0, shippingItem.QuantityOnDocument, "QuantityOnDocument == 0");
Assert.IsTrue(shippingItem.NetWeightOnDocument > 0, "NetWeightOnDocument == 0"); Assert.IsGreaterThan(0, shippingItem.NetWeightOnDocument, "NetWeightOnDocument == 0");
Assert.IsTrue(shippingItem.GrossWeightOnDocument > 0, "GrossWeightOnDocument == 0"); Assert.IsGreaterThan(0, shippingItem.GrossWeightOnDocument, "GrossWeightOnDocument == 0");
return shippingItem; return shippingItem;
} }

View File

@ -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<Partner> 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<CargoPartner> 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<CargoTruck> 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<PartnerDepot> 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
}
}

View File

@ -29,7 +29,7 @@
<DxGridDataColumn FieldName="Name" /> <DxGridDataColumn FieldName="Name" />
<DxGridDataColumn FieldName="TaxId" /> <DxGridDataColumn FieldName="TaxId" />
<DxGridDataColumn FieldName="CertificationNumber" /> <DxGridDataColumn FieldName="CertificationNumber" />
<DxGridDataColumn FieldName="@nameof(CargoPartner.Currency)" /> <DxGridDataColumn FieldName="@nameof(Partner.Currency)" />
<DxGridDataColumn FieldName="@nameof(Partner.CountryCode)" /> <DxGridDataColumn FieldName="@nameof(Partner.CountryCode)" />
<DxGridDataColumn FieldName="PostalCode" /> <DxGridDataColumn FieldName="PostalCode" />
<DxGridDataColumn FieldName="@nameof(Partner.Country)" /> <DxGridDataColumn FieldName="@nameof(Partner.Country)" />
@ -46,6 +46,7 @@
@if (IsMasterGrid) @if (IsMasterGrid)
{ {
var partner = ((Partner)context.DataItem); var partner = ((Partner)context.DataItem);
var partnerDepots = partner?.PartnerDepots ?? [];
var shippingDocuments = partner?.ShippingDocuments ?? []; var shippingDocuments = partner?.ShippingDocuments ?? [];
<DxTabs> <DxTabs>
@ -62,6 +63,13 @@
<GridShippingItemTemplate ShippingItems="@observableShippingItems" ParentDataItem="@partner" /> <GridShippingItemTemplate ShippingItems="@observableShippingItems" ParentDataItem="@partner" />
} }
</DxTabPage> </DxTabPage>
<DxTabPage Text="Telephelyek">
@{
var observablePartnerDepots = new AcObservableCollection<PartnerDepot>(partnerDepots);
<GridPartnerDepot PartnerDepots="observablePartnerDepots" ParentDataItem="@partner"></GridPartnerDepot>
}
</DxTabPage>
</DxTabs> </DxTabs>
} }
</DetailRowTemplate> </DetailRowTemplate>

View File

@ -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<IAcLogWriterClientBase> LogWriters
@inject FruitBankSignalRClient FruitBankSignalRClient
<MgGridWithInfoPanel ShowInfoPanel="@IsMasterGrid">
<GridContent>
<GridPartnerDepotBase @ref="Grid"
DataSource="PartnerDepots"
ParentDataItem="ParentDataItem"
AutoSaveLayoutName="GridPartnerDepot"
SignalRClient="FruitBankSignalRClient"
Logger="_logger"
CssClass="@GridCss"
ValidationEnabled="false"
OnGridFocusedRowChanged="Grid_FocusedRowChanged">
<Columns>
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
<DxGridDataColumn FieldName="@nameof(PartnerDepot.PartnerId)" />
<DxGridDataColumn FieldName="Name" />
<DxGridDataColumn FieldName="@nameof(PartnerDepot.CountryCode)" />
<DxGridDataColumn FieldName="PostalCode" />
<DxGridDataColumn FieldName="City" />
<DxGridDataColumn FieldName="Street" />
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
</Columns>
@* <DetailRowTemplate>
@if (IsMasterGrid)
{
var partnerDepot = ((PartnerDepot)context.DataItem);
<DxTabs>
<DxTabPage Text="Szállítólevelek">
@{
var observableShippingDocuments = new AcObservableCollection<ShippingDocument>(shippingDocuments);
<GridShippingDocument ShippingDocuments="@observableShippingDocuments" ParentDataItem="@partner" Partners="@Partners"></GridShippingDocument>
}
</DxTabPage>
<DxTabPage Text="Szállítmány tételek">
@{
var observableShippingItems = new AcObservableCollection<ShippingItem>(shippingDocuments.SelectMany(sd => sd.ShippingItems ?? []));
<GridShippingItemTemplate ShippingItems="@observableShippingItems" ParentDataItem="@partner" />
}
</DxTabPage>
</DxTabs>
}
</DetailRowTemplate>
*@ <ToolbarTemplate>
@if (IsMasterGrid)
{
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
}
</ToolbarTemplate>
</GridPartnerDepotBase>
</GridContent>
</MgGridWithInfoPanel>
@code {
//[Inject] public required ObjectLock ObjectLock { get; set; }
[Inject] public required DatabaseClient Database { get; set; }
[Parameter] public AcObservableCollection<PartnerDepot>? 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<int>? ParentDataItem { get; set; }
public bool IsMasterGrid => ParentDataItem == null;
public bool ParentDataItemIsPartner => (ParentDataItem is Partner);
private int _activeTabIndex;
private LoggerClient<GridPartnerDepot> _logger;
protected override async Task OnInitializedAsync()
{
_logger = new LoggerClient<GridPartnerDepot>(LogWriters.ToArray());
await ReloadDataFromDb(false);
}
private async Task ReloadDataFromDb(bool forceReload = false)
{
if (!IsMasterGrid) return;
if (Grid == null) return;
using (await ObjectLock.GetSemaphore<PartnerDepot>().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;
}
}

View File

@ -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<PartnerDepot>, 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;
}
}
}

View File

@ -63,6 +63,12 @@
<span class="icon shippings-icon" aria-hidden="true"></span> Szállítmányok <span class="icon shippings-icon" aria-hidden="true"></span> Szállítmányok
</NavLink> </NavLink>
</div> </div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="Ekaer" title="EKÁER">
<span class="icon ekaer-icon" aria-hidden="true"></span> EKÁER
</NavLink>
</div>
} }
} }
else else

View File

@ -59,6 +59,10 @@
--icon-mask-image: var(--icon-login-mask-image); --icon-mask-image: var(--icon-login-mask-image);
} }
::deep .ekaer-icon {
--icon-mask-image: var(--icon-ekaer-mask-image);
}
.nav-item { .nav-item {
font-size: 0.9rem; font-size: 0.9rem;
padding-bottom: 0.5rem; padding-bottom: 0.5rem;

View File

@ -64,6 +64,7 @@ h1:focus {
--icon-orders-mask-image: url("images/orders-fluent.svg"); --icon-orders-mask-image: url("images/orders-fluent.svg");
--icon-shippings-mask-image: url("images/shippings-fluent.svg"); --icon-shippings-mask-image: url("images/shippings-fluent.svg");
--icon-login-mask-image: url("images/login-fluent.svg"); --icon-login-mask-image: url("images/login-fluent.svg");
--icon-ekaer-mask-image: url("images/ekaer-fluent.svg");
} }
.icon { .icon {

View File

@ -0,0 +1,4 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 5.4 10 3l6 2.4V10c0 3.5-2.5 6.4-6 7.4-3.5-1-6-3.9-6-7.4V5.4Z" stroke="black" stroke-width="1.4" stroke-linejoin="round"/>
<path d="M7.2 10l2 2 3.8-4.4" stroke="black" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 354 B

View File

@ -23,7 +23,7 @@
<ApplicationVersion>1</ApplicationVersion> <ApplicationVersion>1</ApplicationVersion>
<PackageVersion>$(ApplicationDisplayVersion)</PackageVersion> <PackageVersion>$(ApplicationDisplayVersion)</PackageVersion>
<RunAOTCompilation>false</RunAOTCompilation> <RunAOTCompilation>true</RunAOTCompilation>
<WasmStripILAfterAOT>true</WasmStripILAfterAOT> <WasmStripILAfterAOT>true</WasmStripILAfterAOT>
<OverrideHtmlAssetPlaceholders>true</OverrideHtmlAssetPlaceholders> <OverrideHtmlAssetPlaceholders>true</OverrideHtmlAssetPlaceholders>
@ -47,9 +47,9 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.Contains('-android'))"> <!--<PropertyGroup Condition="$(TargetFramework.Contains('-android'))">
<RunAOTCompilation>false</RunAOTCompilation> <RunAOTCompilation>false</RunAOTCompilation>
</PropertyGroup> </PropertyGroup>-->
<PropertyGroup Condition="$(TargetFramework.Contains('-ios')) and '$(Configuration)' == 'Release'"> <PropertyGroup Condition="$(TargetFramework.Contains('-ios')) and '$(Configuration)' == 'Release'">
<UseInterpreter>true</UseInterpreter> <UseInterpreter>true</UseInterpreter>