@page "/hotel/mytransfers/{transferId:guid}" @using AyCode.Core.Enums @using AyCode.Core.Extensions @using TIAM.Core.Consts @using TIAM.Entities.Drivers @using TIAM.Entities.Transfers @using TIAM.Models.Dtos.Users @using TIAM.Resources @using TIAM.Services @using TIAMSharedUI.Pages.Components.EditComponents @using TIAMSharedUI.Shared @using TIAMSharedUI.Shared.Components.BaseComponents @using TIAMWebApp.Shared.Application.Interfaces @using AyCode.Services.Loggers @using TIAM.Core.Enums @using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels @using TIAMWebApp.Shared.Application.Services @using TIAMWebApp.Shared.Application.Utility @using TIAMSharedUI.Pages.User.SysAdmins @using TIAMSharedUI.Pages.Components @layout AdminLayout @inherits BasePageComponent @inject HttpClient Http @inject NavigationManager navManager @inject ITransferDataService transferDataService @inject IUserDataService UserDataService @inject SumupService SumUpService @inject NavigationManager navigationManager @inject IStringLocalizer localizer @inject IWizardProcessor wizardProcessor @inject AdminSignalRClient _adminSignalRClient @localizer.GetString("MyTransfers.Subtitle")

@localizer.GetString("MyTransfers.Title")

@localizer.GetString("MyTransfers.Subtitle")

@* @{ if(showResultMessage) {
@resultMessage
} else { } }
@{ if(showResultMessage) { } else { } }
*@ @if (_isLoading) {
} else if (!string.IsNullOrEmpty(_errorMessage)) {
@_errorMessage
} else {
@if (!_editMode) {
Transfer identifier: #@_transfer.OrderId

@_transfer.ContactPhone

Passenger: @_transfer.FullName

E-mail address: @_transfer.ContactEmail

From: @_transfer.FromAddress

To: @_transfer.ToAddress


@_transfer.Appointment.ToString("MMMM dd, yyyy")
@_transfer.Appointment.ToString("hh:mm tt")

Passengers: @_transfer.PassengerCount

Luggage: @_transfer.LuggageCount

Flight number (optional): @_transfer.FlightNumber


@{ if(_drivers.Count < 1) {

No car information available yet

} else { foreach (var _car in _cars) {

License plate: @_car.LicencePlate

Car looks: @_car.Color, @_car.Manufacture, @_car.CarModel

} } }

Status on: @DateTime.Now.ToString("hh:mm tt"), @DateTime.Today.ToString("MMMM dd, yyyy")

@Enum.GetName(typeof(TransferStatusType), _transfer.TransferStatusType)

EUR @_transfer.Price

} else {
Transfer identifier: @_transfer.Id

}
@*
*@
} @code { [Parameter] public Guid transferId { get; set; } = Guid.Empty; private Transfer _transfer = new Transfer(); private List _drivers = new List(); private List _cars = new List(); private bool _isLoading = true; private string _errorMessage = string.Empty; private bool showResultMessage = false; private string resultMessage = string.Empty; private List sysAdmins = []; private LoggerClient _logger = null!; private MessageWizardModel _messageWizardModel = new(); private bool displayCard = true; private bool _popupVisible; // public List IgnoreList = // [ // "ReceiverEmailAddress", // "ReceiverFullName", // "ReceiverId", // "SenderEmailAddress", // "SenderFullName", // "SenderId", // "ContextId", // "ContextType" // ]; private bool _editMode = false; private readonly List _statusTypes = []; // void SendMail(Transfer item) // { // _logger.Info($"Preparing mail to {item.ContactEmail}, {item.Id}"); // _messageWizardModel.Subject = $"[#{item.OrderId}] New message from guest"; // _messageWizardModel.ReceiverId = TiamConstClient.SysAccounts["SystemEmailSender"]; // //get first sysadmin // _messageWizardModel.ReceiverEmailAddress = sysAdmins[0].UserDto.EmailAddress; // _messageWizardModel.ReceiverFullName = "Admin user"; // _messageWizardModel.SenderId = item.UserId; // _messageWizardModel.SenderEmailAddress = TiamConstClient.SystemEmailAddress; // _messageWizardModel.ContextId = item.Id; // _messageWizardModel.ContextType = MessageContextType.Transfer; // _popupVisible = true; // } // void CancelCreateClick() // { // showResultMessage = false; // resultMessage = ""; // _popupVisible = false; // } // void EmailPopupClosed() // { // //cancel clicked // } // void EmailPopupClosing(PopupClosingEventArgs args) // { // //myModel = new TransferWizardModel(); // _messageWizardModel = new MessageWizardModel(); // } // public async Task SubmitForm(object result) // { // var messageModel = (result as MessageWizardModel)!; // _logger.Info(messageModel.Content); // var email = await wizardProcessor.ProcessWizardAsync(result.GetType(), messageModel); // if(email != null) // { // resultMessage = "Message sent"; // } // else // { // resultMessage = $"Something went wrong, please try again later, or contact us by regular email at {TiamConstClient.SystemEmailAddress}!"; // } // showResultMessage = true; // _logger.Info($"Submitted nested form: {result.GetType().FullName}"); // } private async Task CancelTransfer() { _transfer.TransferStatusType = TransferStatusType.UserCanceled; var result = await UpdateTransfer(true); } // private async Task Pay() // { // if (_transfer != null) // { // var paymentId = ""; // if (_transfer.PaymentId != null) // { // //if we have already // paymentId = _transfer.PaymentId; // } // else // { // //if we have no paymentId yet // paymentId = await SumUpService.CreatePaymentAsync(_transfer); // _transfer.PaymentId = paymentId; // //and save it to Db // var resultTransfer = await UpdateTransfer(false); // if (resultTransfer.PaymentId != null) // { // _logger.Debug("Added paymentId to Db: " + resultTransfer.PaymentId); // } // } // var checkoutUrl = "sumuppayment/" + paymentId; // Console.WriteLine($"Payment Link: {paymentId}"); // navigationManager.NavigateTo(checkoutUrl); // } // } protected override async Task OnInitializedAsync() { foreach (var t in Enum.GetValues(typeof(TransferStatusType)).OfType().ToList()) _statusTypes.Add(t.ToString()); _logger = new LoggerClient(_logWriters.ToArray()); _logger.Info($"parameter: {transferId.ToString()}"); await LoadTransfer(); sysAdmins = await _adminSignalRClient.GetByIdAsync>(SignalRTags.GetAllUserModelDtoDetails, TiamConstClient.SysAdmins[0]); var test = _transfer.UserId; if (!_transfer.UserId.IsNullOrEmpty()) { //get transfer user details var transferUser = await UserDataService.GetUserByEmailAsync(_transfer.ContactEmail); if(transferUser != null) { if(_sessionService.IsAuthenticated) { if (_sessionService.User != null) { if (transferUser.Id == _sessionService.User.UserId) { //I am logged in, and this is my transfer await UserDataService.SetEmailConfirmed(_transfer.UserId); } else { //this is not my transfer, if I am not sysadmin, I should not see the transfer details if(!_sessionService.IsSysAdmin || !_sessionService.IsDevAdmin) { displayCard = false; } } } } else { //does a user exist with this userId? await UserDataService.SetEmailConfirmed(transferUser.Id); } } } } protected override async Task OnParametersSetAsync() { _logger.Info($"on parameter set: {transferId.ToString()}"); await base.OnParametersSetAsync(); } private void SetEditMode() { _editMode = true; } private async Task LoadTransfer() { try { //var response = await transferDataService.GetTransferByIdAsync(transferId); var response = await _adminSignalRClient.GetTransferById(transferId); if (response != null) { _transfer = response; _drivers = await _adminSignalRClient.GetByIdAsync>(SignalRTags.GetTransferDriversByTransferId, _transfer.Id); if(_drivers.Count > 0) { foreach (var _transferToDriver in _drivers) { _cars.Add(_transferToDriver.Car); } _logger.DebugConditional($"{_drivers.FirstOrDefault().Id}"); } } else { _errorMessage = $"Error loading transfer: {_transfer.Id}"; } } catch (Exception ex) { _errorMessage = $"Exception: {ex.Message}"; } _isLoading = false; } private async Task UpdateTransferEventHandler(MouseEventArgs e, bool shouldRedirect = false) { var result = await UpdateTransfer(shouldRedirect); if (result != null && shouldRedirect) navManager.Refresh(false); // Redirect to a list or another page after successful update } private async Task UpdateTransfer(bool shouldRedirect = false) { try { // var responseTransfer = await transferDataService.UpdateTransferAsync(_transfer); var responseTransfer = await _adminSignalRClient.PostDataAsync(SignalRTags.UpdateTransfer, _transfer); if (responseTransfer != null) { return responseTransfer; } else { _errorMessage = $"Error updating transfer: {_transfer.Id}"; return null; } } catch (Exception ex) { _errorMessage = $"Exception: {ex.Message}"; return null; } } }