TiamGrid is in progress...
This commit is contained in:
parent
767a5b20fc
commit
494c5b26bb
|
|
@ -13,7 +13,7 @@ public class SignalRTags : AcSignalRTags
|
||||||
[SignalMessageTag(typeof(SignalPostJsonDataMessage<Transfer>), typeof(SignalResponseMessage<string>), null, null)]
|
[SignalMessageTag(typeof(SignalPostJsonDataMessage<Transfer>), typeof(SignalResponseMessage<string>), null, null)]
|
||||||
public const int UpdateTransferAsync = 7;
|
public const int UpdateTransferAsync = 7;
|
||||||
public const int AddTransferAsync = 8;
|
public const int AddTransferAsync = 8;
|
||||||
public const int DeleteTransferAsync = 9;
|
public const int RemoveTransferAsync = 9;
|
||||||
public const int GetCompaniesAsync = 10;
|
public const int GetCompaniesAsync = 10;
|
||||||
public const int UpdateCompanyAsync = 11;
|
public const int UpdateCompanyAsync = 11;
|
||||||
public const int CreateCompanyAsync = 12;
|
public const int CreateCompanyAsync = 12;
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
@inject IServiceProviderDataService serviceProviderDataService
|
@inject IServiceProviderDataService serviceProviderDataService
|
||||||
@inject IUserDataService userDataService
|
@inject IUserDataService userDataService
|
||||||
@inject ISessionService sessionService
|
@inject ISessionService sessionService
|
||||||
@inject DevAdminSignalClient devAdminSignalClient;
|
@inject AdminSignalRClient AdminSignalRClient;
|
||||||
<PageTitle>Admin - Companies</PageTitle>
|
<PageTitle>Admin - Companies</PageTitle>
|
||||||
|
|
||||||
<div class="text-center m-5">
|
<div class="text-center m-5">
|
||||||
|
|
@ -333,7 +333,7 @@
|
||||||
//remove orderData from orderData array
|
//remove orderData from orderData array
|
||||||
_logger.Info($"companyData deleting; companyId: {company.Id}");
|
_logger.Info($"companyData deleting; companyId: {company.Id}");
|
||||||
|
|
||||||
var response = await devAdminSignalClient.PostDataAsync(SignalRTags.DeleteCompanyAsync, company);
|
var response = await AdminSignalRClient.PostDataAsync(SignalRTags.DeleteCompanyAsync, company);
|
||||||
|
|
||||||
//resultCompany = await serviceProviderDataService.DeleteServiceProviderAsync(company.Id);
|
//resultCompany = await serviceProviderDataService.DeleteServiceProviderAsync(company.Id);
|
||||||
//await UpdateDataAsync();
|
//await UpdateDataAsync();
|
||||||
|
|
|
||||||
|
|
@ -20,13 +20,14 @@
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Core.Helpers
|
||||||
@using AyCode.Interfaces.Entities
|
@using AyCode.Interfaces.Entities
|
||||||
@using TIAM.Services
|
@using TIAM.Services
|
||||||
|
@using TIAMSharedUI.Shared.Components
|
||||||
@layout AdminLayout
|
@layout AdminLayout
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject IStringLocalizer<TIAMResources> localizer
|
@inject IStringLocalizer<TIAMResources> localizer
|
||||||
@inject IWizardProcessor wizardProcessor
|
@inject IWizardProcessor wizardProcessor
|
||||||
@inject ITransferDataService transferDataService
|
@inject ITransferDataService transferDataService
|
||||||
@inject ISessionService sessionService
|
@inject ISessionService sessionService
|
||||||
@inject DevAdminSignalClient devAdminSignalClient;
|
@inject AdminSignalRClient AdminSignalRClient;
|
||||||
<PageTitle>Transfers</PageTitle>
|
<PageTitle>Transfers</PageTitle>
|
||||||
|
|
||||||
<div class="text-center m-5">
|
<div class="text-center m-5">
|
||||||
|
|
@ -78,14 +79,24 @@
|
||||||
Click="ColumnChooserButton_Click" />
|
Click="ColumnChooserButton_Click" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<DxGrid @ref="Grid2"
|
<TiamGrid @ref="TransferGrid"
|
||||||
Data="TransferDataList"
|
TDataItem="Transfer"
|
||||||
AutoCollapseDetailRow="AutoCollapseDetailRow"
|
Logger="_logger"
|
||||||
KeyboardNavigationEnabled="true"
|
SignalRClient="AdminSignalRClient"
|
||||||
|
GetAllMessageTag="SignalRTags.GetTransfersAsync"
|
||||||
|
AddMessageTag="SignalRTags.AddTransferAsync"
|
||||||
|
UpdateMessageTag="SignalRTags.UpdateTransferAsync"
|
||||||
|
RemoveMessageTag="SignalRTags.RemoveTransferAsync"
|
||||||
|
OnDataSourceChanged="DataSourceChanged"
|
||||||
|
OnDataSourceItemChanged="DataSourceItemChanged"
|
||||||
|
OnDataItemDeleting="DataItemDeleting"
|
||||||
|
|
||||||
CustomizeElement="Grid_CustomizeElement"
|
CustomizeElement="Grid_CustomizeElement"
|
||||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||||
EditModelSaving="Grid_EditModelSaving"
|
EditModelSaving="Grid_EditModelSaving"
|
||||||
DataItemDeleting="Grid_DataItemDeleting"
|
|
||||||
|
AutoCollapseDetailRow="AutoCollapseDetailRow"
|
||||||
|
KeyboardNavigationEnabled="true"
|
||||||
EditMode="GridEditMode.EditForm"
|
EditMode="GridEditMode.EditForm"
|
||||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||||
ShowFilterRow="true"
|
ShowFilterRow="true"
|
||||||
|
|
@ -124,7 +135,7 @@
|
||||||
</DxGridDataColumn>
|
</DxGridDataColumn>
|
||||||
</Columns>
|
</Columns>
|
||||||
<DetailRowTemplate>
|
<DetailRowTemplate>
|
||||||
<Grid_MasterDetail_NestedGrid_DetailContent Customer="(TIAM.Entities.Transfers.Transfer)context.DataItem" KeyboardNavigationEnabled="true" />
|
<Grid_MasterDetail_NestedGrid_DetailContent Customer="(Transfer)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||||
</DetailRowTemplate>
|
</DetailRowTemplate>
|
||||||
<EditFormTemplate Context="EditFormContext">
|
<EditFormTemplate Context="EditFormContext">
|
||||||
@{
|
@{
|
||||||
|
|
@ -163,8 +174,7 @@
|
||||||
</EditFormTemplate>
|
</EditFormTemplate>
|
||||||
|
|
||||||
|
|
||||||
</DxGrid>
|
</TiamGrid>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</DxTabPage>
|
</DxTabPage>
|
||||||
|
|
||||||
|
|
@ -208,13 +218,12 @@
|
||||||
|
|
||||||
//public Transfer myModel = new Transfer();
|
//public Transfer myModel = new Transfer();
|
||||||
|
|
||||||
public List<Transfer> TransferDataList { get; set; }
|
//public List<Transfer> TransferDataList { get; set; }
|
||||||
|
|
||||||
bool PopupVisible { get; set; }
|
bool PopupVisible { get; set; }
|
||||||
|
|
||||||
|
|
||||||
IGrid Grid2 { get; set; }
|
TiamGrid<Transfer> TransferGrid { get; set; }
|
||||||
object MasterGridData { get; set; }
|
|
||||||
bool AutoCollapseDetailRow { get; set; }
|
bool AutoCollapseDetailRow { get; set; }
|
||||||
|
|
||||||
public List<string> IgnoreList =
|
public List<string> IgnoreList =
|
||||||
|
|
@ -306,19 +315,19 @@
|
||||||
|
|
||||||
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
|
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 5)
|
if (e.ElementType == GridElementType.DataRow && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 5)
|
||||||
{
|
{
|
||||||
e.CssClass = "bg-important";
|
e.CssClass = "bg-important";
|
||||||
}
|
}
|
||||||
else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 5 && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") < 35)
|
else if (e.ElementType == GridElementType.DataRow && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 5 && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") < 35)
|
||||||
{
|
{
|
||||||
e.CssClass = "bg-attention";
|
e.CssClass = "bg-attention";
|
||||||
}
|
}
|
||||||
else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 35)
|
else if (e.ElementType == GridElementType.DataRow && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 35)
|
||||||
{
|
{
|
||||||
e.CssClass = "bg-finished";
|
e.CssClass = "bg-finished";
|
||||||
}
|
}
|
||||||
else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 35)
|
else if (e.ElementType == GridElementType.DataRow && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 35)
|
||||||
{
|
{
|
||||||
e.CssClass = "bg-cancel";
|
e.CssClass = "bg-cancel";
|
||||||
}
|
}
|
||||||
|
|
@ -345,16 +354,14 @@
|
||||||
transferEditModel.ContactEmail = "your@email.address";
|
transferEditModel.ContactEmail = "your@email.address";
|
||||||
}
|
}
|
||||||
|
|
||||||
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
|
async Task DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||||
{
|
{
|
||||||
var transfer = (Transfer)e.DataItem;
|
_logger.Info($"ManageTransfers OnItemDeleting");
|
||||||
|
|
||||||
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
// var transfer = (Transfer)e.DataItem;
|
||||||
//remove orderData from orderData array
|
// _logger.Info("ManageTransfers delete");
|
||||||
_logger.Info("transfer delete");
|
// PostDataToServerAsync(transfer, SignalRTags.DeleteTransferAsync, true).Forget();
|
||||||
|
// //await UpdateDataAsync();
|
||||||
PostDataToServerAsync(transfer, SignalRTags.DeleteTransferAsync, true).Forget();
|
|
||||||
//await UpdateDataAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -375,9 +382,9 @@
|
||||||
{
|
{
|
||||||
_logger.Info("PostDataToServerAsync called; transferId " + transfer.Id);
|
_logger.Info("PostDataToServerAsync called; transferId " + transfer.Id);
|
||||||
|
|
||||||
RefreshDataSources(transfer, isDelete); //egyből látszódik a változás a grid-ben, nem csak a callback lefutásakor! felhasználóbarátabb... - J.
|
RefreshAppointments(transfer, isDelete); //egyből látszódik a változás a grid-ben, nem csak a callback lefutásakor! felhasználóbarátabb... - J.
|
||||||
|
|
||||||
return devAdminSignalClient.PostDataAsync(messageTag, transfer, repsonse =>
|
return AdminSignalRClient.PostDataAsync(messageTag, transfer, repsonse =>
|
||||||
{
|
{
|
||||||
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
||||||
{
|
{
|
||||||
|
|
@ -385,23 +392,23 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
RefreshDataSources(repsonse.ResponseData, isDelete);
|
RefreshAppointments(repsonse.ResponseData, isDelete);
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
});
|
});
|
||||||
|
|
||||||
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RefreshDataSources(Transfer transfer, bool isDelete)
|
private void RefreshAppointments(Transfer transfer, bool isDelete)
|
||||||
{
|
{
|
||||||
var transferIndex = TransferDataList.FindIndex(x => x.Id == transfer.Id);
|
// var transferIndex = TransferDataList.FindIndex(x => x.Id == transfer.Id);
|
||||||
|
|
||||||
if (isDelete && transferIndex > -1) TransferDataList.RemoveAt(transferIndex);
|
// if (isDelete && transferIndex > -1) TransferDataList.RemoveAt(transferIndex);
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
if (transferIndex > -1) TransferDataList[transferIndex] = transfer;
|
// if (transferIndex > -1) TransferDataList[transferIndex] = transfer;
|
||||||
else TransferDataList.Add(transfer);
|
// else TransferDataList.Add(transfer);
|
||||||
}
|
// }
|
||||||
|
|
||||||
var appointmentIndex = AppointmentModels.FindIndex(x => x.SourceId == transfer.Id);
|
var appointmentIndex = AppointmentModels.FindIndex(x => x.SourceId == transfer.Id);
|
||||||
if (isDelete && appointmentIndex > -1) AppointmentModels.RemoveAt(appointmentIndex);
|
if (isDelete && appointmentIndex > -1) AppointmentModels.RemoveAt(appointmentIndex);
|
||||||
|
|
@ -418,12 +425,12 @@
|
||||||
{
|
{
|
||||||
_logger.Info("UpdateAllDataAsync called");
|
_logger.Info("UpdateAllDataAsync called");
|
||||||
|
|
||||||
return devAdminSignalClient.GetAllAsync<List<Transfer>>(SignalRTags.GetTransfersAsync, response =>
|
return AdminSignalRClient.GetAllAsync<List<Transfer>>(SignalRTags.GetTransfersAsync, response =>
|
||||||
{
|
{
|
||||||
if (response.Status == SignalResponseStatus.Error)
|
if (response.Status == SignalResponseStatus.Error)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
InitializeDataSources(response.ResponseData ?? []);
|
InitializeAppointments(response.ResponseData ?? []);
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -432,7 +439,7 @@
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<ManageTransfers>(LogWriters.ToArray());
|
_logger = new LoggerClient<ManageTransfers>(LogWriters.ToArray());
|
||||||
|
|
||||||
UpdateAllDataAsync().Forget();
|
//UpdateAllDataAsync().Forget();
|
||||||
|
|
||||||
//var transfers = await devAdminSignalClient.GetAllAsync<List<Transfer>>(SignalRTags.GetTransfersAsync);
|
//var transfers = await devAdminSignalClient.GetAllAsync<List<Transfer>>(SignalRTags.GetTransfersAsync);
|
||||||
//InitializeDataSources(transfers ?? []);
|
//InitializeDataSources(transfers ?? []);
|
||||||
|
|
@ -443,12 +450,13 @@
|
||||||
return base.OnInitializedAsync();
|
return base.OnInitializedAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitializeDataSources(List<Transfer> transferDataList)
|
private void InitializeAppointments(ICollection<Transfer> transferDataList)
|
||||||
{
|
{
|
||||||
TransferDataList = transferDataList;
|
_logger.Info("InitializeAppointments called");
|
||||||
AppointmentModels = new List<AppointmentModel>(TransferDataList.Count);
|
|
||||||
|
|
||||||
foreach (var transfer in TransferDataList)
|
AppointmentModels = new List<AppointmentModel>(transferDataList.Count);
|
||||||
|
|
||||||
|
foreach (var transfer in transferDataList)
|
||||||
{
|
{
|
||||||
// var bnm = DataStorage.CreateAppointmentItem();
|
// var bnm = DataStorage.CreateAppointmentItem();
|
||||||
// bnm.Start = transfer.Appointment;
|
// bnm.Start = transfer.Appointment;
|
||||||
|
|
@ -486,7 +494,7 @@
|
||||||
|
|
||||||
void ColumnChooserButton_Click()
|
void ColumnChooserButton_Click()
|
||||||
{
|
{
|
||||||
Grid2.ShowColumnChooser();
|
TransferGrid.ShowColumnChooser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -494,7 +502,7 @@
|
||||||
{
|
{
|
||||||
if (firstRender)
|
if (firstRender)
|
||||||
{
|
{
|
||||||
Grid2.ExpandDetailRow(0);
|
TransferGrid.ExpandDetailRow(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void AutoCollapseDetailRow_Changed(bool newValue)
|
void AutoCollapseDetailRow_Changed(bool newValue)
|
||||||
|
|
@ -502,16 +510,22 @@
|
||||||
AutoCollapseDetailRow = newValue;
|
AutoCollapseDetailRow = newValue;
|
||||||
if (!newValue) return;
|
if (!newValue) return;
|
||||||
|
|
||||||
Grid2.BeginUpdate();
|
TransferGrid.BeginUpdate();
|
||||||
Grid2.CollapseAllDetailRows();
|
TransferGrid.CollapseAllDetailRows();
|
||||||
Grid2.ExpandDetailRow(0);
|
TransferGrid.ExpandDetailRow(0);
|
||||||
Grid2.EndUpdate();
|
TransferGrid.EndUpdate();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DataSourceChanged(IList<Transfer> transfers)
|
||||||
|
{
|
||||||
|
_logger.Info("DataSourceChanged called");
|
||||||
|
|
||||||
|
InitializeAppointments(transfers);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DataSourceItemChanged(Transfer transfer)
|
||||||
|
{
|
||||||
|
_logger.Info("DataSourceItemChanged called");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -28,10 +28,8 @@ else
|
||||||
|
|
||||||
//public PopupMessageBox PopupMessageBox { get; private set; } = default!;
|
//public PopupMessageBox PopupMessageBox { get; private set; } = default!;
|
||||||
|
|
||||||
[Parameter]
|
[Parameter] public string LoggerCategory { get; set; }
|
||||||
public string LoggerCategory { get; set; }
|
[Parameter] public EventCallback<Exception> OnError { get; set; }
|
||||||
[Parameter]
|
|
||||||
public EventCallback<Exception> OnError { get; set; }
|
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
|
|
@ -78,3 +76,4 @@ else
|
||||||
_currentError = null;
|
_currentError = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,184 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using AyCode.Core.Helpers;
|
||||||
|
using AyCode.Interfaces.Entities;
|
||||||
|
using AyCode.Services.Loggers;
|
||||||
|
using AyCode.Services.SignalRs;
|
||||||
|
using AyCode.Utils.Extensions;
|
||||||
|
using DevExpress.Blazor;
|
||||||
|
using DevExpress.Blazor.Internal;
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using TIAM.Entities.Transfers;
|
||||||
|
using TIAM.Services;
|
||||||
|
using TIAMWebApp.Shared.Application.Services;
|
||||||
|
using TIAMWebApp.Shared.Application.Utility;
|
||||||
|
|
||||||
|
namespace TIAMSharedUI.Shared.Components
|
||||||
|
{
|
||||||
|
public class TiamGrid<TDataItem> : DxGrid where TDataItem : class, IEntityGuid
|
||||||
|
{
|
||||||
|
private bool _initialParametersSet;
|
||||||
|
private IList<TDataItem>? _dataSource;
|
||||||
|
|
||||||
|
|
||||||
|
public TiamGrid() : base()
|
||||||
|
{ }
|
||||||
|
|
||||||
|
[Parameter] public LoggerClient Logger { get; set; }
|
||||||
|
[Parameter] public string GridName { get; set; }
|
||||||
|
[Parameter] public AcSignalRClientBase SignalRClient { get; set; }
|
||||||
|
|
||||||
|
[Parameter] public int GetAllMessageTag { get; set; }
|
||||||
|
[Parameter] public int GetItemMessageTag { get; set; }
|
||||||
|
[Parameter] public int AddMessageTag { get; set; }
|
||||||
|
[Parameter] public int UpdateMessageTag { get; set; }
|
||||||
|
[Parameter] public int RemoveMessageTag { get; set; }
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
[DefaultValue(null)]
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "BL0007:Component parameters should be auto properties", Justification = "<Pending>")]
|
||||||
|
public IList<TDataItem>? DataSource
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_dataSource == null && Data != null)
|
||||||
|
{
|
||||||
|
Logger.Error($"{GridName} Use the DataSource parameter instead of Data!");
|
||||||
|
throw new NullReferenceException($"{GridName} Use the DataSource parameter instead of Data!");
|
||||||
|
}
|
||||||
|
|
||||||
|
return _dataSource;
|
||||||
|
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_dataSource = value;
|
||||||
|
Data = _dataSource;
|
||||||
|
|
||||||
|
OnDataSourceChanged.InvokeAsync(_dataSource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnInitialized()
|
||||||
|
{
|
||||||
|
base.OnInitialized();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||||
|
{
|
||||||
|
await base.OnAfterRenderAsync(firstRender);
|
||||||
|
|
||||||
|
if (firstRender) RefreshDataSourceAsync().Forget();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public EventCallback<GridDataItemDeletingEventArgs> OnDataItemDeleting{ get; set; }
|
||||||
|
protected new EventCallback<GridDataItemDeletingEventArgs> DataItemDeleting { get; set; }
|
||||||
|
[Parameter]
|
||||||
|
public EventCallback<GridDataItemDeletingEventArgs> OnDataItemDeleted { get; set; }
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public EventCallback<IList<TDataItem>> OnDataSourceChanged { get; set; }
|
||||||
|
[Parameter]
|
||||||
|
public EventCallback<TDataItem> OnDataSourceItemChanged { get; set; }
|
||||||
|
|
||||||
|
private async Task OnItemDeleting(GridDataItemDeletingEventArgs e)
|
||||||
|
{
|
||||||
|
Logger.Info($"{GridName} OnItemDeleting");
|
||||||
|
|
||||||
|
await OnDataItemDeleting.InvokeAsync(e);
|
||||||
|
|
||||||
|
if (e.Cancel)
|
||||||
|
{
|
||||||
|
Logger.Debug($"{GridName} OnItemDeleting canceled");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dataItem = e.DataItem as TDataItem;
|
||||||
|
//PostDataToServerAsync(transfer, SignalRTags.DeleteTransferAsync, true).Forget();
|
||||||
|
//await UpdateDataAsync();
|
||||||
|
|
||||||
|
Logger.Info($"{GridName} OnDataItemDeleted");
|
||||||
|
await OnDataItemDeleted.InvokeAsync(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task RefreshDataSourceAsync()
|
||||||
|
{
|
||||||
|
Logger.Info($"{GridName} UpdateAllDataAsync called");
|
||||||
|
|
||||||
|
return SignalRClient.GetAllAsync<IList<TDataItem>>(GetAllMessageTag, response =>
|
||||||
|
{
|
||||||
|
if (response.Status == SignalResponseStatus.Error)
|
||||||
|
return;
|
||||||
|
|
||||||
|
BeginUpdate();
|
||||||
|
DataSource = response.ResponseData ?? [];
|
||||||
|
EndUpdate();
|
||||||
|
|
||||||
|
InvokeAsync(StateHasChanged).Forget();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private Task PostDataToServerAsync(TDataItem transfer, int messageTag, bool isDelete = false)
|
||||||
|
{
|
||||||
|
Logger.Info($"{GridName} PostDataToServerAsync called; transferId " + transfer.Id);
|
||||||
|
|
||||||
|
RefreshDataSourceItem(transfer, isDelete); //egyből látszódik a változás a grid-ben, nem csak a callback lefutásakor! felhasználóbarátabb... - J.
|
||||||
|
|
||||||
|
return SignalRClient.PostDataAsync(messageTag, transfer, repsonse =>
|
||||||
|
{
|
||||||
|
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
||||||
|
{
|
||||||
|
RefreshDataSourceAsync().Forget();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RefreshDataSourceItem(repsonse.ResponseData, isDelete);
|
||||||
|
InvokeAsync(StateHasChanged).Forget();
|
||||||
|
});
|
||||||
|
|
||||||
|
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RefreshDataSourceItem(TDataItem dataItem, bool isDelete)
|
||||||
|
{
|
||||||
|
var transferIndex = _dataSource.FindIndex(x => x.Id == dataItem.Id);
|
||||||
|
|
||||||
|
if (isDelete && transferIndex > -1) _dataSource.RemoveAt(transferIndex);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (transferIndex > -1) _dataSource[transferIndex] = dataItem;
|
||||||
|
else _dataSource.Add(dataItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
OnDataSourceItemChanged.InvokeAsync(dataItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||||
|
{
|
||||||
|
if (!_initialParametersSet)
|
||||||
|
{
|
||||||
|
base.DataItemDeleting = EventCallback.Factory.Create<GridDataItemDeletingEventArgs>(this, OnItemDeleting);
|
||||||
|
//ShowFilterRow = true;
|
||||||
|
//PageSize = 4;
|
||||||
|
//ShowGroupPanel = true;
|
||||||
|
//AllowSort = false;
|
||||||
|
_initialParametersSet = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return base.SetParametersAsyncCore(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnParametersSet()
|
||||||
|
{
|
||||||
|
base.OnParametersSet();
|
||||||
|
|
||||||
|
if (GridName.IsNullOrWhiteSpace()) GridName = $"[{typeof(TDataItem).Name}Grid]";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
@using TIAMWebApp.Shared.Application.Utility
|
||||||
|
@using AyCode.Core.Extensions
|
||||||
|
@using AyCode.Services.Loggers
|
||||||
|
@using AyCode.Utils.Extensions
|
||||||
|
@inject IJSRuntime jsRuntime
|
||||||
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
|
|
||||||
|
@inherits DxGrid
|
||||||
|
@* @implements IGrid *@
|
||||||
|
|
||||||
|
@* @typeparam TDataType *@
|
||||||
|
|
||||||
|
@* <div>
|
||||||
|
@ChildContent
|
||||||
|
</div>
|
||||||
|
*@
|
||||||
|
@code {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -44,7 +44,7 @@ builder.Services.AddSingleton(x => new ResourceManager("TIAMWebApp.Client.Resour
|
||||||
builder.Services.AddSingleton<IAcLogWriterClientBase, BrowserConsoleLogWriter>();
|
builder.Services.AddSingleton<IAcLogWriterClientBase, BrowserConsoleLogWriter>();
|
||||||
builder.Services.AddSingleton<IAcLogWriterClientBase, SignaRClientLogItemWriter>();
|
builder.Services.AddSingleton<IAcLogWriterClientBase, SignaRClientLogItemWriter>();
|
||||||
//builder.Services.AddSingleton<IAcLogWriterClientBase, HttpClientLogItemWriter>();
|
//builder.Services.AddSingleton<IAcLogWriterClientBase, HttpClientLogItemWriter>();
|
||||||
builder.Services.AddSingleton<DevAdminSignalClient>();
|
builder.Services.AddSingleton<AdminSignalRClient>();
|
||||||
builder.Services.AddSingleton<SignalRService>();
|
builder.Services.AddSingleton<SignalRService>();
|
||||||
builder.Services.AddSingleton<SumupService>();
|
builder.Services.AddSingleton<SumupService>();
|
||||||
builder.Services.AddScoped<AuthenticationStateProvider, CustomAuthStateProvider>();
|
builder.Services.AddScoped<AuthenticationStateProvider, CustomAuthStateProvider>();
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ using TIAMWebApp.Shared.Application.Utility;
|
||||||
|
|
||||||
namespace TIAMWebApp.Shared.Application.Services
|
namespace TIAMWebApp.Shared.Application.Services
|
||||||
{
|
{
|
||||||
public class DevAdminSignalClient(IEnumerable<IAcLogWriterClientBase> logWriters) : AcSignalRClientBase("DevAdminHub", logWriters);
|
public class AdminSignalRClient(IEnumerable<IAcLogWriterClientBase> logWriters) : AcSignalRClientBase("DevAdminHub", logWriters);
|
||||||
|
|
||||||
public abstract class AcSignalRClientBase : IAcSignalRHubClient
|
public abstract class AcSignalRClientBase : IAcSignalRHubClient
|
||||||
{
|
{
|
||||||
|
|
@ -162,6 +162,9 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
|
|
||||||
public virtual Task SendMessageToServerAsync<TResponseData>(int messageTag, ISignalRMessage? message, Action<ISignalResponseMessage<TResponseData?>> responseCallback)
|
public virtual Task SendMessageToServerAsync<TResponseData>(int messageTag, ISignalRMessage? message, Action<ISignalResponseMessage<TResponseData?>> responseCallback)
|
||||||
{
|
{
|
||||||
|
if (messageTag == 0)
|
||||||
|
Logger.Error($"SendMessageToServerAsync; messageTag == 0");
|
||||||
|
|
||||||
var requestId = AcDomain.NextUniqueInt32;
|
var requestId = AcDomain.NextUniqueInt32;
|
||||||
|
|
||||||
_responseByRequestId[requestId] = new Action<ISignalResponseMessage<string>>(responseMessage =>
|
_responseByRequestId[requestId] = new Action<ISignalResponseMessage<string>>(responseMessage =>
|
||||||
|
|
|
||||||
|
|
@ -29,14 +29,14 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
private readonly ISecureStorageHandler secureStorageHandler;
|
private readonly ISecureStorageHandler secureStorageHandler;
|
||||||
private readonly LoggerClient<ServiceProviderDataService> _logger;
|
private readonly LoggerClient<ServiceProviderDataService> _logger;
|
||||||
|
|
||||||
private DevAdminSignalClient _devAdminSignalClient;
|
private AdminSignalRClient _adminSignalRClient;
|
||||||
|
|
||||||
public ServiceProviderDataService(HttpClient http, ISecureStorageHandler secureStorageHandler, DevAdminSignalClient devAdminSignalClient, IEnumerable<IAcLogWriterClientBase> logWriters)
|
public ServiceProviderDataService(HttpClient http, ISecureStorageHandler secureStorageHandler, AdminSignalRClient adminSignalRClient, IEnumerable<IAcLogWriterClientBase> logWriters)
|
||||||
{
|
{
|
||||||
this.http = http;
|
this.http = http;
|
||||||
this.secureStorageHandler = secureStorageHandler;
|
this.secureStorageHandler = secureStorageHandler;
|
||||||
|
|
||||||
_devAdminSignalClient = devAdminSignalClient;
|
_adminSignalRClient = adminSignalRClient;
|
||||||
_logger = new LoggerClient<ServiceProviderDataService>(logWriters.ToArray());
|
_logger = new LoggerClient<ServiceProviderDataService>(logWriters.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -98,7 +98,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
//17.
|
//17.
|
||||||
public Task GetPropertiesByOwnerIdAsync(Guid id, Action<Dictionary<Guid, string>?> callback)
|
public Task GetPropertiesByOwnerIdAsync(Guid id, Action<Dictionary<Guid, string>?> callback)
|
||||||
{
|
{
|
||||||
return _devAdminSignalClient.GetByIdAsync<Dictionary<Guid, string>>(SignalRTags.GetPropertiesByOwnerIdAsync, id, response =>
|
return _adminSignalRClient.GetByIdAsync<Dictionary<Guid, string>>(SignalRTags.GetPropertiesByOwnerIdAsync, id, response =>
|
||||||
{
|
{
|
||||||
if (response.Status == SignalResponseStatus.Error)
|
if (response.Status == SignalResponseStatus.Error)
|
||||||
callback.Invoke(null);
|
callback.Invoke(null);
|
||||||
|
|
@ -112,7 +112,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
//17.
|
//17.
|
||||||
public async Task<Dictionary<Guid, string>?> GetPropertiesByOwnerIdAsync(Guid id)
|
public async Task<Dictionary<Guid, string>?> GetPropertiesByOwnerIdAsync(Guid id)
|
||||||
{
|
{
|
||||||
var companyPropertiesByOwner = await _devAdminSignalClient.GetByIdAsync<Dictionary<Guid, string>>(SignalRTags.GetPropertiesByOwnerIdAsync, id);
|
var companyPropertiesByOwner = await _adminSignalRClient.GetByIdAsync<Dictionary<Guid, string>>(SignalRTags.GetPropertiesByOwnerIdAsync, id);
|
||||||
if (companyPropertiesByOwner != null) _logger.DetailConditional($"companyPropertiesByOwner: {string.Join("; ", companyPropertiesByOwner.Values)}");
|
if (companyPropertiesByOwner != null) _logger.DetailConditional($"companyPropertiesByOwner: {string.Join("; ", companyPropertiesByOwner.Values)}");
|
||||||
|
|
||||||
return companyPropertiesByOwner;
|
return companyPropertiesByOwner;
|
||||||
|
|
@ -146,7 +146,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
//16.
|
//16.
|
||||||
public async Task<List<Company>> GetServiceProvidersAsync()
|
public async Task<List<Company>> GetServiceProvidersAsync()
|
||||||
{
|
{
|
||||||
var companies = await _devAdminSignalClient.GetAllAsync<List<Company>>(SignalRTags.GetCompaniesAsync);
|
var companies = await _adminSignalRClient.GetAllAsync<List<Company>>(SignalRTags.GetCompaniesAsync);
|
||||||
if (companies != null) _logger.DetailConditional($"companies: {string.Join("; ", companies.Count)}");
|
if (companies != null) _logger.DetailConditional($"companies: {string.Join("; ", companies.Count)}");
|
||||||
|
|
||||||
return companies;
|
return companies;
|
||||||
|
|
@ -167,7 +167,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
||||||
//14.
|
//14.
|
||||||
public async Task<Company> UpdateServiceProviderAsync(Company company)
|
public async Task<Company> UpdateServiceProviderAsync(Company company)
|
||||||
{
|
{
|
||||||
var result = await _devAdminSignalClient.PostDataAsync(SignalRTags.UpdateCompanyAsync, company);
|
var result = await _adminSignalRClient.PostDataAsync(SignalRTags.UpdateCompanyAsync, company);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue