@using TIAM.Entities.Transfers @using TIAM.Entities.Drivers @using TIAM.Models.Dtos.Users @using TIAMSharedUI.Shared.Components.Grids @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Utility @using TIAM.Core.Loggers @using AyCode.Core.Loggers @using AyCode.Services.Loggers @using TIAMWebApp.Shared.Application.Services @using AyCode.Core.Enums @using AyCode.Core.Extensions @using AyCode.Core @using AyCode.Core.Helpers @using AyCode.Services.SignalRs @using AyCode.Utils.Extensions @using TIAM.Core.Consts @using TIAM.Entities.Users @using TIAM.Services @inject IUserDataService UserDataService @inject IEnumerable LogWriters @inject AdminSignalRClient AdminSignalRClient; @{ var userEmailFieldName = $"{nameof(TransferToDriver.UserProductMapping)}.{nameof(UserProductMapping.User)}.{nameof(User.EmailAddress)}"; var userEmailFieldNameComboItem = $"{nameof(UserProductMapping.User)}.{nameof(User.EmailAddress)}"; var userNameFieldNameComboItem = $"{nameof(UserProductMapping.User)}.{nameof(User.FullName)}"; } @{ var transferToDriverEditModel = (TransferToDriver)context.EditModel; } @* *@ @{ var transferToDriver = (TransferToDriver)context.DataItem; @_cars.FirstOrDefault(x => x.Id == transferToDriver.CarId)?.LicencePlate } @{ var transferToDriverEditModel = (TransferToDriver)context.EditModel; } @* *@ @* @{ var transferToDriverId = ((TransferToDriver)context.DataItem).Id; } *@ @* *@ @* *@ @code { [Parameter] public Guid ContextId { get; set; } [Parameter] public ITransferToDriversRelation ParentData { get; set; } = null!; [Parameter] public EventCallback OnTransferToDriverChanged { get; set; } private TransferToDriversDetailGrid _transferToDriversGrid = null!; private LoggerClient _logger = null!; private static List _cars = []; private static List _drivers = []; protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); _logger.Info($"DetailGridData: {ParentData.TransferToDrivers.Count}"); await base.OnInitializedAsync(); } protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { LoadComboBoxItems().Forget(); } await base.OnAfterRenderAsync(firstRender); } void CustomizeEditModel(GridCustomizeEditModelEventArgs e) { if (!e.IsNew) return; var newDriver = (TransferToDriver)e.EditModel; newDriver.Id = Guid.NewGuid(); newDriver.CarId = Guid.Empty; newDriver.LicencePlate = ""; newDriver.Car = new Car(); newDriver.Price = 0; newDriver.TransferId = ParentData.Id; } private Task LoadComboBoxItems() { // _cars.AddRange((await AdminSignalRClient.GetAllAsync>(SignalRTags.GetAllCarsByProductId, [TiamConstClient.TransferProductId])) ?? []); // _drivers.AddRange(_cars.DistinctBy(x => x.UserProductMappingId).Select(x => x.UserProductMapping)); //AdminSignalRClient.GetAllIntoAsync(_cars, SignalRTags.GetAllCarsByProductId, [TiamConstClient.TransferProductId]) //TODO: CarModelDtoMin-t megcsinálni és azt lekérni a ComboBox-hoz! - J. return AdminSignalRClient.GetAllAsync>(SignalRTags.GetAllCarsByProductId, async response => { if (response.Status != SignalResponseStatus.Success || response.ResponseData == null) { _logger.Error($"GetAllAsync>(); status: {response.Status}; dataCount: {response.ResponseData?.Count}"); return; } _cars.Clear(); _cars.AddRange(response.ResponseData); _drivers.Clear(); _drivers.AddRange(_cars.DistinctBy(x => x.UserProductMappingId).Select(x => x.UserProductMapping)); await InvokeAsync(StateHasChanged); }, [TiamConstClient.TransferProductId]); } private void DataItemChanged(GridDataItemChangedEventArgs args) { //ParentData?.TransferToDrivers?.UpdateCollection(args.DataItem, args.TrackingState == TrackingState.Remove); OnTransferToDriverChanged.InvokeAsync(args.DataItem); } private void DataItemSaving(GridEditModelSavingEventArgs args) { _logger.Debug($"DataItemSaving"); var transferToDriverEditModel = (TransferToDriver)args.EditModel; if (transferToDriverEditModel.UserProductMappingId.IsNullOrEmpty() || transferToDriverEditModel.CarId.IsNullOrEmpty() || transferToDriverEditModel.LicencePlate.IsNullOrWhiteSpace() || transferToDriverEditModel.Price <= 0) { args.Cancel = true; _logger.Error($"transferToDriverEditModel.UserProductMappingId.IsNullOrEmpty() || transferToDriverEditModel.CarId.IsNullOrEmpty() || transferToDriverEditModel.LicencePlate.IsNullOrWhiteSpace() || transferToDriverEditModel.Price <= 0"); } if (args.IsNew) { transferToDriverEditModel.TransferId = ContextId; transferToDriverEditModel.Id = Guid.NewGuid(); transferToDriverEditModel.Car = null; } } private void DataItemDeleting(GridDataItemDeletingEventArgs args) { _logger.Debug($"DataItemDeleting"); } }