@page "/mytransfers/{transferId:guid}" @using TIAM.Entities.Transfers @using TIAM.Resources @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 @inject HttpClient Http @inject NavigationManager navManager @inject IEnumerable LogWriters @inject ITransferDataService transferDataService @inject SumupService SumUpService @inject NavigationManager navigationManager @inject IStringLocalizer localizer @inject IWizardProcessor wizardProcessor Transfer details

Transfer details

Manage your transfer here

@if (isLoading) {
} else if (!string.IsNullOrEmpty(errorMessage)) {
@errorMessage
} else {
@if (!editMode) {
Transfer identifier: @transfer.Id

@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


License plate: POX-382

Car looks: Silver, Toyota, Prius


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

EUR @transfer.Price

} else {
Transfer identifier: @transfer.Id


License plate: POX-382

Car looks: Silver, Toyota, Prius


Status on: @DateTime.Now.TimeOfDay, @DateTime.Today.Date

EUR @transfer.Price via (COD)

}
} @code { [Parameter] public Guid transferId { get; set; } = Guid.Empty; private Transfer transfer = new Transfer(); private bool isLoading = true; private string errorMessage = string.Empty; private LoggerClient _logger; private MessageWizardModel _messageWizardModel = new(); private bool _popupVisible; private bool _autoCollapseDetailRow; public List IgnoreList = [ "ReceiverEmailAddress", "ReceiverFullName", "ReceiverId", "SenderEmailAddress", "SenderFullName", "SenderId", "ContextId", ]; List StatusTypes = new List(); private bool editMode = false; 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"; _messageWizardModel.ReceiverEmailAddress = item.ContactEmail; _messageWizardModel.ReceiverFullName = item.FullName; _popupVisible = true; } void CancelCreateClick() { _popupVisible = false; } void EulaPopupClosed() { //cancel clicked } void EulaPopupClosing(PopupClosingEventArgs args) { //myModel = new TransferWizardModel(); _messageWizardModel = new MessageWizardModel(); } public async Task SubmitForm(object result) { var messageModel = result as MessageWizardModel; messageModel.ContextId = _messageWizardModel.ContextId; //messageModel.SenderId = sessionService.User.UserId; string FormatEmailContent() { return $@"

Dear {messageModel.SenderFullName},

{messageModel.Content}:

Best regards,
Tour I Am team

"; } messageModel.Content = FormatEmailContent(); _logger.Info(messageModel.Content); var email = await wizardProcessor.ProcessWizardAsync(result.GetType(), messageModel); _logger.Info($"Submitted nested form: {result.GetType().FullName}"); } private async Task Pay() { if (transfer != null) { string 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); } } string 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(); } protected override async Task OnParametersSetAsync() { _logger.Info($"on parameter set: {transferId.ToString()}"); base.OnParametersSet(); } private void SetEditMode() { editMode = true; } private async Task LoadTransfer() { try { var response = await transferDataService.GetTransferByIdAsync(transferId); if (response != null) { transfer = response; } 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.NavigateTo("/mytransfers"); // Redirect to a list or another page after successful update } private async Task UpdateTransfer(bool shouldRedirect = false) { try { var responseTransfer = await transferDataService.UpdateTransferAsync(transfer); if (responseTransfer != null) { return responseTransfer; } else { errorMessage = $"Error updating transfer: {transfer.Id}"; return null; } } catch (Exception ex) { errorMessage = $"Exception: {ex.Message}"; return null; } } }