@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)}"; } @{ //TODO: a ManageTransfers-en ha új sofőrt adunk hozzá a UserProductMapping null lesz és elszáll! - J. var email = string.Empty; var transferToDriverDataItem = ((TransferToDriver)context.DataItem); if (HasReadPermission(transferToDriverDataItem.UserProductMappingId)) email = transferToDriverDataItem.UserProductMapping?.User.EmailAddress; } @email @{ var transferToDriverEditModel = (TransferToDriver)context.EditModel; } @* *@ @{ var transferToDriverDataItem = (TransferToDriver)context.DataItem; @_cars.FirstOrDefault(x => x.Id == transferToDriverDataItem?.CarId)?.LicencePlate } @{ var transferToDriverEditModel = (TransferToDriver)context.EditModel; } @* *@ @* @{ var transferToDriverId = ((TransferToDriver)context.DataItem).Id; } *@ @* *@ @{ var price = string.Empty; var transferToDriverDataItem = ((TransferToDriver)context.DataItem); if (HasReadPermission(transferToDriverDataItem.UserProductMappingId)) price = transferToDriverDataItem.Price.ToString("N0"); } @price @* *@ @code { /// /// UserProductMappingId! Not required... /// [Parameter] public Guid? DriverId { get; set; } = null; [Parameter] public Guid ContextId { get; set; } [Parameter] public ITransferToDriversRelation ParentData { get; set; } = null!; [Parameter] public EventCallback OnTransferToDriverChanged { get; set; } [Parameter] public bool CommandColumnVisible { get; set; } = true; [Parameter] public bool NewButtonVisible { get; set; } = true; [Parameter] public bool EditButtonVisible { get; set; } = true; [Parameter] public bool DeleteButtonVisible { get; set; } = true; private bool _hasEditPermission = true; private bool HasReadPermission(Guid userProductMappingId) => DriverId.IsNullOrEmpty() || DriverId == userProductMappingId; 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) { _hasEditPermission = HasReadPermission(((TransferToDriver)e.DataItem).UserProductMappingId); return; } _hasEditPermission = true; 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() { //TODO: CarModelDtoMin-t megcsinálni és azt lekérni a ComboBox-hoz! - J. return AdminSignalRClient.GetAllCarsAndDriversByProductIdAsync(TiamConstClient.TransferProductId, _cars, _drivers, StateHasChanged); } 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"); } }