Merge branch 'master' of http://git2.aycode.com/Adam/TourIAm
This commit is contained in:
commit
c58f48512c
|
|
@ -8,12 +8,13 @@ using TIAM.Entities.Users;
|
||||||
namespace TIAM.Entities.Drivers
|
namespace TIAM.Entities.Drivers
|
||||||
{
|
{
|
||||||
[Table(nameof(Car))]
|
[Table(nameof(Car))]
|
||||||
public class Car : IEntityGuid, ITimeStampInfo, IUserProductMappingForeignKey//, ITimeStampDisableAutoSet
|
public class Car : IEntityGuid, ITimeStampInfo, IUserProductMappingsRelation//, ITimeStampDisableAutoSet
|
||||||
{
|
{
|
||||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
public Guid Id { get; set; } = Guid.NewGuid();
|
public Guid Id { get; set; } = Guid.NewGuid();
|
||||||
|
|
||||||
public Guid UserProductMappingId { get; set; }
|
public Guid UserProductMappingId { get; set; }
|
||||||
|
public virtual UserProductMapping UserProductMapping { get; set; }
|
||||||
|
|
||||||
public int CountryCode { get; set; } = 36;
|
public int CountryCode { get; set; } = 36;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
namespace TIAM.Entities.Drivers;
|
||||||
|
|
||||||
|
public interface ICarForeignKey
|
||||||
|
{
|
||||||
|
Guid CarId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface ICarRelation : ICarForeignKey
|
||||||
|
{
|
||||||
|
Car Car { get; set; }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
using AyCode.Interfaces.Entities;
|
||||||
|
using TIAM.Core.Enums;
|
||||||
|
using TIAM.Entities.Profiles;
|
||||||
|
|
||||||
|
namespace TIAM.Entities.Products;
|
||||||
|
|
||||||
|
interface IProductBase : IEntityGuid, IProfileRelation<Profile>
|
||||||
|
{
|
||||||
|
ProductType ProductType { get; set; }
|
||||||
|
//public Guid? UserMediaId { get; set; }
|
||||||
|
|
||||||
|
Guid ProfileId { get; set; }
|
||||||
|
Profile Profile { get; set; }
|
||||||
|
|
||||||
|
string Name { get; set; }
|
||||||
|
string Description { get; set; }
|
||||||
|
float Price { get; set; }
|
||||||
|
string? JsonDetails { get; set; }
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using AyCode.Interfaces.Entities;
|
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.TimeStampInfo;
|
using AyCode.Interfaces.TimeStampInfo;
|
||||||
using TIAM.Core.Enums;
|
using TIAM.Core.Enums;
|
||||||
|
|
@ -8,8 +7,7 @@ using TIAM.Entities.Profiles;
|
||||||
|
|
||||||
namespace TIAM.Entities.Products;
|
namespace TIAM.Entities.Products;
|
||||||
|
|
||||||
|
public abstract class ProductBase : IProductBase, ITimeStampInfo
|
||||||
public abstract class ProductBase : IEntityGuid, ITimeStampInfo, IProfileRelation<Profile>
|
|
||||||
{
|
{
|
||||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
using TIAM.Entities.Drivers;
|
||||||
|
|
||||||
|
namespace TIAM.Entities.Transfers;
|
||||||
|
|
||||||
|
public interface ITransferForeignKey
|
||||||
|
{
|
||||||
|
Guid TransferId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface ITransferRelation : ICarForeignKey
|
||||||
|
{
|
||||||
|
Transfer Transfer { get; set; }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
using AyCode.Interfaces.Entities;
|
||||||
|
|
||||||
|
namespace TIAM.Entities.Transfers;
|
||||||
|
|
||||||
|
public interface ITransferToDriverForeignKey : IEntityGuid
|
||||||
|
{
|
||||||
|
Guid TransferToDriverId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface ITransferToDriverRelation : ITransferToDriverForeignKey
|
||||||
|
{
|
||||||
|
TransferToDriver TransferToDrivers { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface ITransferToDriversRelation : IEntityGuid
|
||||||
|
{
|
||||||
|
List<TransferToDriver> TransferToDrivers { get; set; }
|
||||||
|
}
|
||||||
|
|
@ -11,8 +11,9 @@ using TIAM.Entities.Users;
|
||||||
|
|
||||||
namespace TIAM.Entities.Transfers;
|
namespace TIAM.Entities.Transfers;
|
||||||
|
|
||||||
|
|
||||||
[Table(nameof(Transfer))]
|
[Table(nameof(Transfer))]
|
||||||
public class Transfer: IEntityGuid, IAcFullName, ITimeStampInfo, IProductForeignKey<Guid?>, IUserForeignKey
|
public class Transfer: IEntityGuid, IAcFullName, ITimeStampInfo, IProductForeignKey<Guid?>, IUserForeignKey, ITransferToDriversRelation
|
||||||
{
|
{
|
||||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,13 @@ using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
using AyCode.Interfaces.TimeStampInfo;
|
using AyCode.Interfaces.TimeStampInfo;
|
||||||
using TIAM.Entities.Drivers;
|
using TIAM.Entities.Drivers;
|
||||||
|
using TIAM.Entities.Products;
|
||||||
using TIAM.Entities.Users;
|
using TIAM.Entities.Users;
|
||||||
|
|
||||||
namespace TIAM.Entities.Transfers;
|
namespace TIAM.Entities.Transfers;
|
||||||
|
|
||||||
[Table(nameof(TransferToDriver))]
|
[Table(nameof(TransferToDriver))]
|
||||||
public class TransferToDriver : IEntityGuid, ITimeStampInfo, IUserProductMappingForeignKey
|
public class TransferToDriver : IEntityGuid, ITimeStampInfo, IUserProductMappingsRelation, ICarRelation, ITransferRelation
|
||||||
{
|
{
|
||||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
@ -19,6 +20,7 @@ public class TransferToDriver : IEntityGuid, ITimeStampInfo, IUserProductMapping
|
||||||
|
|
||||||
public virtual Car Car { get; set; }
|
public virtual Car Car { get; set; }
|
||||||
public virtual Transfer Transfer { get; set; }
|
public virtual Transfer Transfer { get; set; }
|
||||||
|
public virtual UserProductMapping UserProductMapping { get; set; }
|
||||||
|
|
||||||
public string LicencePlate { get; set; }
|
public string LicencePlate { get; set; }
|
||||||
public double Price { get; set; }
|
public double Price { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
using System.Runtime;
|
using AyCode.Interfaces.Users;
|
||||||
|
using System.Runtime;
|
||||||
|
using TIAM.Entities.Products;
|
||||||
|
|
||||||
namespace TIAM.Entities.Users;
|
namespace TIAM.Entities.Users;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
@using TIAMSharedUI.Shared.Components.Grids
|
@using TIAMSharedUI.Shared.Components.Grids
|
||||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||||
@using TIAMWebApp.Shared.Application.Services
|
@using TIAMWebApp.Shared.Application.Services
|
||||||
|
@using AyCode.Interfaces.Addresses
|
||||||
@inject IServiceProviderDataService serviceProviderDataService
|
@inject IServiceProviderDataService serviceProviderDataService
|
||||||
@inject IUserDataService userDataService
|
@inject IUserDataService userDataService
|
||||||
@inject ITransferDataService transferDataService
|
@inject ITransferDataService transferDataService
|
||||||
|
|
@ -23,7 +24,7 @@
|
||||||
DataSource="DataSource"
|
DataSource="DataSource"
|
||||||
Logger="_logger"
|
Logger="_logger"
|
||||||
SignalRClient="AdminSignalRClient"
|
SignalRClient="AdminSignalRClient"
|
||||||
OnDataItemSaving="DataItemSaving"
|
OnEditModelSaving="DataItemSaving"
|
||||||
OnDataItemDeleting="DataItemDeleting"
|
OnDataItemDeleting="DataItemDeleting"
|
||||||
OnDataItemChanged="DataItemChanged"
|
OnDataItemChanged="DataItemChanged"
|
||||||
PageSize="5"
|
PageSize="5"
|
||||||
|
|
@ -33,9 +34,9 @@
|
||||||
ValidationEnabled="false"
|
ValidationEnabled="false"
|
||||||
EditMode="GridEditMode.EditForm"
|
EditMode="GridEditMode.EditForm"
|
||||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||||
ShowFilterRow="true">
|
ShowFilterRow="false">
|
||||||
<Columns>
|
<Columns>
|
||||||
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
<DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||||
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
|
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
|
||||||
<DxGridDataColumn FieldName="AddressText" />
|
<DxGridDataColumn FieldName="AddressText" />
|
||||||
<DxGridDataColumn FieldName="IsValid" Width="40" />
|
<DxGridDataColumn FieldName="IsValid" Width="40" />
|
||||||
|
|
@ -57,7 +58,8 @@
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
[Parameter] public bool KeyboardNavigationEnabled { get; set; }
|
[Parameter] public bool KeyboardNavigationEnabled { get; set; }
|
||||||
[Parameter] public IList<Address> DataSource { get; set; } = null!;
|
[Parameter] public IAcAddressRelation<Address> ParentData { get; set; } = null!;
|
||||||
|
[Parameter] public IList<Address>? DataSource { get; set; }
|
||||||
[Parameter] public EventCallback<Address> OnAddressChanged { get; set; }
|
[Parameter] public EventCallback<Address> OnAddressChanged { get; set; }
|
||||||
|
|
||||||
private AddressDetailGrid _addressGrid = null!;
|
private AddressDetailGrid _addressGrid = null!;
|
||||||
|
|
@ -66,11 +68,16 @@
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<AddressDetailGridComponent>(LogWriters.ToArray());
|
_logger = new LoggerClient<AddressDetailGridComponent>(LogWriters.ToArray());
|
||||||
|
|
||||||
|
DataSource ??= new List<Address> { ParentData.Address };
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DataItemChanged(Address address)
|
private void DataItemChanged(GridDataItemChangedEventArgs<Address> args)
|
||||||
{
|
{
|
||||||
OnAddressChanged.InvokeAsync(address);
|
_logger.Debug($"DataItemSaving; addressId: {args.DataItem.Id}");
|
||||||
|
|
||||||
|
ParentData.Address = args.DataItem;
|
||||||
|
OnAddressChanged.InvokeAsync(args.DataItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DataItemSaving(GridEditModelSavingEventArgs obj)
|
private void DataItemSaving(GridEditModelSavingEventArgs obj)
|
||||||
|
|
|
||||||
|
|
@ -134,13 +134,7 @@
|
||||||
<CompaniesNestedUserProductMapping CurrentCompany="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
|
<CompaniesNestedUserProductMapping CurrentCompany="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||||
</DetailRowTemplate> *@
|
</DetailRowTemplate> *@
|
||||||
<DetailRowTemplate>
|
<DetailRowTemplate>
|
||||||
|
<AddressDetailGridComponent ParentData="((Company)context.DataItem).Profile" OnAddressChanged="AddressChanged" KeyboardNavigationEnabled="true" />
|
||||||
|
|
||||||
@{
|
|
||||||
List<Address> RowData = new List<Address> { ((Company)context.DataItem).Profile.Address };
|
|
||||||
}
|
|
||||||
|
|
||||||
<AddressDetailGridComponent DataSource="RowData" OnAddressChanged="AddressChanged" KeyboardNavigationEnabled="true" />
|
|
||||||
</DetailRowTemplate>
|
</DetailRowTemplate>
|
||||||
<EditFormTemplate Context="EditFormContext">
|
<EditFormTemplate Context="EditFormContext">
|
||||||
@{
|
@{
|
||||||
|
|
@ -198,8 +192,10 @@
|
||||||
|
|
||||||
private void AddressChanged(Address address)
|
private void AddressChanged(Address address)
|
||||||
{
|
{
|
||||||
var company = _gridCompany.DataSource!.FirstOrDefault(x => x.Profile.AddressId == address.Id);
|
_logger.Debug($"DataItemSaving; addressId: {address?.Id}");
|
||||||
company.Profile.Address = address;
|
|
||||||
|
// var company = _gridCompany.DataSource!.FirstOrDefault(x => x.Profile.AddressId == address.Id);
|
||||||
|
// company.Profile.Address = address;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SendMail(Company item)
|
void SendMail(Company item)
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,14 @@
|
||||||
@using TIAMWebApp.Shared.Application.Models.PageModels
|
@using TIAMWebApp.Shared.Application.Models.PageModels
|
||||||
@using TIAMWebApp.Shared.Application.Utility
|
@using TIAMWebApp.Shared.Application.Utility
|
||||||
@using AyCode.Services.Loggers
|
@using AyCode.Services.Loggers
|
||||||
|
@using TIAM.Entities.Addresses
|
||||||
@using TIAM.Services
|
@using TIAM.Services
|
||||||
@using TIAMWebApp.Shared.Application.Services
|
@using TIAMWebApp.Shared.Application.Services
|
||||||
@using TIAMSharedUI.Shared.Components
|
@using TIAMSharedUI.Shared.Components
|
||||||
@using TIAMSharedUI.Shared.Components.Grids
|
@using TIAMSharedUI.Shared.Components.Grids
|
||||||
@using TIAM.Models.Dtos.Users
|
@using TIAM.Models.Dtos.Users
|
||||||
|
@using AyCode.Core.Enums
|
||||||
|
@using AyCode.Core.Extensions
|
||||||
@layout AdminLayout
|
@layout AdminLayout
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject IStringLocalizer<TIAMResources> localizer
|
@inject IStringLocalizer<TIAMResources> localizer
|
||||||
|
|
@ -91,7 +94,7 @@
|
||||||
OnDataItemChanging="DataSourceItemChanging"
|
OnDataItemChanging="DataSourceItemChanging"
|
||||||
OnDataItemChanged="DataSourceItemChanged"
|
OnDataItemChanged="DataSourceItemChanged"
|
||||||
OnDataItemDeleting="DataItemDeleting"
|
OnDataItemDeleting="DataItemDeleting"
|
||||||
OnDataItemSaving="DataItemSaving"
|
OnEditModelSaving="DataItemSaving"
|
||||||
|
|
||||||
CustomizeElement="Grid_CustomizeElement"
|
CustomizeElement="Grid_CustomizeElement"
|
||||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||||
|
|
@ -147,7 +150,7 @@
|
||||||
|
|
||||||
<DxTabs>
|
<DxTabs>
|
||||||
<DxTabPage Text="Driver">
|
<DxTabPage Text="Driver">
|
||||||
<TransferToDriverGridComponent Transfer="(Transfer)context.DataItem" KeyboardNavigationEnabled="true" />
|
<TransferToDriverGridComponent ParentData="(Transfer)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||||
</DxTabPage>
|
</DxTabPage>
|
||||||
</DxTabs>
|
</DxTabs>
|
||||||
|
|
||||||
|
|
@ -210,14 +213,7 @@
|
||||||
</div>
|
</div>
|
||||||
</DxTabPage>
|
</DxTabPage>
|
||||||
</DxTabs>
|
</DxTabs>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</Animation>
|
</Animation>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -270,6 +266,7 @@
|
||||||
void SendMail(Transfer item)
|
void SendMail(Transfer item)
|
||||||
{
|
{
|
||||||
_logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}");
|
_logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}");
|
||||||
|
|
||||||
_messageWizardModel.ReceiverId = item.UserId;
|
_messageWizardModel.ReceiverId = item.UserId;
|
||||||
_messageWizardModel.ContextId = item.Id;
|
_messageWizardModel.ContextId = item.Id;
|
||||||
_messageWizardModel.SenderEmailAddress = "info@touriam.com";
|
_messageWizardModel.SenderEmailAddress = "info@touriam.com";
|
||||||
|
|
@ -374,14 +371,16 @@
|
||||||
InitializeAppointments(transfers);
|
InitializeAppointments(transfers);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DataSourceItemChanging(Transfer transfer)
|
private void DataSourceItemChanging(GridDataItemChangingEventArgs<Transfer> args)
|
||||||
{
|
{
|
||||||
_logger.Info("DataSourceItemChanging called");
|
_logger.Info("DataSourceItemChanging called");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DataSourceItemChanged(Transfer transfer)
|
private void DataSourceItemChanged(GridDataItemChangedEventArgs<Transfer> args)
|
||||||
{
|
{
|
||||||
_logger.Info("DataSourceItemChanged called");
|
_logger.Info("DataSourceItemChanged called");
|
||||||
|
|
||||||
|
AppointmentModels.UpdateCollection(CreateAppointmentModel(args.DataItem), args.DataChangeMode == DataChangeMode.Remove);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DataItemSaving(GridEditModelSavingEventArgs e)
|
private void DataItemSaving(GridEditModelSavingEventArgs e)
|
||||||
|
|
@ -394,19 +393,6 @@
|
||||||
_logger.Info($"DataItemDeleting OnItemDeleting");
|
_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
|
|
||||||
{
|
|
||||||
var appointment = CreateAppointmentModel(transfer);
|
|
||||||
|
|
||||||
if (appointmentIndex > -1) AppointmentModels[appointmentIndex] = appointment;
|
|
||||||
else AppointmentModels.Add(appointment);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override Task OnInitializedAsync()
|
protected override Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<ManageTransfers>(LogWriters.ToArray());
|
_logger = new LoggerClient<ManageTransfers>(LogWriters.ToArray());
|
||||||
|
|
@ -453,7 +439,7 @@
|
||||||
|
|
||||||
public AppointmentModel CreateAppointmentModel(Transfer transfer)
|
public AppointmentModel CreateAppointmentModel(Transfer transfer)
|
||||||
{
|
{
|
||||||
return new AppointmentModel { SourceId = transfer.Id, StartDate = transfer.Appointment, EndDate = transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" };
|
return new AppointmentModel { Id = transfer.Id, StartDate = transfer.Appointment, EndDate = transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" };
|
||||||
}
|
}
|
||||||
|
|
||||||
void ColumnChooserButton_Click()
|
void ColumnChooserButton_Click()
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,8 @@
|
||||||
@using AyCode.Core.Loggers
|
@using AyCode.Core.Loggers
|
||||||
@using AyCode.Services.Loggers
|
@using AyCode.Services.Loggers
|
||||||
@using TIAMWebApp.Shared.Application.Services
|
@using TIAMWebApp.Shared.Application.Services
|
||||||
|
@using AyCode.Core.Enums
|
||||||
|
@using AyCode.Core.Extensions
|
||||||
@inject IUserDataService UserDataService
|
@inject IUserDataService UserDataService
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject AdminSignalRClient AdminSignalRClient;
|
@inject AdminSignalRClient AdminSignalRClient;
|
||||||
|
|
@ -15,10 +17,10 @@
|
||||||
|
|
||||||
|
|
||||||
<TransferToDriversDetailGrid @ref="_transferToDriversGrid"
|
<TransferToDriversDetailGrid @ref="_transferToDriversGrid"
|
||||||
DataSource="Transfer.TransferToDrivers"
|
DataSource="ParentData.TransferToDrivers"
|
||||||
Logger="_logger"
|
Logger="_logger"
|
||||||
SignalRClient="AdminSignalRClient"
|
SignalRClient="AdminSignalRClient"
|
||||||
OnDataItemSaving="DataItemSaving"
|
OnEditModelSaving="DataItemSaving"
|
||||||
OnDataItemDeleting="DataItemDeleting"
|
OnDataItemDeleting="DataItemDeleting"
|
||||||
OnDataItemChanged="DataItemChanged"
|
OnDataItemChanged="DataItemChanged"
|
||||||
PageSize="5"
|
PageSize="5"
|
||||||
|
|
@ -27,9 +29,9 @@
|
||||||
KeyFieldName="Id"
|
KeyFieldName="Id"
|
||||||
ValidationEnabled="false"
|
ValidationEnabled="false"
|
||||||
CustomizeEditModel="CustomizeEditModel"
|
CustomizeEditModel="CustomizeEditModel"
|
||||||
EditMode="GridEditMode.EditForm"
|
EditMode="GridEditMode.EditRow"
|
||||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||||
ShowFilterRow="true">
|
ShowFilterRow="false">
|
||||||
<Columns>
|
<Columns>
|
||||||
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||||
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
|
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
|
||||||
|
|
@ -41,7 +43,7 @@
|
||||||
@code {
|
@code {
|
||||||
[Parameter] public bool KeyboardNavigationEnabled { get; set; }
|
[Parameter] public bool KeyboardNavigationEnabled { get; set; }
|
||||||
|
|
||||||
[Parameter] public Transfer Transfer { get; set; } = null!;
|
[Parameter] public ITransferToDriversRelation ParentData { get; set; } = null!;
|
||||||
[Parameter] public EventCallback<TransferToDriver> OnTransferToDriverChanged { get; set; }
|
[Parameter] public EventCallback<TransferToDriver> OnTransferToDriverChanged { get; set; }
|
||||||
|
|
||||||
private TransferToDriversDetailGrid _transferToDriversGrid = null!;
|
private TransferToDriversDetailGrid _transferToDriversGrid = null!;
|
||||||
|
|
@ -51,12 +53,14 @@
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<TransferToDriverGridComponent>(LogWriters.ToArray());
|
_logger = new LoggerClient<TransferToDriverGridComponent>(LogWriters.ToArray());
|
||||||
|
|
||||||
_logger.Info($"DetailGridData: {Transfer.TransferToDrivers.Count}");
|
_logger.Info($"DetailGridData: {ParentData.TransferToDrivers.Count}");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DataItemChanged(TransferToDriver transferToDriver)
|
private void DataItemChanged(GridDataItemChangedEventArgs<TransferToDriver> args)
|
||||||
{
|
{
|
||||||
OnTransferToDriverChanged.InvokeAsync(transferToDriver);
|
ParentData.TransferToDrivers.UpdateCollection(args.DataItem, args.DataChangeMode == DataChangeMode.Remove);
|
||||||
|
|
||||||
|
OnTransferToDriverChanged.InvokeAsync(args.DataItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DataItemSaving(GridEditModelSavingEventArgs obj)
|
private void DataItemSaving(GridEditModelSavingEventArgs obj)
|
||||||
|
|
@ -79,6 +83,6 @@
|
||||||
newDriver.LicencePlate = "";
|
newDriver.LicencePlate = "";
|
||||||
newDriver.Car = new Car();
|
newDriver.Car = new Car();
|
||||||
newDriver.Price = 0;
|
newDriver.Price = 0;
|
||||||
newDriver.TransferId = Transfer.Id;
|
newDriver.TransferId = ParentData.Id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
using AyCode.Core.Enums;
|
||||||
|
using AyCode.Core.Extensions;
|
||||||
using AyCode.Core.Helpers;
|
using AyCode.Core.Helpers;
|
||||||
|
using AyCode.Core.Interfaces;
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
using AyCode.Services.SignalRs;
|
using AyCode.Services.SignalRs;
|
||||||
using AyCode.Utils.Extensions;
|
using AyCode.Utils.Extensions;
|
||||||
|
|
@ -13,7 +16,29 @@ using TIAMWebApp.Shared.Application.Utility;
|
||||||
|
|
||||||
namespace TIAMSharedUI.Shared.Components.Grids
|
namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
{
|
{
|
||||||
public class TiamGrid<TDataItem> : DxGrid where TDataItem : class, IEntityGuid
|
public class GridDataItemChangingEventArgs<TDataItem> : GridDataItemChangedEventArgs<TDataItem> where TDataItem : class, IId<Guid>
|
||||||
|
{
|
||||||
|
internal GridDataItemChangingEventArgs(TiamGrid<TDataItem> grid, TDataItem dataItem, DataChangeMode dataChangeMode) : base(grid, dataItem, dataChangeMode)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
public bool IsCanceled { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GridDataItemChangedEventArgs<TDataItem> where TDataItem : class, IId<Guid>
|
||||||
|
{
|
||||||
|
internal GridDataItemChangedEventArgs(TiamGrid<TDataItem> grid, TDataItem dataItem, DataChangeMode dataChangeMode)
|
||||||
|
{
|
||||||
|
Grid = grid;
|
||||||
|
DataItem = dataItem;
|
||||||
|
DataChangeMode = dataChangeMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TiamGrid<TDataItem> Grid { get; }
|
||||||
|
public TDataItem DataItem { get; }
|
||||||
|
public DataChangeMode DataChangeMode { get; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TiamGrid<TDataItem> : DxGrid where TDataItem : class, IId<Guid>
|
||||||
{
|
{
|
||||||
protected bool IsFirstInitializeParameters;
|
protected bool IsFirstInitializeParameters;
|
||||||
private IList<TDataItem>? _dataSource;
|
private IList<TDataItem>? _dataSource;
|
||||||
|
|
@ -36,11 +61,11 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
[Parameter] public EventCallback<GridDataItemDeletingEventArgs> OnDataItemDeleting{ get; set; }
|
[Parameter] public EventCallback<GridDataItemDeletingEventArgs> OnDataItemDeleting{ get; set; }
|
||||||
|
|
||||||
protected new EventCallback<GridEditModelSavingEventArgs> EditModelSaving { get; set; }
|
protected new EventCallback<GridEditModelSavingEventArgs> EditModelSaving { get; set; }
|
||||||
[Parameter] public EventCallback<GridEditModelSavingEventArgs> OnDataItemSaving { get; set; }
|
[Parameter] public EventCallback<GridEditModelSavingEventArgs> OnEditModelSaving { get; set; }
|
||||||
|
|
||||||
[Parameter] public EventCallback<IList<TDataItem>> OnDataSourceChanged { get; set; }
|
[Parameter] public EventCallback<IList<TDataItem>> OnDataSourceChanged { get; set; }
|
||||||
[Parameter] public EventCallback<TDataItem> OnDataItemChanging { get; set; }
|
[Parameter] public EventCallback<GridDataItemChangingEventArgs<TDataItem>> OnDataItemChanging { get; set; }
|
||||||
[Parameter] public EventCallback<TDataItem> OnDataItemChanged { get; set; }
|
[Parameter] public EventCallback<GridDataItemChangedEventArgs<TDataItem>> OnDataItemChanged { get; set; }
|
||||||
|
|
||||||
[Parameter]
|
[Parameter]
|
||||||
[DefaultValue(null)]
|
[DefaultValue(null)]
|
||||||
|
|
@ -84,11 +109,17 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
if (firstRender && DataSource == null) RefreshDataSourceAsync().Forget();
|
if (firstRender && DataSource == null) RefreshDataSourceAsync().Forget();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task AddDataItem(TDataItem dataItem) => PostDataToServerAsync(dataItem, AddMessageTag);
|
public Task AddDataItem(TDataItem dataItem) => AddDataItem(dataItem, AddMessageTag);
|
||||||
public Task UpdateDataItem(TDataItem dataItem) => PostDataToServerAsync(dataItem, UpdateMessageTag);
|
public Task AddDataItem(TDataItem dataItem, int messageTag) => PostDataToServerAsync(dataItem, messageTag, DataChangeMode.Add);
|
||||||
public Task RemoveDataItem(TDataItem dataItem) => PostDataToServerAsync(dataItem, RemoveMessageTag);
|
|
||||||
|
|
||||||
public Task RemoveDataItem(Guid id)
|
public Task UpdateDataItem(TDataItem dataItem) => UpdateDataItem(dataItem, UpdateMessageTag);
|
||||||
|
public Task UpdateDataItem(TDataItem dataItem, int messageTag) => PostDataToServerAsync(dataItem, messageTag, DataChangeMode.Update);
|
||||||
|
|
||||||
|
public Task RemoveDataItem(TDataItem dataItem) => RemoveDataItem(dataItem, RemoveMessageTag);
|
||||||
|
public Task RemoveDataItem(TDataItem dataItem, int messageTag) => PostDataToServerAsync(dataItem, messageTag, DataChangeMode.Remove);
|
||||||
|
|
||||||
|
public Task RemoveDataItem(Guid id) => RemoveDataItem(id, RemoveMessageTag);
|
||||||
|
public Task RemoveDataItem(Guid id, int messageTag)
|
||||||
{
|
{
|
||||||
var dataItem = _dataSource.FirstOrDefault(x => x.Id == id);
|
var dataItem = _dataSource.FirstOrDefault(x => x.Id == id);
|
||||||
|
|
||||||
|
|
@ -102,7 +133,7 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
var logText = e.IsNew ? "add" : "update";
|
var logText = e.IsNew ? "add" : "update";
|
||||||
Logger.Info($"{_gridLogName} OnItemSaving {logText}; Id: {dataItem.Id}");
|
Logger.Info($"{_gridLogName} OnItemSaving {logText}; Id: {dataItem.Id}");
|
||||||
|
|
||||||
await OnDataItemSaving.InvokeAsync(e);
|
await OnEditModelSaving.InvokeAsync(e);
|
||||||
|
|
||||||
if (e.Cancel)
|
if (e.Cancel)
|
||||||
{
|
{
|
||||||
|
|
@ -149,9 +180,16 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual async Task PostDataToServerAsync(TDataItem dataItem, int messageTag, bool isDelete = false)
|
protected virtual async Task PostDataToServerAsync(TDataItem dataItem, int messageTag, DataChangeMode dataChangeMode)
|
||||||
{
|
{
|
||||||
await OnDataItemChanging.InvokeAsync(dataItem);
|
var eventArgs = new GridDataItemChangingEventArgs<TDataItem>(this, dataItem, dataChangeMode);
|
||||||
|
await OnDataItemChanging.InvokeAsync(eventArgs);
|
||||||
|
|
||||||
|
if (eventArgs.IsCanceled)
|
||||||
|
{
|
||||||
|
Logger.Debug($"{_gridLogName} OnDataItemChanging canceled");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (messageTag == 0) return;
|
if (messageTag == 0) return;
|
||||||
|
|
||||||
|
|
@ -159,42 +197,44 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
||||||
|
|
||||||
if (dataItem.Id.IsNullOrEmpty()) dataItem.Id = Guid.NewGuid();
|
if (dataItem.Id.IsNullOrEmpty()) dataItem.Id = Guid.NewGuid();
|
||||||
|
|
||||||
RefreshDataItem(dataItem, isDelete); //egyből látszódik a változás a grid-ben, nem csak a callback lefutásakor! felhasználóbarátabb... - J.
|
_dataSource.UpdateCollection(dataItem, dataChangeMode == DataChangeMode.Remove); //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 =>
|
SignalRClient.PostDataAsync(messageTag, dataItem, async repsonse =>
|
||||||
{
|
{
|
||||||
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null || !RefreshDataItem(repsonse.ResponseData, isDelete))
|
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
||||||
{
|
{
|
||||||
RefreshDataSourceAsync().Forget();
|
RefreshDataSourceAsync().Forget();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await OnDataItemChanged.InvokeAsync(dataItem);
|
_dataSource.UpdateCollection(repsonse.ResponseData, dataChangeMode == DataChangeMode.Remove);
|
||||||
|
|
||||||
|
await OnDataItemChanged.InvokeAsync(eventArgs);
|
||||||
InvokeAsync(StateHasChanged).Forget();
|
InvokeAsync(StateHasChanged).Forget();
|
||||||
}).Forget();
|
}).Forget();
|
||||||
|
|
||||||
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual bool RefreshDataItem(TDataItem dataItem, bool isDelete)
|
//protected virtual bool RefreshDataItem(TDataItem dataItem, bool isDelete)
|
||||||
{
|
//{
|
||||||
if (dataItem.Id.IsNullOrEmpty())
|
// if (dataItem.Id.IsNullOrEmpty())
|
||||||
{
|
// {
|
||||||
Logger.Error($"{_gridLogName} dataItem.Id.IsNullOrEmpty()");
|
// Logger.Error($"{_gridLogName} dataItem.Id.IsNullOrEmpty()");
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
|
|
||||||
var transferIndex = _dataSource.FindIndex(x => x.Id == dataItem.Id);
|
// var transferIndex = _dataSource.FindIndex(x => x.Id == dataItem.Id);
|
||||||
|
|
||||||
if (isDelete && transferIndex > -1) _dataSource.RemoveAt(transferIndex);
|
// if (isDelete && transferIndex > -1) _dataSource.RemoveAt(transferIndex);
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
if (transferIndex > -1) _dataSource[transferIndex] = dataItem;
|
// if (transferIndex > -1) _dataSource[transferIndex] = dataItem;
|
||||||
else _dataSource.Add(dataItem);
|
// else _dataSource.Add(dataItem);
|
||||||
}
|
// }
|
||||||
|
|
||||||
return true;
|
// return true;
|
||||||
}
|
//}
|
||||||
|
|
||||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,21 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using AyCode.Core.Interfaces;
|
||||||
|
using AyCode.Interfaces.Entities;
|
||||||
|
|
||||||
namespace TIAMWebApp.Shared.Application.Models.PageModels
|
namespace TIAMWebApp.Shared.Application.Models.PageModels
|
||||||
{
|
{
|
||||||
|
|
||||||
public class AppointmentModel
|
public class AppointmentModel : IId<Guid>
|
||||||
{
|
{
|
||||||
public AppointmentModel() { }
|
public AppointmentModel() { }
|
||||||
|
|
||||||
public Guid SourceId { get; set; } //pl: TransferId, stb... - J;
|
|
||||||
|
/// <summary>
|
||||||
|
/// SourceId //pl: TransferId, stb... - J;
|
||||||
|
/// </summary>
|
||||||
|
public Guid Id { get; set; } //pl: TransferId, stb... - J;
|
||||||
public int AppointmentType { get; set; }
|
public int AppointmentType { get; set; }
|
||||||
public DateTime StartDate { get; set; }
|
public DateTime StartDate { get; set; }
|
||||||
public DateTime EndDate { get; set; }
|
public DateTime EndDate { get; set; }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue