@using System.Diagnostics.CodeAnalysis @using AyCode.Core.Extensions @using AyCode.Core.Helpers @using BlazorAnimation @using TIAM.Core.Enums @using TIAM.Entities.Addresses @using TIAM.Entities.Products @using TIAM.Entities.Profiles @using TIAM.Entities.ServiceProviders @using TIAM.Entities.Transfers @using TIAM.Entities.Users @using TIAM.Models.Dtos.Users @using TIAM.Services @using TIAMSharedUI.Shared.Components.Cards @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Models.ClientSide.UI @using TIAMWebApp.Shared.Application.Models.PageModels @using TIAMWebApp.Shared.Application.Services @inject IServiceProviderDataService ServiceProviderDataService @inject IUserDataService UserDataService @inject AdminSignalRClient AdminSignalRClient @inject IJSRuntime JsRuntime @inject NavigationManager NavManager

Download QR
@($"{Product.Name}")

@Product.Profile.EmailAddress

@Product.Profile.Address.AddressText


Information

@RenderDetailsItem("fa-solid fa-user", "Contact Name", Product.Profile.Name) @RenderDetailsItem("fa-solid fa-circle-info", "Description", Product.Description)

Affiliate information

@{ var _url = $"{Setting.BaseUrl}/public/transfer/{Product.ServiceProvider.AffiliateId}/{Product.Id}";

Use this link to send it in an email to the client

@_url }
@{ if (Product.ProductType == ProductType.Hotel) { var url = $"user/hoteladmin/{Product.Id}"; Manage } else if (Product.ProductType == ProductType.Transfer) { var url = $"user/transferadmin/{Product.Id}"; Manage } }
@{ }

@_msg

@code { [Parameter] public required Product Product { get; set; } [Parameter] public EventCallback DataChanged { get; set; } public string ImageSource { get; set; } = ""; AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone; AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick; //private Profile _productProfile = null!;//new Profile(); private readonly List _destinations = []; string _msg; private bool _isSaveActive = false; private bool _isAddressTransferDestination = false; private async Task CopyUrl(string url) { await JsRuntime.InvokeVoidAsync("copyToClipboard", url); } private async Task DownloadImage() { await JsRuntime.InvokeVoidAsync("downloadImage", $"data:image/png;base64,{ImageSource}", "QRCode.jpg"); } protected override async Task OnInitializedAsync() { AdminSignalRClient.GetTransferDestinationsAsync(_destinations, () => { _isAddressTransferDestination = CheckDestinations(Product.Id); StateHasChanged(); }).Forget(); AdminSignalRClient.GetByIdAsync>(SignalRTags.GetCompaniesById, async response => { ImageSource = await ServiceProviderDataService.GetQRCodeByProductIdAndOwnerAffiliateIdAsync([response.ResponseData!.First().AffiliateId, Product.Id]); StateHasChanged(); }, Product.ServiceProviderId).Forget(); await base.OnInitializedAsync(); } protected override async Task OnParametersSetAsync() { await base.OnParametersSetAsync(); } RenderFragment RenderDetailsItem(string iconCssClass, string caption, string value) { return @
@value
; } private bool CheckDestinations(Guid productId) { return _destinations.Any(d => d.ProductId == productId); } private async Task SaveAsDestination(Address address, Product product) { var transferDestination = new TransferDestination { Id = Guid.NewGuid(), Name = product.Name, ProductId = product.Id, Description = !string.IsNullOrEmpty(product.Profile.Description) ? product.Profile.Description : "No description available", AddressId = address.Id, AddressString = address.AddressText }; await AdminSignalRClient.PostDataAsync(SignalRTags.CreateTransferDestination, transferDestination); await InvokeAsync(StateHasChanged); } }