improvements, fixes, etc...
This commit is contained in:
parent
a46a82b466
commit
f5937ad09d
|
|
@ -8,12 +8,13 @@ using TIAM.Entities.Users;
|
|||
namespace TIAM.Entities.Drivers
|
||||
{
|
||||
[Table(nameof(Car))]
|
||||
public class Car : IEntityGuid, ITimeStampInfo, IUserProductMappingForeignKey//, ITimeStampDisableAutoSet
|
||||
public class Car : IEntityGuid, ITimeStampInfo, IUserProductMappingsRelation//, ITimeStampDisableAutoSet
|
||||
{
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public Guid Id { get; set; } = Guid.NewGuid();
|
||||
|
||||
public Guid UserProductMappingId { get; set; }
|
||||
public virtual UserProductMapping UserProductMapping { get; set; }
|
||||
|
||||
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.Schema;
|
||||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Interfaces.Profiles;
|
||||
using AyCode.Interfaces.TimeStampInfo;
|
||||
using TIAM.Core.Enums;
|
||||
|
|
@ -8,8 +7,7 @@ using TIAM.Entities.Profiles;
|
|||
|
||||
namespace TIAM.Entities.Products;
|
||||
|
||||
|
||||
public abstract class ProductBase : IEntityGuid, ITimeStampInfo, IProfileRelation<Profile>
|
||||
public abstract class ProductBase : IProductBase, ITimeStampInfo
|
||||
{
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
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;
|
||||
|
||||
|
||||
[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)]
|
||||
public Guid Id { get; set; }
|
||||
|
|
|
|||
|
|
@ -3,12 +3,13 @@ using System.ComponentModel.DataAnnotations.Schema;
|
|||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Interfaces.TimeStampInfo;
|
||||
using TIAM.Entities.Drivers;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Entities.Transfers;
|
||||
|
||||
[Table(nameof(TransferToDriver))]
|
||||
public class TransferToDriver : IEntityGuid, ITimeStampInfo, IUserProductMappingForeignKey
|
||||
public class TransferToDriver : IEntityGuid, ITimeStampInfo, IUserProductMappingsRelation, ICarRelation, ITransferRelation
|
||||
{
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public Guid Id { get; set; }
|
||||
|
|
@ -19,6 +20,7 @@ public class TransferToDriver : IEntityGuid, ITimeStampInfo, IUserProductMapping
|
|||
|
||||
public virtual Car Car { get; set; }
|
||||
public virtual Transfer Transfer { get; set; }
|
||||
public virtual UserProductMapping UserProductMapping { get; set; }
|
||||
|
||||
public string LicencePlate { 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;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using AyCode.Interfaces.Addresses
|
||||
@inject IServiceProviderDataService serviceProviderDataService
|
||||
@inject IUserDataService userDataService
|
||||
@inject ITransferDataService transferDataService
|
||||
|
|
@ -23,7 +24,7 @@
|
|||
DataSource="DataSource"
|
||||
Logger="_logger"
|
||||
SignalRClient="AdminSignalRClient"
|
||||
OnDataItemSaving="DataItemSaving"
|
||||
OnEditModelSaving="DataItemSaving"
|
||||
OnDataItemDeleting="DataItemDeleting"
|
||||
OnDataItemChanged="DataItemChanged"
|
||||
PageSize="5"
|
||||
|
|
@ -33,9 +34,9 @@
|
|||
ValidationEnabled="false"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
ShowFilterRow="true">
|
||||
ShowFilterRow="false">
|
||||
<Columns>
|
||||
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
<DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
|
||||
<DxGridDataColumn FieldName="AddressText" />
|
||||
<DxGridDataColumn FieldName="IsValid" Width="40" />
|
||||
|
|
@ -57,7 +58,8 @@
|
|||
|
||||
@code {
|
||||
[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; }
|
||||
|
||||
private AddressDetailGrid _addressGrid = null!;
|
||||
|
|
@ -66,11 +68,16 @@
|
|||
protected override void OnInitialized()
|
||||
{
|
||||
_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)
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@
|
|||
<CompaniesNestedUserProductMapping CurrentCompany="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||
</DetailRowTemplate> *@
|
||||
<DetailRowTemplate>
|
||||
<AddressDetailGridComponent DataSource="new List<Address> { ((Company)context.DataItem).Profile.Address }" OnAddressChanged="AddressChanged" KeyboardNavigationEnabled="true" />
|
||||
<AddressDetailGridComponent ParentData="((Company)context.DataItem).Profile" OnAddressChanged="AddressChanged" KeyboardNavigationEnabled="true" />
|
||||
</DetailRowTemplate>
|
||||
<EditFormTemplate Context="EditFormContext">
|
||||
@{
|
||||
|
|
@ -192,8 +192,10 @@
|
|||
|
||||
private void AddressChanged(Address address)
|
||||
{
|
||||
var company = _gridCompany.DataSource!.FirstOrDefault(x => x.Profile.AddressId == address.Id);
|
||||
company.Profile.Address = address;
|
||||
_logger.Debug($"DataItemSaving; addressId: {address?.Id}");
|
||||
|
||||
// var company = _gridCompany.DataSource!.FirstOrDefault(x => x.Profile.AddressId == address.Id);
|
||||
// company.Profile.Address = address;
|
||||
}
|
||||
|
||||
void SendMail(Company item)
|
||||
|
|
|
|||
|
|
@ -11,11 +11,14 @@
|
|||
@using TIAMWebApp.Shared.Application.Models.PageModels
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Entities.Addresses
|
||||
@using TIAM.Services
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMSharedUI.Shared.Components
|
||||
@using TIAMSharedUI.Shared.Components.Grids
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Extensions
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
|
|
@ -91,7 +94,7 @@
|
|||
OnDataItemChanging="DataSourceItemChanging"
|
||||
OnDataItemChanged="DataSourceItemChanged"
|
||||
OnDataItemDeleting="DataItemDeleting"
|
||||
OnDataItemSaving="DataItemSaving"
|
||||
OnEditModelSaving="DataItemSaving"
|
||||
|
||||
CustomizeElement="Grid_CustomizeElement"
|
||||
CustomizeEditModel="Grid_CustomizeEditModel"
|
||||
|
|
@ -147,7 +150,7 @@
|
|||
|
||||
<DxTabs>
|
||||
<DxTabPage Text="Driver">
|
||||
<TransferToDriverGridComponent Transfer="(Transfer)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||
<TransferToDriverGridComponent ParentData="(Transfer)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||
</DxTabPage>
|
||||
</DxTabs>
|
||||
|
||||
|
|
@ -210,14 +213,7 @@
|
|||
</div>
|
||||
</DxTabPage>
|
||||
</DxTabs>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</Animation>
|
||||
</div>
|
||||
|
||||
|
|
@ -270,6 +266,7 @@
|
|||
void SendMail(Transfer item)
|
||||
{
|
||||
_logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}");
|
||||
|
||||
_messageWizardModel.ReceiverId = item.UserId;
|
||||
_messageWizardModel.ContextId = item.Id;
|
||||
_messageWizardModel.SenderEmailAddress = "info@touriam.com";
|
||||
|
|
@ -374,14 +371,16 @@
|
|||
InitializeAppointments(transfers);
|
||||
}
|
||||
|
||||
private void DataSourceItemChanging(Transfer transfer)
|
||||
private void DataSourceItemChanging(GridDataItemChangingEventArgs<Transfer> args)
|
||||
{
|
||||
_logger.Info("DataSourceItemChanging called");
|
||||
}
|
||||
|
||||
private void DataSourceItemChanged(Transfer transfer)
|
||||
private void DataSourceItemChanged(GridDataItemChangedEventArgs<Transfer> args)
|
||||
{
|
||||
_logger.Info("DataSourceItemChanged called");
|
||||
|
||||
AppointmentModels.UpdateCollection(CreateAppointmentModel(args.DataItem), args.DataChangeMode == DataChangeMode.Remove);
|
||||
}
|
||||
|
||||
private void DataItemSaving(GridEditModelSavingEventArgs e)
|
||||
|
|
@ -394,19 +393,6 @@
|
|||
_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()
|
||||
{
|
||||
_logger = new LoggerClient<ManageTransfers>(LogWriters.ToArray());
|
||||
|
|
@ -453,7 +439,7 @@
|
|||
|
||||
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()
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using AyCode.Core.Enums
|
||||
@using AyCode.Core.Extensions
|
||||
@inject IUserDataService UserDataService
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject AdminSignalRClient AdminSignalRClient;
|
||||
|
|
@ -15,10 +17,10 @@
|
|||
|
||||
|
||||
<TransferToDriversDetailGrid @ref="_transferToDriversGrid"
|
||||
DataSource="Transfer.TransferToDrivers"
|
||||
DataSource="ParentData.TransferToDrivers"
|
||||
Logger="_logger"
|
||||
SignalRClient="AdminSignalRClient"
|
||||
OnDataItemSaving="DataItemSaving"
|
||||
OnEditModelSaving="DataItemSaving"
|
||||
OnDataItemDeleting="DataItemDeleting"
|
||||
OnDataItemChanged="DataItemChanged"
|
||||
PageSize="5"
|
||||
|
|
@ -27,9 +29,9 @@
|
|||
KeyFieldName="Id"
|
||||
ValidationEnabled="false"
|
||||
CustomizeEditModel="CustomizeEditModel"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
EditMode="GridEditMode.EditRow"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
ShowFilterRow="true">
|
||||
ShowFilterRow="false">
|
||||
<Columns>
|
||||
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
|
||||
|
|
@ -41,7 +43,7 @@
|
|||
@code {
|
||||
[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; }
|
||||
|
||||
private TransferToDriversDetailGrid _transferToDriversGrid = null!;
|
||||
|
|
@ -51,12 +53,14 @@
|
|||
{
|
||||
_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)
|
||||
|
|
@ -79,6 +83,6 @@
|
|||
newDriver.LicencePlate = "";
|
||||
newDriver.Car = new Car();
|
||||
newDriver.Price = 0;
|
||||
newDriver.TransferId = Transfer.Id;
|
||||
newDriver.TransferId = ParentData.Id;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,8 @@
|
|||
using System.ComponentModel;
|
||||
using AyCode.Core.Enums;
|
||||
using AyCode.Core.Extensions;
|
||||
using AyCode.Core.Helpers;
|
||||
using AyCode.Core.Interfaces;
|
||||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Services.SignalRs;
|
||||
using AyCode.Utils.Extensions;
|
||||
|
|
@ -13,7 +16,29 @@ using TIAMWebApp.Shared.Application.Utility;
|
|||
|
||||
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;
|
||||
private IList<TDataItem>? _dataSource;
|
||||
|
|
@ -36,11 +61,11 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
|||
[Parameter] public EventCallback<GridDataItemDeletingEventArgs> OnDataItemDeleting{ 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<TDataItem> OnDataItemChanging { get; set; }
|
||||
[Parameter] public EventCallback<TDataItem> OnDataItemChanged { get; set; }
|
||||
[Parameter] public EventCallback<GridDataItemChangingEventArgs<TDataItem>> OnDataItemChanging { get; set; }
|
||||
[Parameter] public EventCallback<GridDataItemChangedEventArgs<TDataItem>> OnDataItemChanged { get; set; }
|
||||
|
||||
[Parameter]
|
||||
[DefaultValue(null)]
|
||||
|
|
@ -84,11 +109,17 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
|||
if (firstRender && DataSource == null) RefreshDataSourceAsync().Forget();
|
||||
}
|
||||
|
||||
public Task AddDataItem(TDataItem dataItem) => PostDataToServerAsync(dataItem, AddMessageTag);
|
||||
public Task UpdateDataItem(TDataItem dataItem) => PostDataToServerAsync(dataItem, UpdateMessageTag);
|
||||
public Task RemoveDataItem(TDataItem dataItem) => PostDataToServerAsync(dataItem, RemoveMessageTag);
|
||||
public Task AddDataItem(TDataItem dataItem) => AddDataItem(dataItem, AddMessageTag);
|
||||
public Task AddDataItem(TDataItem dataItem, int messageTag) => PostDataToServerAsync(dataItem, messageTag, DataChangeMode.Add);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -102,7 +133,7 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
|||
var logText = e.IsNew ? "add" : "update";
|
||||
Logger.Info($"{_gridLogName} OnItemSaving {logText}; Id: {dataItem.Id}");
|
||||
|
||||
await OnDataItemSaving.InvokeAsync(e);
|
||||
await OnEditModelSaving.InvokeAsync(e);
|
||||
|
||||
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;
|
||||
|
||||
|
|
@ -159,42 +197,44 @@ namespace TIAMSharedUI.Shared.Components.Grids
|
|||
|
||||
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 =>
|
||||
{
|
||||
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null || !RefreshDataItem(repsonse.ResponseData, isDelete))
|
||||
if (repsonse.Status != SignalResponseStatus.Success || repsonse.ResponseData == null)
|
||||
{
|
||||
RefreshDataSourceAsync().Forget();
|
||||
return;
|
||||
}
|
||||
|
||||
await OnDataItemChanged.InvokeAsync(dataItem);
|
||||
_dataSource.UpdateCollection(repsonse.ResponseData, dataChangeMode == DataChangeMode.Remove);
|
||||
|
||||
await OnDataItemChanged.InvokeAsync(eventArgs);
|
||||
InvokeAsync(StateHasChanged).Forget();
|
||||
}).Forget();
|
||||
|
||||
//transfer = await devAdminSignalClient.PostDataAsync(SignalRTags.UpdateTransferAsync, transfer);
|
||||
}
|
||||
|
||||
protected virtual bool RefreshDataItem(TDataItem dataItem, bool isDelete)
|
||||
{
|
||||
if (dataItem.Id.IsNullOrEmpty())
|
||||
{
|
||||
Logger.Error($"{_gridLogName} dataItem.Id.IsNullOrEmpty()");
|
||||
return false;
|
||||
}
|
||||
//protected virtual bool RefreshDataItem(TDataItem dataItem, bool isDelete)
|
||||
//{
|
||||
// if (dataItem.Id.IsNullOrEmpty())
|
||||
// {
|
||||
// Logger.Error($"{_gridLogName} dataItem.Id.IsNullOrEmpty()");
|
||||
// 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);
|
||||
else
|
||||
{
|
||||
if (transferIndex > -1) _dataSource[transferIndex] = dataItem;
|
||||
else _dataSource.Add(dataItem);
|
||||
}
|
||||
// if (isDelete && transferIndex > -1) _dataSource.RemoveAt(transferIndex);
|
||||
// else
|
||||
// {
|
||||
// if (transferIndex > -1) _dataSource[transferIndex] = dataItem;
|
||||
// else _dataSource.Add(dataItem);
|
||||
// }
|
||||
|
||||
return true;
|
||||
}
|
||||
// return true;
|
||||
//}
|
||||
|
||||
protected override Task SetParametersAsyncCore(ParameterView parameters)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,15 +3,21 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AyCode.Core.Interfaces;
|
||||
using AyCode.Interfaces.Entities;
|
||||
|
||||
namespace TIAMWebApp.Shared.Application.Models.PageModels
|
||||
{
|
||||
|
||||
public class AppointmentModel
|
||||
public class AppointmentModel : IId<Guid>
|
||||
{
|
||||
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 DateTime StartDate { get; set; }
|
||||
public DateTime EndDate { get; set; }
|
||||
|
|
|
|||
Loading…
Reference in New Issue