114 lines
3.7 KiB
Plaintext
114 lines
3.7 KiB
Plaintext
@using AyCode.Blazor.Components.Components.Grids
|
|
@using AyCode.Core.Helpers
|
|
@using AyCode.Core.Interfaces
|
|
@using AyCode.Core.Loggers
|
|
@using AyCode.Services.Nav
|
|
@using AyCode.Services.Nav.Ekaer.Models
|
|
@using AyCode.Utils.Extensions
|
|
@using FruitBank.Common.Entities
|
|
@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>
|
|
<GridEkaerHistoryBase @ref="Grid"
|
|
DataSource="EkaerHistories"
|
|
ParentDataItem="ParentDataItem"
|
|
AutoSaveLayoutName="GridEkaerHistory"
|
|
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(EkaerHistory.ForeignKey)" />
|
|
<DxGridDataColumn FieldName="@nameof(EkaerHistory.IsOutgoing)" />
|
|
|
|
<DxGridDataColumn FieldName="Created" ReadOnly="true" DisplayFormat="yyyy.MM.dd hh:mm" />
|
|
<DxGridDataColumn FieldName="Modified" ReadOnly="true" DisplayFormat="yyyy.MM.dd hh:mm" />
|
|
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
|
</Columns>
|
|
<DetailRowTemplate>
|
|
@{
|
|
var ekaerHistory = (EkaerHistory)context.DataItem;
|
|
TradeCardType? tradeCard = null;
|
|
|
|
if (!string.IsNullOrWhiteSpace(ekaerHistory.XmlDoc))
|
|
{
|
|
try
|
|
{
|
|
tradeCard = NavXmlHelper.Deserialize<TradeCardType>(ekaerHistory.XmlDoc);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.Error($"EkaerHistory XmlDoc deserialize error; id: {ekaerHistory.Id}", ex);
|
|
}
|
|
}
|
|
|
|
<GridEkaerDetail TradeCard="@tradeCard" ParentDataItem="@ekaerHistory"></GridEkaerDetail>
|
|
}
|
|
</DetailRowTemplate>
|
|
<ToolbarTemplate>
|
|
@if (IsMasterGrid)
|
|
{
|
|
@* EKÁER-rekordot a rendszer hoz létre (auto-rekord) — kézi new/edit/delete tiltva. *@
|
|
<MgGridToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" EnableNew="false" EnableEdit="false" EnableDelete="false" />
|
|
}
|
|
</ToolbarTemplate>
|
|
</GridEkaerHistoryBase>
|
|
</GridContent>
|
|
</MgGridWithInfoPanel>
|
|
|
|
@code {
|
|
[Inject] public required DatabaseClient Database { get; set; }
|
|
|
|
[Parameter] public AcObservableCollection<EkaerHistory>? EkaerHistories { get; set; }
|
|
|
|
const string ExportFileName = "ExportResult";
|
|
string GridSearchText = "";
|
|
bool EditItemsEnabled { get; set; }
|
|
int FocusedRowVisibleIndex { get; set; }
|
|
public GridEkaerHistoryBase Grid { get; set; }
|
|
string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty;
|
|
|
|
[Parameter] public IId<int>? ParentDataItem { get; set; }
|
|
|
|
public bool IsMasterGrid => ParentDataItem == null;
|
|
|
|
private LoggerClient<GridEkaerHistory> _logger;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
_logger = new LoggerClient<GridEkaerHistory>(LogWriters.ToArray());
|
|
await ReloadDataFromDb(false);
|
|
}
|
|
|
|
private async Task ReloadDataFromDb(bool forceReload = false)
|
|
{
|
|
if (!IsMasterGrid) return;
|
|
|
|
if (Grid == null) return;
|
|
|
|
using (await ObjectLock.GetSemaphore<EkaerHistory>().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;
|
|
}
|
|
}
|