merge
This commit is contained in:
commit
97c60db3f5
|
|
@ -13,9 +13,9 @@ public class SignalRTags : AcSignalRTags
|
|||
[SignalMessageTag(typeof(SignalPostJsonDataMessage<Transfer>), typeof(SignalResponseMessage<string>), null, null)]
|
||||
public const int UpdateTransferAsync = 7;
|
||||
public const int AddTransferAsync = 8;
|
||||
public const int DeleteTransferAsync = 9;
|
||||
public const int RemoveTransferAsync = 9;
|
||||
public const int GetCompaniesAsync = 10;
|
||||
public const int UpdateCompanyAsync = 11;
|
||||
public const int CreateCompanyAsync = 12;
|
||||
public const int DeleteCompanyAsync = 13;
|
||||
public const int AddCompanyAsync = 12;
|
||||
public const int RemoveCompanyAsync = 13;
|
||||
}
|
||||
|
|
@ -10,11 +10,13 @@
|
|||
@using AyCode.Services.Loggers
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using AyCode.Core.Helpers
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject ISessionService SessionService
|
||||
@inject IServiceProviderDataService ServiceProviderDataService
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
|
||||
<h3>Properties</h3>
|
||||
|
||||
|
|
@ -62,14 +64,14 @@
|
|||
</FooterContentTemplate>
|
||||
</DxPopup>*@
|
||||
|
||||
<DxGrid @ref="Grid"
|
||||
Data="ServiceProviderData"
|
||||
<CompanyGrid @ref="_gridCompany"
|
||||
Logger="_logger"
|
||||
SignalRClient="AdminSignalRClient"
|
||||
|
||||
PageSize="12"
|
||||
KeyFieldName="Id"
|
||||
ValidationEnabled="false"
|
||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||
EditModelSaving="Grid_EditModelSaving"
|
||||
DataItemDeleting="Grid_DataItemDeleting"
|
||||
EditMode="GridEditMode.EditRow"
|
||||
KeyboardNavigationEnabled="true">
|
||||
<Columns>
|
||||
|
|
@ -83,7 +85,7 @@
|
|||
<DxGridDataColumn FieldName="OwnerId" MinWidth="80" />
|
||||
|
||||
</Columns>
|
||||
</DxGrid>
|
||||
</CompanyGrid>
|
||||
|
||||
|
||||
</div>
|
||||
|
|
@ -107,8 +109,7 @@
|
|||
@code {
|
||||
private LoggerClient<MyServiceProviders> _logger;
|
||||
|
||||
IGrid Grid { get; set; }
|
||||
Company[]? ServiceProviderData { get; set; }
|
||||
private CompanyGrid _gridCompany;
|
||||
|
||||
public ServiceProviderWizardModel myModel = new ServiceProviderWizardModel();
|
||||
|
||||
|
|
@ -145,7 +146,7 @@
|
|||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (firstRender)
|
||||
await Grid.StartEditRowAsync(0);
|
||||
await _gridCompany.StartEditRowAsync(0);
|
||||
}
|
||||
|
||||
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
|
||||
|
|
@ -158,34 +159,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
|
||||
{
|
||||
if (e.IsNew)
|
||||
//add new orderData to orderData array
|
||||
_logger.Info("New orderData added");
|
||||
//await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel);
|
||||
else
|
||||
_logger.Info("orderData updated");
|
||||
//modify orderData where orderData.Name == e.EditModel.Name
|
||||
|
||||
//await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel);
|
||||
|
||||
await UpdateDataAsync();
|
||||
}
|
||||
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
{
|
||||
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
||||
//remove orderData from orderData array
|
||||
_logger.Info("orderData deleted");
|
||||
//await UpdateDataAsync();
|
||||
}
|
||||
async Task UpdateDataAsync()
|
||||
{
|
||||
//DataSource = await NwindDataService.GetEmployeesEditableAsync();
|
||||
//refresh grid
|
||||
_logger.Info("orderData grid refreshed");
|
||||
}
|
||||
|
||||
protected override Task OnInitializedAsync()
|
||||
{
|
||||
_logger = new LoggerClient<MyServiceProviders>(LogWriters.ToArray());
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
@using MessagePack.Resolvers
|
||||
@using AyCode.Core.Extensions;
|
||||
@using AyCode.Utils.Extensions
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
|
|
@ -27,7 +28,7 @@
|
|||
@inject IServiceProviderDataService serviceProviderDataService
|
||||
@inject IUserDataService userDataService
|
||||
@inject ISessionService sessionService
|
||||
@inject DevAdminSignalClient devAdminSignalClient;
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
<PageTitle>Admin - Companies</PageTitle>
|
||||
|
||||
<div class="text-center m-5">
|
||||
|
|
@ -35,11 +36,9 @@
|
|||
<h2 style="font-size:small">Manage transfers here!</h2>
|
||||
</div>
|
||||
|
||||
<DxPopup
|
||||
@bind-Visible="@SetOwnerPopupVisible"
|
||||
ShowFooter="true"
|
||||
HeaderText="Set owner by adding E-mail address"
|
||||
>
|
||||
<DxPopup @bind-Visible="@_setOwnerPopupVisible"
|
||||
ShowFooter="true"
|
||||
HeaderText="Set owner by adding E-mail address">
|
||||
<BodyContentTemplate>
|
||||
<label for="emailID" class="demo-text mt-4 mb-1">
|
||||
Put user email here
|
||||
|
|
@ -49,16 +48,16 @@
|
|||
Mask="@EmailMask"
|
||||
InputId="emailID"
|
||||
MaskMode="MaskMode.RegEx" />
|
||||
|
||||
|
||||
</BodyContentTemplate>
|
||||
<FooterContentTemplate>
|
||||
<DxButton CssClass="popup-button my-1 ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="@(() => SetOwnerPopupVisible = false)" />
|
||||
<DxButton CssClass="popup-button my-1 ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="@(() => _setOwnerPopupVisible = false)" />
|
||||
@* <DxButton CssClass="popup-button my-1 ms-2" RenderStyle="ButtonRenderStyle.Secondary" Text="Cancel" Click="@(() => SetOwnerPopupVisible = false)" /> *@
|
||||
</FooterContentTemplate>
|
||||
</DxPopup>
|
||||
|
||||
<DxPopup CssClass="popup-demo-events"
|
||||
@bind-Visible="@SendMailPopupVisible"
|
||||
@bind-Visible="@_sendMailPopupVisible"
|
||||
ShowFooter="true"
|
||||
CloseOnEscape="true"
|
||||
CloseOnOutsideClick="false"
|
||||
|
|
@ -88,18 +87,18 @@
|
|||
<div class=" col-12">
|
||||
<Animation Effect="@Effect.Pulse" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
|
||||
<div class="card">
|
||||
<DxGrid @ref="Grid2"
|
||||
Data="ServiceProviderDataList"
|
||||
AutoCollapseDetailRow="AutoCollapseDetailRow"
|
||||
KeyboardNavigationEnabled="true"
|
||||
CustomizeElement="Grid_CustomizeElement"
|
||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||
EditModelSaving="Grid_EditModelSaving"
|
||||
DataItemDeleting="Grid_DataItemDeleting"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
ShowFilterRow="true"
|
||||
KeyFieldName="Id">
|
||||
<CompanyGrid @ref="_gridCompany"
|
||||
Logger="_logger"
|
||||
SignalRClient="AdminSignalRClient"
|
||||
|
||||
AutoCollapseDetailRow="_autoCollapseDetailRow"
|
||||
KeyboardNavigationEnabled="true"
|
||||
CustomizeElement="Grid_CustomizeElement"
|
||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
ShowFilterRow="true"
|
||||
KeyFieldName="Id">
|
||||
|
||||
<Columns>
|
||||
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
|
|
@ -113,8 +112,7 @@
|
|||
|
||||
if (keyField.IsNullOrEmpty())
|
||||
{
|
||||
string buttonText = "Set owner";
|
||||
<DxButton Click="() => SetOwnerPopup(keyItem)" Text="@buttonText" RenderStyle="ButtonRenderStyle.Primary"/>
|
||||
<DxButton Click="() => SetOwnerPopup(keyItem)" Text="Set owner" RenderStyle="ButtonRenderStyle.Primary" />
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -122,17 +120,17 @@
|
|||
}
|
||||
}
|
||||
</CellDisplayTemplate>
|
||||
</DxGridDataColumn>
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="AffiliateId" />
|
||||
<DxGridDataColumn FieldName="CommissionPercent" />
|
||||
<DxGridDataColumn FieldName="Created" />
|
||||
@* <DxGridDataColumn FieldName="ContactEmail">
|
||||
|
||||
</DxGridDataColumn> *@
|
||||
|
||||
</DxGridDataColumn> *@
|
||||
|
||||
</Columns>
|
||||
@* <DetailRowTemplate>
|
||||
<CompaniesNestedUserProductMapping CurrentCompany="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||
<CompaniesNestedUserProductMapping CurrentCompany="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||
</DetailRowTemplate> *@
|
||||
<DetailRowTemplate>
|
||||
<AddressGridComponent AddressContext="(TIAM.Entities.ServiceProviders.Company)context.DataItem" ContextIdType="companyprofile" KeyboardNavigationEnabled="true" />
|
||||
|
|
@ -154,7 +152,7 @@
|
|||
</EditFormTemplate>
|
||||
|
||||
|
||||
</DxGrid>
|
||||
</CompanyGrid>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -174,28 +172,32 @@
|
|||
|
||||
//public Transfer myModel = new Transfer();
|
||||
|
||||
public List<Company> ServiceProviderDataList { get; set; }
|
||||
//public List<Company> ServiceProviderDataList { get; set; }
|
||||
|
||||
private bool _sendMailPopupVisible;
|
||||
private bool _setOwnerPopupVisible;
|
||||
|
||||
private CompanyGrid _gridCompany;
|
||||
private bool _autoCollapseDetailRow;
|
||||
|
||||
bool SendMailPopupVisible { get; set; }
|
||||
bool SetOwnerPopupVisible { get; set; }
|
||||
public List<string> IgnoreList =
|
||||
[
|
||||
"ReceiverEmailAddress",
|
||||
"ReceiverFullName",
|
||||
"ReceiverId",
|
||||
"SenderEmailAddress",
|
||||
"SenderFullName",
|
||||
"SenderId",
|
||||
"ContextId",
|
||||
"ReceiverFullName",
|
||||
"ReceiverId",
|
||||
"SenderEmailAddress",
|
||||
"SenderFullName",
|
||||
"SenderId",
|
||||
"ContextId",
|
||||
];
|
||||
|
||||
private MessageWizardModel _messageWizardModel = new();
|
||||
private string Email { get; set; } = "email@email.com";
|
||||
string EmailMask { get; set; } = @"(\w|[.-])+@(\w|-)+\.(\w|-){2,4}";
|
||||
|
||||
DateTime StartDate { get; set; } = DateTime.Today;
|
||||
DxSchedulerDataStorage _dataStorage = new();
|
||||
|
||||
|
||||
|
||||
void SendMail(Company item)
|
||||
{
|
||||
_logger.Info($"Sending mail to {item.OwnerId}, {item.Id}");
|
||||
|
|
@ -204,14 +206,14 @@
|
|||
_messageWizardModel.SenderEmailAddress = "";
|
||||
_messageWizardModel.ReceiverEmailAddress = "";
|
||||
_messageWizardModel.ReceiverFullName = "";
|
||||
SendMailPopupVisible = true;
|
||||
_sendMailPopupVisible = true;
|
||||
}
|
||||
|
||||
void SetOwnerPopup(Company item)
|
||||
{
|
||||
_logger.Info($"Setting owner of {item.OwnerId}, {item.Id}");
|
||||
|
||||
SetOwnerPopupVisible = true;
|
||||
_setOwnerPopupVisible = true;
|
||||
}
|
||||
|
||||
async Task<Company> SetOwner(Guid CompanyId)
|
||||
|
|
@ -222,23 +224,22 @@
|
|||
//overwrite ServiceProvider ownerid
|
||||
var target = await serviceProviderDataService.GetServiceProviderByIdAsync(CompanyId);
|
||||
if (target == null)
|
||||
{
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
target.OwnerId = userModelDto.Id;
|
||||
var result = await serviceProviderDataService.UpdateServiceProviderAsync(target);
|
||||
var result = await serviceProviderDataService.UpdateServiceProviderAsync(target);
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void CancelCreateClick()
|
||||
{
|
||||
|
||||
SendMailPopupVisible = false;
|
||||
_sendMailPopupVisible = false;
|
||||
}
|
||||
void EulaPopupClosed()
|
||||
{
|
||||
|
|
@ -300,102 +301,35 @@
|
|||
companyEditModel.OwnerId = Guid.Empty;
|
||||
companyEditModel.ProfileId = Guid.NewGuid();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
|
||||
{
|
||||
Company resultCompany = null;
|
||||
if (e.IsNew)
|
||||
{
|
||||
_logger.Info("New company adding");
|
||||
resultCompany = await serviceProviderDataService.CreateServiceProviderAsync((Company)e.EditModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Info("company updating at id " + ((Company)e.EditModel).Id);
|
||||
|
||||
resultCompany = await serviceProviderDataService.UpdateServiceProviderAsync((Company)e.EditModel);
|
||||
|
||||
}
|
||||
|
||||
if (resultCompany!=null)
|
||||
{
|
||||
//TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J.
|
||||
await UpdateDataAsync();
|
||||
}
|
||||
}
|
||||
|
||||
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
{
|
||||
var company = (Company)e.DataItem;
|
||||
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
||||
//remove orderData from orderData array
|
||||
_logger.Info($"companyData deleting; companyId: {company.Id}");
|
||||
|
||||
var response = await devAdminSignalClient.PostDataAsync(SignalRTags.DeleteCompanyAsync, company);
|
||||
|
||||
//resultCompany = await serviceProviderDataService.DeleteServiceProviderAsync(company.Id);
|
||||
//await UpdateDataAsync();
|
||||
}
|
||||
|
||||
async Task UpdateDataAsync()
|
||||
{
|
||||
ServiceProviderDataList = await serviceProviderDataService.GetServiceProvidersAsync();
|
||||
//StateHasChanged();
|
||||
_logger.Info("orderData grid refreshed");
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_logger = new LoggerClient<ManageServiceProviders>(LogWriters.ToArray());
|
||||
|
||||
await UpdateDataAsync();
|
||||
|
||||
//var transfers = await devAdminSignalClient.GetAllAsync<List<Transfer>>(SignalRTags.GetTransfersAsync);
|
||||
//InitializeDataSources(transfers ?? []);
|
||||
|
||||
|
||||
//InitializeDataSources(await transferDataService.GetTransfersAsync());
|
||||
|
||||
base.OnInitializedAsync();
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void ColumnChooserButton_Click()
|
||||
{
|
||||
Grid2.ShowColumnChooser();
|
||||
_gridCompany.ShowColumnChooser();
|
||||
}
|
||||
|
||||
IGrid Grid2 { get; set; }
|
||||
object MasterGridData { get; set; }
|
||||
bool AutoCollapseDetailRow { get; set; }
|
||||
|
||||
protected override void OnAfterRender(bool firstRender)
|
||||
{
|
||||
if (firstRender)
|
||||
{
|
||||
Grid2.ExpandDetailRow(0);
|
||||
_gridCompany.ExpandDetailRow(0);
|
||||
}
|
||||
}
|
||||
void AutoCollapseDetailRow_Changed(bool newValue)
|
||||
{
|
||||
AutoCollapseDetailRow = newValue;
|
||||
_autoCollapseDetailRow = newValue;
|
||||
if (!newValue) return;
|
||||
|
||||
Grid2.BeginUpdate();
|
||||
Grid2.CollapseAllDetailRows();
|
||||
Grid2.ExpandDetailRow(0);
|
||||
Grid2.EndUpdate();
|
||||
_gridCompany.BeginUpdate();
|
||||
_gridCompany.CollapseAllDetailRows();
|
||||
_gridCompany.ExpandDetailRow(0);
|
||||
_gridCompany.EndUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -11,15 +11,10 @@
|
|||
@using TIAMWebApp.Shared.Application.Models.PageModels
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using AyCode.Services.Loggers
|
||||
@using AyCode.Services.SignalRs
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using MessagePack
|
||||
@using MessagePack.Resolvers
|
||||
@using AyCode.Core.Extensions;
|
||||
@using AyCode.Core
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Interfaces.Entities
|
||||
@using TIAM.Services
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMSharedUI.Shared.Components
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
|
|
@ -27,7 +22,7 @@
|
|||
@inject IWizardProcessor wizardProcessor
|
||||
@inject ITransferDataService transferDataService
|
||||
@inject ISessionService sessionService
|
||||
@inject DevAdminSignalClient devAdminSignalClient;
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
<PageTitle>Transfers</PageTitle>
|
||||
|
||||
<div class="text-center m-5">
|
||||
|
|
@ -37,7 +32,7 @@
|
|||
|
||||
|
||||
<DxPopup CssClass="popup-demo-events"
|
||||
@bind-Visible="@PopupVisible"
|
||||
@bind-Visible="@_popupVisible"
|
||||
ShowFooter="true"
|
||||
CloseOnEscape="true"
|
||||
CloseOnOutsideClick="false"
|
||||
|
|
@ -79,18 +74,33 @@
|
|||
Click="ColumnChooserButton_Click" />
|
||||
</div>
|
||||
|
||||
<DxGrid @ref="Grid2"
|
||||
Data="TransferDataList"
|
||||
AutoCollapseDetailRow="AutoCollapseDetailRow"
|
||||
KeyboardNavigationEnabled="true"
|
||||
CustomizeElement="Grid_CustomizeElement"
|
||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||
EditModelSaving="Grid_EditModelSaving"
|
||||
DataItemDeleting="Grid_DataItemDeleting"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
ShowFilterRow="true"
|
||||
KeyFieldName="Id">
|
||||
@* <TiamGrid TDataItem="Transfer"
|
||||
Logger="_logger"
|
||||
SignalRClient="AdminSignalRClient"
|
||||
|
||||
GetAllMessageTag="SignalRTags.GetTransfersAsync"
|
||||
AddMessageTag="SignalRTags.AddTransferAsync"
|
||||
UpdateMessageTag="SignalRTags.UpdateTransferAsync"
|
||||
RemoveMessageTag="SignalRTags.RemoveTransferAsync">
|
||||
</TiamGrid>
|
||||
*@
|
||||
<TransferGrid @ref="_gridTransfer"
|
||||
Logger="_logger"
|
||||
SignalRClient="AdminSignalRClient"
|
||||
OnDataSourceChanged="DataSourceChanged"
|
||||
OnDataSourceItemChanging="DataSourceItemChanging"
|
||||
OnDataSourceItemChanged="DataSourceItemChanged"
|
||||
OnDataItemDeleting="DataItemDeleting"
|
||||
OnDataItemSaving="DataItemSaving"
|
||||
|
||||
CustomizeElement="Grid_CustomizeElement"
|
||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||
AutoCollapseDetailRow="_autoCollapseDetailRow"
|
||||
KeyboardNavigationEnabled="true"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
ShowFilterRow="true"
|
||||
KeyFieldName="Id">
|
||||
|
||||
<Columns>
|
||||
<DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
|
|
@ -160,7 +170,7 @@
|
|||
@EditFormContext.GetEditor("FromAddress")
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Trip date:" ColSpanMd="6">
|
||||
|
||||
|
||||
<DxDateEdit @bind-Date="@transfer2.Appointment"
|
||||
TimeSectionVisible="true"
|
||||
TimeSectionScrollPickerFormat="tt h m">
|
||||
|
|
@ -179,8 +189,7 @@
|
|||
</EditFormTemplate>
|
||||
|
||||
|
||||
</DxGrid>
|
||||
|
||||
</TransferGrid>
|
||||
</div>
|
||||
</DxTabPage>
|
||||
|
||||
|
|
@ -204,7 +213,7 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -222,39 +231,32 @@
|
|||
@code {
|
||||
private LoggerClient<ManageTransfers> _logger;
|
||||
|
||||
//public Transfer myModel = new Transfer();
|
||||
|
||||
public List<Transfer> TransferDataList { get; set; }
|
||||
|
||||
bool PopupVisible { get; set; }
|
||||
|
||||
|
||||
IGrid Grid2 { get; set; }
|
||||
object MasterGridData { get; set; }
|
||||
bool AutoCollapseDetailRow { get; set; }
|
||||
private bool _popupVisible;
|
||||
private bool _autoCollapseDetailRow;
|
||||
private TransferGrid _gridTransfer;
|
||||
|
||||
public List<string> IgnoreList =
|
||||
[
|
||||
"ReceiverEmailAddress",
|
||||
"ReceiverFullName",
|
||||
"ReceiverId",
|
||||
"SenderEmailAddress",
|
||||
"SenderFullName",
|
||||
"SenderId",
|
||||
"ContextId",
|
||||
"ReceiverFullName",
|
||||
"ReceiverId",
|
||||
"SenderEmailAddress",
|
||||
"SenderFullName",
|
||||
"SenderId",
|
||||
"ContextId",
|
||||
];
|
||||
|
||||
public List<TransferStatusModel> Statuses { get; set; } =
|
||||
[
|
||||
new(Convert.ToInt16(TransferStatusType.OrderSubmitted), "Order submitted"),
|
||||
new(Convert.ToInt16(TransferStatusType.OrderConfirmed), "Order confirmed"),
|
||||
new(Convert.ToInt16(TransferStatusType.AssignedToDriver), "Assigned to driver"),
|
||||
new(Convert.ToInt16(TransferStatusType.DriverConfirmed), "Driver confirmed"),
|
||||
new(Convert.ToInt16(TransferStatusType.DriverEnRoute), "Driver enroute"),
|
||||
new(Convert.ToInt16(TransferStatusType.PassengerPickup), "Passenger in car"),
|
||||
new(Convert.ToInt16(TransferStatusType.Finished), "Finished"),
|
||||
new(Convert.ToInt16(TransferStatusType.UserCanceled), "User cancelled"),
|
||||
new(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled")
|
||||
new(Convert.ToInt16(TransferStatusType.OrderConfirmed), "Order confirmed"),
|
||||
new(Convert.ToInt16(TransferStatusType.AssignedToDriver), "Assigned to driver"),
|
||||
new(Convert.ToInt16(TransferStatusType.DriverConfirmed), "Driver confirmed"),
|
||||
new(Convert.ToInt16(TransferStatusType.DriverEnRoute), "Driver enroute"),
|
||||
new(Convert.ToInt16(TransferStatusType.PassengerPickup), "Passenger in car"),
|
||||
new(Convert.ToInt16(TransferStatusType.Finished), "Finished"),
|
||||
new(Convert.ToInt16(TransferStatusType.UserCanceled), "User cancelled"),
|
||||
new(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled")
|
||||
];
|
||||
|
||||
private MessageWizardModel _messageWizardModel = new();
|
||||
|
|
@ -273,19 +275,21 @@
|
|||
_messageWizardModel.SenderEmailAddress = "info@touriam.com";
|
||||
_messageWizardModel.ReceiverEmailAddress = item.ContactEmail;
|
||||
_messageWizardModel.ReceiverFullName = item.FullName;
|
||||
PopupVisible = true;
|
||||
_popupVisible = true;
|
||||
}
|
||||
|
||||
void CancelCreateClick()
|
||||
{
|
||||
|
||||
PopupVisible = false;
|
||||
_popupVisible = false;
|
||||
}
|
||||
|
||||
void EulaPopupClosed()
|
||||
{
|
||||
//cancel clicked
|
||||
|
||||
}
|
||||
|
||||
void EulaPopupClosing(PopupClosingEventArgs args)
|
||||
{
|
||||
//myModel = new TransferWizardModel();
|
||||
|
|
@ -299,7 +303,7 @@
|
|||
{
|
||||
var messageModel = result as MessageWizardModel;
|
||||
messageModel.ContextId = _messageWizardModel.ContextId;
|
||||
//messageModel.SenderId = sessionService.User.UserId;
|
||||
//messageModel.SenderId = sessionService.User.UserId;
|
||||
|
||||
string FormatEmailContent()
|
||||
{
|
||||
|
|
@ -307,11 +311,12 @@
|
|||
<html>
|
||||
<body>
|
||||
<p>Dear {messageModel.SenderFullName},</p>
|
||||
<p>{messageModel.Content}:</p>
|
||||
<p>{messageModel.Content}:</p>
|
||||
<p>Best regards,<br/>Tour I Am team</p>
|
||||
</body>
|
||||
</html>";
|
||||
}
|
||||
|
||||
messageModel.Content = FormatEmailContent();
|
||||
|
||||
_logger.Info(messageModel.Content);
|
||||
|
|
@ -322,22 +327,23 @@
|
|||
|
||||
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";
|
||||
}
|
||||
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";
|
||||
}
|
||||
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";
|
||||
}
|
||||
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";
|
||||
}
|
||||
|
||||
if (e.ElementType == GridElementType.HeaderCell)
|
||||
{
|
||||
e.Style = "background-color: rgba(0, 0, 0, 0.08)";
|
||||
|
|
@ -361,64 +367,35 @@
|
|||
transferEditModel.ContactEmail = "your@email.address";
|
||||
}
|
||||
|
||||
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
private void DataSourceChanged(IList<Transfer> transfers)
|
||||
{
|
||||
var transfer = (Transfer)e.DataItem;
|
||||
_logger.Info("DataSourceChanged called");
|
||||
|
||||
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
||||
//remove orderData from orderData array
|
||||
_logger.Info("transfer delete");
|
||||
|
||||
PostDataToServerAsync(transfer, SignalRTags.DeleteTransferAsync, true).Forget();
|
||||
//await UpdateDataAsync();
|
||||
InitializeAppointments(transfers);
|
||||
}
|
||||
|
||||
|
||||
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
|
||||
private void DataSourceItemChanging(Transfer transfer)
|
||||
{
|
||||
var transfer = (Transfer)e.EditModel;
|
||||
var logText = e.IsNew ? "add" : "update";
|
||||
|
||||
_logger.Info($"EditModelSaving, {logText} transfer; transferId " + transfer.Id);
|
||||
|
||||
PostDataToServerAsync(transfer, e.IsNew ? SignalRTags.AddTransferAsync : SignalRTags.UpdateTransferAsync).Forget();
|
||||
|
||||
//await transferDataService.CreateTransfer((TransferWizardModel)e.EditModel);
|
||||
//transfer = await transferDataService.UpdateTransferAsync(transfer);
|
||||
_logger.Info("DataSourceItemChanging called");
|
||||
}
|
||||
|
||||
private Task PostDataToServerAsync<T>(T transfer, int messageTag, bool isDelete = false) where T : Transfer //IEntityGuid
|
||||
private void DataSourceItemChanged(Transfer transfer)
|
||||
{
|
||||
_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.
|
||||
|
||||
return devAdminSignalClient.PostDataAsync(messageTag, transfer, repsonse =>
|
||||
{
|
||||
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
||||
{
|
||||
UpdateAllDataAsync().Forget();
|
||||
return;
|
||||
}
|
||||
|
||||
RefreshDataSources(repsonse.ResponseData, isDelete);
|
||||
StateHasChanged();
|
||||
});
|
||||
|
||||
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
||||
_logger.Info("DataSourceItemChanged called");
|
||||
}
|
||||
|
||||
private void RefreshDataSources(Transfer transfer, bool isDelete)
|
||||
private void DataItemSaving(GridEditModelSavingEventArgs e)
|
||||
{
|
||||
var transferIndex = TransferDataList.FindIndex(x => x.Id == transfer.Id);
|
||||
_logger.Info("DataItemSaving called");
|
||||
}
|
||||
|
||||
if (isDelete && transferIndex > -1) TransferDataList.RemoveAt(transferIndex);
|
||||
else
|
||||
{
|
||||
if (transferIndex > -1) TransferDataList[transferIndex] = transfer;
|
||||
else TransferDataList.Add(transfer);
|
||||
}
|
||||
private void DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
{
|
||||
_logger.Info($"DataItemDeleting OnItemDeleting");
|
||||
}
|
||||
|
||||
private void RefreshAppointments(Transfer transfer, bool isDelete)
|
||||
{
|
||||
var appointmentIndex = AppointmentModels.FindIndex(x => x.SourceId == transfer.Id);
|
||||
if (isDelete && appointmentIndex > -1) AppointmentModels.RemoveAt(appointmentIndex);
|
||||
else
|
||||
|
|
@ -430,41 +407,20 @@
|
|||
}
|
||||
}
|
||||
|
||||
public Task UpdateAllDataAsync()
|
||||
{
|
||||
_logger.Info("UpdateAllDataAsync called");
|
||||
|
||||
return devAdminSignalClient.GetAllAsync<List<Transfer>>(SignalRTags.GetTransfersAsync, response =>
|
||||
{
|
||||
if (response.Status == SignalResponseStatus.Error)
|
||||
return;
|
||||
|
||||
InitializeDataSources(response.ResponseData ?? []);
|
||||
StateHasChanged();
|
||||
});
|
||||
}
|
||||
|
||||
protected override Task OnInitializedAsync()
|
||||
{
|
||||
_logger = new LoggerClient<ManageTransfers>(LogWriters.ToArray());
|
||||
|
||||
UpdateAllDataAsync().Forget();
|
||||
|
||||
//var transfers = await devAdminSignalClient.GetAllAsync<List<Transfer>>(SignalRTags.GetTransfersAsync);
|
||||
//InitializeDataSources(transfers ?? []);
|
||||
|
||||
|
||||
//InitializeDataSources(await transferDataService.GetTransfersAsync());
|
||||
|
||||
return base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
private void InitializeDataSources(List<Transfer> transferDataList)
|
||||
private void InitializeAppointments(ICollection<Transfer> transferDataList)
|
||||
{
|
||||
TransferDataList = transferDataList;
|
||||
AppointmentModels = new List<AppointmentModel>(TransferDataList.Count);
|
||||
_logger.Info("InitializeAppointments called");
|
||||
|
||||
foreach (var transfer in TransferDataList)
|
||||
AppointmentModels = new List<AppointmentModel>(transferDataList.Count);
|
||||
|
||||
foreach (var transfer in transferDataList)
|
||||
{
|
||||
// var bnm = DataStorage.CreateAppointmentItem();
|
||||
// bnm.Start = transfer.Appointment;
|
||||
|
|
@ -502,7 +458,7 @@
|
|||
|
||||
void ColumnChooserButton_Click()
|
||||
{
|
||||
Grid2.ShowColumnChooser();
|
||||
_gridTransfer.ShowColumnChooser();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -510,24 +466,18 @@
|
|||
{
|
||||
if (firstRender)
|
||||
{
|
||||
Grid2.ExpandDetailRow(0);
|
||||
_gridTransfer.ExpandDetailRow(0);
|
||||
}
|
||||
}
|
||||
|
||||
void AutoCollapseDetailRow_Changed(bool newValue)
|
||||
{
|
||||
AutoCollapseDetailRow = newValue;
|
||||
_autoCollapseDetailRow = newValue;
|
||||
if (!newValue) return;
|
||||
|
||||
Grid2.BeginUpdate();
|
||||
Grid2.CollapseAllDetailRows();
|
||||
Grid2.ExpandDetailRow(0);
|
||||
Grid2.EndUpdate();
|
||||
_gridTransfer.BeginUpdate();
|
||||
_gridTransfer.CollapseAllDetailRows();
|
||||
_gridTransfer.ExpandDetailRow(0);
|
||||
_gridTransfer.EndUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace TIAMSharedUI.Shared.Components.Grids;
|
||||
|
||||
public class CompanyDetailGrid : CompanyGrid
|
||||
{
|
||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||
{
|
||||
var isFirst = IsFirstInitializeParameters;
|
||||
|
||||
return base.SetParametersAsyncCore(parameters);
|
||||
|
||||
if (isFirst)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Services;
|
||||
|
||||
namespace TIAMSharedUI.Shared.Components.Grids;
|
||||
|
||||
public class CompanyGrid : TiamGrid<Company>
|
||||
{
|
||||
public CompanyGrid() : base()
|
||||
{
|
||||
GridName = nameof(CompanyGrid);
|
||||
|
||||
GetAllMessageTag = SignalRTags.GetCompaniesAsync;
|
||||
AddMessageTag = SignalRTags.AddCompanyAsync;
|
||||
UpdateMessageTag = SignalRTags.UpdateCompanyAsync;
|
||||
RemoveMessageTag = SignalRTags.RemoveCompanyAsync;
|
||||
}
|
||||
|
||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||
{
|
||||
if (!IsFirstInitializeParameters)
|
||||
{
|
||||
//ShowFilterRow = true;
|
||||
//ShowGroupPanel = true;
|
||||
//AllowSort = false;
|
||||
|
||||
//etc...
|
||||
}
|
||||
|
||||
return base.SetParametersAsyncCore(parameters);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,209 @@
|
|||
using System.ComponentModel;
|
||||
using AyCode.Core.Helpers;
|
||||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Services.SignalRs;
|
||||
using AyCode.Utils.Extensions;
|
||||
using DevExpress.Blazor;
|
||||
using DevExpress.Blazor.Internal;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using TIAMWebApp.Shared.Application.Services;
|
||||
using TIAMWebApp.Shared.Application.Utility;
|
||||
|
||||
namespace TIAMSharedUI.Shared.Components.Grids
|
||||
{
|
||||
public class TiamGrid<TDataItem> : DxGrid where TDataItem : class, IEntityGuid
|
||||
{
|
||||
protected bool IsFirstInitializeParameters;
|
||||
private IList<TDataItem>? _dataSource;
|
||||
private string _gridLogName;
|
||||
|
||||
|
||||
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($"{_gridLogName} Use the DataSource parameter instead of Data!");
|
||||
throw new NullReferenceException($"{_gridLogName} Use the DataSource parameter instead of Data!");
|
||||
}
|
||||
|
||||
return _dataSource;
|
||||
}
|
||||
set
|
||||
{
|
||||
_dataSource = value;
|
||||
Data = _dataSource;
|
||||
|
||||
OnDataSourceChanged.InvokeAsync(_dataSource);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
if (Logger == null)
|
||||
throw new NullReferenceException($"[{GetType().Name}] Logger == null");
|
||||
|
||||
if (SignalRClient == null)
|
||||
Logger.Error($"[{GetType().Name}] SignalRClient == null");
|
||||
|
||||
base.OnInitialized();
|
||||
}
|
||||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
await base.OnAfterRenderAsync(firstRender);
|
||||
|
||||
if (firstRender) RefreshDataSourceAsync().Forget();
|
||||
}
|
||||
|
||||
protected new EventCallback<GridDataItemDeletingEventArgs> DataItemDeleting { get; set; }
|
||||
[Parameter] public EventCallback<GridDataItemDeletingEventArgs> OnDataItemDeleting{ get; set; }
|
||||
|
||||
protected new EventCallback<GridEditModelSavingEventArgs> EditModelSaving { get; set; }
|
||||
[Parameter] public EventCallback<GridEditModelSavingEventArgs> OnDataItemSaving { get; set; }
|
||||
|
||||
|
||||
[Parameter] public EventCallback<IList<TDataItem>> OnDataSourceChanged { get; set; }
|
||||
[Parameter] public EventCallback<TDataItem> OnDataSourceItemChanging { get; set; }
|
||||
[Parameter] public EventCallback<TDataItem> OnDataSourceItemChanged { get; set; }
|
||||
|
||||
private async Task OnItemSaving(GridEditModelSavingEventArgs e)
|
||||
{
|
||||
var dataItem = (e.EditModel as TDataItem)!;
|
||||
var logText = e.IsNew ? "add" : "update";
|
||||
|
||||
Logger.Info($"{_gridLogName} OnItemSaving {logText}; Id: {dataItem.Id}");
|
||||
|
||||
await OnDataItemSaving.InvokeAsync(e);
|
||||
|
||||
if (e.Cancel)
|
||||
{
|
||||
Logger.Debug($"{_gridLogName} OnItemSaving {logText} canceled; Id: {dataItem.Id}");
|
||||
return;
|
||||
}
|
||||
|
||||
PostDataToServerAsync(dataItem, e.IsNew ? AddMessageTag : UpdateMessageTag).Forget();
|
||||
|
||||
//await transferDataService.CreateTransfer((TransferWizardModel)e.EditModel);
|
||||
//transfer = await transferDataService.UpdateTransferAsync(transfer);
|
||||
}
|
||||
|
||||
private async Task OnItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
{
|
||||
Logger.Info($"{_gridLogName} OnItemDeleting");
|
||||
|
||||
await OnDataItemDeleting.InvokeAsync(e);
|
||||
|
||||
if (e.Cancel)
|
||||
{
|
||||
Logger.Debug($"{_gridLogName} OnItemDeleting canceled");
|
||||
return;
|
||||
}
|
||||
|
||||
var dataItem = (e.DataItem as TDataItem)!;
|
||||
PostDataToServerAsync(dataItem, RemoveMessageTag, true).Forget();
|
||||
}
|
||||
|
||||
public virtual Task RefreshDataSourceAsync()
|
||||
{
|
||||
Logger.Info($"{_gridLogName} UpdateAllDataAsync called");
|
||||
|
||||
//if (GetAllMessageTag == 0) return Task.CompletedTask;
|
||||
|
||||
return SignalRClient.GetAllAsync<IList<TDataItem>>(GetAllMessageTag, response =>
|
||||
{
|
||||
if (response.Status == SignalResponseStatus.Error)
|
||||
return;
|
||||
|
||||
BeginUpdate();
|
||||
DataSource = response.ResponseData ?? [];
|
||||
EndUpdate();
|
||||
|
||||
InvokeAsync(StateHasChanged).Forget();
|
||||
});
|
||||
}
|
||||
|
||||
public virtual async Task PostDataToServerAsync(TDataItem dataItem, int messageTag, bool isDelete = false)
|
||||
{
|
||||
Logger.Info($"{_gridLogName} PostDataToServerAsync called; transferId " + dataItem.Id);
|
||||
|
||||
//if (messageTag == 0) return;
|
||||
|
||||
await OnDataSourceItemChanging.InvokeAsync(dataItem);
|
||||
RefreshDataSourceItem(dataItem, isDelete, false); //egyből látszódik a változás a grid-ben, nem csak a callback lefutásakor! felhasználóbarátabb... - J.
|
||||
|
||||
SignalRClient.PostDataAsync(messageTag, dataItem, async repsonse =>
|
||||
{
|
||||
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
||||
{
|
||||
RefreshDataSourceAsync().Forget();
|
||||
return;
|
||||
}
|
||||
|
||||
RefreshDataSourceItem(repsonse.ResponseData, isDelete);
|
||||
|
||||
await OnDataSourceItemChanged.InvokeAsync(dataItem);
|
||||
await InvokeAsync(StateHasChanged);
|
||||
}).Forget();
|
||||
|
||||
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
||||
}
|
||||
|
||||
public void RefreshDataSourceItem(TDataItem dataItem, bool isDelete, bool invokeItemChanged = true)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||
{
|
||||
if (!IsFirstInitializeParameters)
|
||||
{
|
||||
base.DataItemDeleting = EventCallback.Factory.Create<GridDataItemDeletingEventArgs>(this, OnItemDeleting);
|
||||
base.EditModelSaving = EventCallback.Factory.Create<GridEditModelSavingEventArgs>(this, OnItemSaving);
|
||||
|
||||
//ShowFilterRow = true;
|
||||
//PageSize = 4;
|
||||
//ShowGroupPanel = true;
|
||||
//AllowSort = false;
|
||||
|
||||
IsFirstInitializeParameters = true;
|
||||
}
|
||||
|
||||
return base.SetParametersAsyncCore(parameters);
|
||||
}
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
base.OnParametersSet();
|
||||
|
||||
if (GridName.IsNullOrWhiteSpace()) GridName = $"{typeof(TDataItem).Name}Grid";
|
||||
|
||||
_gridLogName = $"[{GridName}]";
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace TIAMSharedUI.Shared.Components.Grids;
|
||||
|
||||
public class TransferDetailGrid : TransferGrid
|
||||
{
|
||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||
{
|
||||
var isFirst = IsFirstInitializeParameters;
|
||||
|
||||
return base.SetParametersAsyncCore(parameters);
|
||||
|
||||
if (isFirst)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using TIAM.Entities.Transfers;
|
||||
using TIAM.Services;
|
||||
|
||||
namespace TIAMSharedUI.Shared.Components.Grids;
|
||||
|
||||
public class TransferGrid : TiamGrid<Transfer>
|
||||
{
|
||||
public TransferGrid() : base()
|
||||
{
|
||||
GridName = nameof(TransferGrid);
|
||||
|
||||
GetAllMessageTag = SignalRTags.GetTransfersAsync;
|
||||
AddMessageTag = SignalRTags.AddTransferAsync;
|
||||
UpdateMessageTag = SignalRTags.UpdateTransferAsync;
|
||||
RemoveMessageTag = SignalRTags.RemoveTransferAsync;
|
||||
}
|
||||
|
||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||
{
|
||||
if (!IsFirstInitializeParameters)
|
||||
{
|
||||
//ShowFilterRow = true;
|
||||
//ShowGroupPanel = true;
|
||||
//AllowSort = false;
|
||||
|
||||
//etc...
|
||||
}
|
||||
|
||||
return base.SetParametersAsyncCore(parameters);
|
||||
}
|
||||
}
|
||||
|
|
@ -28,15 +28,13 @@ else
|
|||
|
||||
//public PopupMessageBox PopupMessageBox { get; private set; } = default!;
|
||||
|
||||
[Parameter]
|
||||
public string LoggerCategory { get; set; }
|
||||
[Parameter]
|
||||
public EventCallback<Exception> OnError { get; set; }
|
||||
[Parameter] public string LoggerCategory { get; set; }
|
||||
[Parameter] public EventCallback<Exception> OnError { get; set; }
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
_logger = new LoggerClient(LoggerCategory, LogWriters.ToArray());
|
||||
|
||||
|
||||
base.OnInitialized();
|
||||
}
|
||||
|
||||
|
|
@ -44,7 +42,7 @@ else
|
|||
// {
|
||||
// }
|
||||
|
||||
protected override Task OnErrorAsync(Exception exception)
|
||||
protected override async Task OnErrorAsync(Exception exception)
|
||||
{
|
||||
_currentError = exception;
|
||||
|
||||
|
|
@ -54,18 +52,22 @@ else
|
|||
|
||||
try
|
||||
{
|
||||
_logger.Error($"An error occurred: {exception.Message}", exception, categoryName, memberName);
|
||||
_logger.Writer<SignaRClientLogItemWriter>()?.Error($"An error occurred: {exception.Message}", exception, categoryName, memberName);
|
||||
}
|
||||
catch (Exception loggerException)
|
||||
{
|
||||
jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->OnErrorAsync; Logger error! {loggerException}");
|
||||
await jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->OnErrorAsync; Logger error! {loggerException}");
|
||||
|
||||
jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->{memberName}; An error occurred: {exception}");
|
||||
await jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->{memberName}; An error occurred: {exception}");
|
||||
//jsRuntime.InvokeVoidAsync("console.warn", $"{nameof(TiamErrorBoundaryComponent)}->{memberName}; Error details: {exception.StackTrace}");
|
||||
}
|
||||
|
||||
await Task.Delay(500); //KELL IDE, KÜLÖNBEN NEM MEGY KI A LOG A SZERVERRE! - J.
|
||||
|
||||
//ShowErrorNotification("An unexpected error occurred. Please try again later.");
|
||||
return OnError.HasDelegate ? OnError.InvokeAsync(exception) : base.OnErrorAsync(exception);
|
||||
|
||||
if (OnError.HasDelegate) await OnError.InvokeAsync(exception);
|
||||
else await base.OnErrorAsync(exception);
|
||||
}
|
||||
|
||||
// private void ShowErrorNotification(string message)
|
||||
|
|
@ -77,4 +79,5 @@ else
|
|||
{
|
||||
_currentError = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ builder.Services.AddSingleton(x => new ResourceManager("TIAMWebApp.Client.Resour
|
|||
builder.Services.AddSingleton<IAcLogWriterClientBase, BrowserConsoleLogWriter>();
|
||||
builder.Services.AddSingleton<IAcLogWriterClientBase, SignaRClientLogItemWriter>();
|
||||
//builder.Services.AddSingleton<IAcLogWriterClientBase, HttpClientLogItemWriter>();
|
||||
builder.Services.AddSingleton<DevAdminSignalClient>();
|
||||
builder.Services.AddSingleton<AdminSignalRClient>();
|
||||
builder.Services.AddSingleton<SignalRService>();
|
||||
builder.Services.AddSingleton<SumupService>();
|
||||
builder.Services.AddScoped<AuthenticationStateProvider, CustomAuthStateProvider>();
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
|
|||
|
||||
return;
|
||||
|
||||
case SignalRTags.CreateCompanyAsync:
|
||||
case SignalRTags.AddCompanyAsync:
|
||||
|
||||
//var createCompany = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
|
||||
|
||||
|
|
@ -100,7 +100,7 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
|
|||
//await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, createCompany), requestId);
|
||||
return;
|
||||
|
||||
case SignalRTags.DeleteCompanyAsync:
|
||||
case SignalRTags.RemoveCompanyAsync:
|
||||
var deleteCompany = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
|
||||
|
||||
await adminDal.RemoveCompanyAsync(deleteCompany.Id);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ using TIAMWebApp.Shared.Application.Utility;
|
|||
|
||||
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
|
||||
{
|
||||
|
|
@ -162,6 +162,9 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
|
||||
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;
|
||||
|
||||
_responseByRequestId[requestId] = new Action<ISignalResponseMessage<string>>(responseMessage =>
|
||||
|
|
|
|||
|
|
@ -29,14 +29,14 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
private readonly ISecureStorageHandler secureStorageHandler;
|
||||
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.secureStorageHandler = secureStorageHandler;
|
||||
|
||||
_devAdminSignalClient = devAdminSignalClient;
|
||||
_adminSignalRClient = adminSignalRClient;
|
||||
_logger = new LoggerClient<ServiceProviderDataService>(logWriters.ToArray());
|
||||
}
|
||||
|
||||
|
|
@ -98,7 +98,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
//17.
|
||||
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)
|
||||
callback.Invoke(null);
|
||||
|
|
@ -112,7 +112,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
//17.
|
||||
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)}");
|
||||
|
||||
return companyPropertiesByOwner;
|
||||
|
|
@ -146,7 +146,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
//16.
|
||||
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)}");
|
||||
|
||||
return companies;
|
||||
|
|
@ -167,7 +167,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
//14.
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue