Compare commits
3 Commits
ac4ff71683
...
9418e52eed
| Author | SHA1 | Date |
|---|---|---|
|
|
9418e52eed | |
|
|
fd002486cb | |
|
|
7e9bb7939a |
|
|
@ -1,16 +1,14 @@
|
||||||
@using AyCode.Blazor.Components.Components
|
@using AyCode.Blazor.Components.Components
|
||||||
|
@using AyCode.Core.Helpers
|
||||||
@using TIAMWebApp.Shared.Application.Services
|
@using TIAMWebApp.Shared.Application.Services
|
||||||
@inject GooglePlacesService GooglePlacesService
|
@inject GooglePlacesService GooglePlacesService
|
||||||
|
|
||||||
<h4>
|
<div class="p-3">
|
||||||
@NullText
|
|
||||||
</h4>
|
|
||||||
|
|
||||||
|
|
||||||
<DxTextBox @bind-Text="Address"
|
<DxTextBox @bind-Text="Address"
|
||||||
|
CssClass="@CssClass"
|
||||||
@oninput="OnInputChanged"
|
@oninput="OnInputChanged"
|
||||||
BindValueMode="BindValueMode.OnDelayedInput"
|
BindValueMode="BindValueMode.OnDelayedInput"
|
||||||
InputDelay="500">
|
InputDelay="700">
|
||||||
</DxTextBox>
|
</DxTextBox>
|
||||||
|
|
||||||
@if (Predictions.Count > 0)
|
@if (Predictions.Count > 0)
|
||||||
|
|
@ -21,7 +19,11 @@
|
||||||
@bind-Value="SelectedPrediction">
|
@bind-Value="SelectedPrediction">
|
||||||
</DxComboBox>
|
</DxComboBox>
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<p>No address found</p>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
|
||||||
|
|
@ -29,9 +31,25 @@
|
||||||
|
|
||||||
[Parameter] public EventCallback<string> AddressChanged { get; set; }
|
[Parameter] public EventCallback<string> AddressChanged { get; set; }
|
||||||
|
|
||||||
|
[Parameter] public string CssClass { get; set; }
|
||||||
|
|
||||||
private string Address { get; set; }
|
private string Address { get; set; }
|
||||||
private List<PredictionItem> Predictions { get; set; } = new();
|
private List<PredictionItem> Predictions { get; set; } = new();
|
||||||
private PredictionItem SelectedPrediction { get; set; }
|
private PredictionItem selectedPrediction { get; set; }
|
||||||
|
public PredictionItem SelectedPrediction
|
||||||
|
{
|
||||||
|
get => selectedPrediction;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetNewDestination(value.Description).Forget();
|
||||||
|
selectedPrediction = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task SetNewDestination(string address)
|
||||||
|
{
|
||||||
|
await AddressChanged.InvokeAsync(address);
|
||||||
|
}
|
||||||
|
|
||||||
private async Task OnInputChanged(ChangeEventArgs e)
|
private async Task OnInputChanged(ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
@ -48,7 +66,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PredictionItem
|
public class PredictionItem
|
||||||
{
|
{
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,14 @@
|
||||||
@using AyCode.Services.Loggers
|
@using AyCode.Services.Loggers
|
||||||
@using System.Reflection
|
@using System.Reflection
|
||||||
@using AyCode.Blazor.Components.Components
|
@using AyCode.Blazor.Components.Components
|
||||||
|
@using TIAM.Entities.Products
|
||||||
@using TIAM.Entities.Transfers
|
@using TIAM.Entities.Transfers
|
||||||
|
@using TIAM.Models.Dtos.Users
|
||||||
@using TIAMSharedUI.Shared
|
@using TIAMSharedUI.Shared
|
||||||
|
@using TIAMWebApp.Shared.Application.Interfaces
|
||||||
@using TIAMWebApp.Shared.Application.Utility
|
@using TIAMWebApp.Shared.Application.Utility
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
|
@inject ISessionService _sessionService
|
||||||
|
|
||||||
@if (isEditing)
|
@if (isEditing)
|
||||||
{
|
{
|
||||||
|
|
@ -47,6 +51,9 @@ else
|
||||||
[Parameter] public List<string> IgnoreReflection { get; set; }
|
[Parameter] public List<string> IgnoreReflection { get; set; }
|
||||||
[Parameter] public EventCallback<object> OnSubmit { get; set; }
|
[Parameter] public EventCallback<object> OnSubmit { get; set; }
|
||||||
[Parameter] public bool isEditing { get; set; } = false;
|
[Parameter] public bool isEditing { get; set; } = false;
|
||||||
|
[Parameter] public bool userAvailable { get; set; }
|
||||||
|
[Parameter] public UserModelDtoDetail userModelDtodetail { get; set; }
|
||||||
|
[Parameter] public Product? CurrentProduct { get; set; } = null;
|
||||||
|
|
||||||
string _formSubmitResult = "";
|
string _formSubmitResult = "";
|
||||||
private string _spinnerClass = "";
|
private string _spinnerClass = "";
|
||||||
|
|
@ -62,6 +69,12 @@ else
|
||||||
base.OnInitialized();
|
base.OnInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnParametersSet()
|
||||||
|
{
|
||||||
|
StateHasChanged();
|
||||||
|
base.OnParametersSet();
|
||||||
|
}
|
||||||
|
|
||||||
// void HandleValidSubmit()
|
// void HandleValidSubmit()
|
||||||
// {
|
// {
|
||||||
// FormSubmitResult = "You have been registered successfully.";
|
// FormSubmitResult = "You have been registered successfully.";
|
||||||
|
|
@ -238,9 +251,14 @@ else
|
||||||
}
|
}
|
||||||
else if (property.PropertyType == typeof(string) && string.Compare(attrList.CustomDataType, "TransferDestination", true) == 0)
|
else if (property.PropertyType == typeof(string) && string.Compare(attrList.CustomDataType, "TransferDestination", true) == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
editor.OpenComponent<ComboboxItemSelector>(j);
|
editor.OpenComponent<ComboboxItemSelector>(j);
|
||||||
editor.AddAttribute(j++, "TextValue", property.GetValue(Data));
|
editor.AddAttribute(j++, "TextValue", property.GetValue(Data));
|
||||||
editor.AddAttribute(j++, "CssClass", "form-field");
|
editor.AddAttribute(j++, "CssClass", "form-field");
|
||||||
|
if (CurrentProduct != null)
|
||||||
|
{
|
||||||
|
editor.AddAttribute(j++, "ProductId", CurrentProduct.Id);
|
||||||
|
}
|
||||||
// editor.AddAttribute(j++, "ValExpression", lambda);
|
// editor.AddAttribute(j++, "ValExpression", lambda);
|
||||||
editor.AddAttribute(j++, "OnSliderChanged", EventCallback.Factory.Create<string>(this, result =>
|
editor.AddAttribute(j++, "OnSliderChanged", EventCallback.Factory.Create<string>(this, result =>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@
|
||||||
|
|
||||||
<AuthComponent />
|
<AuthComponent />
|
||||||
|
|
||||||
<HeroSlider SliderItems="@sliders" PBottom="50px" Height="50vh"></HeroSlider>
|
<HeroSlider SliderItems="@sliders" PBottom="50px" Height="30vh"></HeroSlider>
|
||||||
<div class="container" style="position: relative; z-index: 2;">
|
@* <div class="container-fluid" style="position: relative; z-index: 2;">
|
||||||
<div class="row d-flex justify-content-center">
|
<div class="row d-flex justify-content-center">
|
||||||
<div class="col-12 col-lg-6">
|
<div class="col-12 col-lg-6">
|
||||||
<div class="card bg-white p-3">
|
<div class="card bg-white p-3">
|
||||||
|
|
@ -35,16 +35,14 @@
|
||||||
SubmitButtonText="ButtonSend"
|
SubmitButtonText="ButtonSend"
|
||||||
TitleResourceString="TransferTitle"
|
TitleResourceString="TransferTitle"
|
||||||
SubtitleResourceString="TransferSubtitle"></InputWizard>
|
SubtitleResourceString="TransferSubtitle"></InputWizard>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div> *@
|
||||||
|
|
||||||
|
|
||||||
<div class="container" style="align-content: center;">
|
<div class="container-fluid" style="align-content: center;">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@page "/transfer2"
|
@page "/transfer2/{transferId:guid}"
|
||||||
<PageTitle>Transferdetails</PageTitle>
|
<PageTitle>Transferdetails</PageTitle>
|
||||||
@inject NavigationManager navManager
|
@inject NavigationManager navManager
|
||||||
|
|
||||||
|
|
@ -67,6 +67,8 @@
|
||||||
|
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
[Parameter] public Guid? transferId { get; set; }
|
||||||
|
|
||||||
public void next() => navManager.NavigateTo("/transfer");
|
public void next() => navManager.NavigateTo("/transfer");
|
||||||
public void previous() => navManager.NavigateTo("/transfer3");
|
public void previous() => navManager.NavigateTo("/transfer3");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
@page "/transfer"
|
@page "/transfer"
|
||||||
@using TIAMSharedUI.Pages.Components
|
@using TIAMSharedUI.Pages.Components
|
||||||
|
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||||
@using TIAMSharedUI.Shared
|
@using TIAMSharedUI.Shared
|
||||||
@using TIAMWebApp.Shared.Application.Interfaces
|
@using TIAMWebApp.Shared.Application.Interfaces
|
||||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||||
|
|
@ -10,18 +11,18 @@
|
||||||
@inject IWizardProcessor WizardProcessor
|
@inject IWizardProcessor WizardProcessor
|
||||||
<PageTitle>Transfer</PageTitle>
|
<PageTitle>Transfer</PageTitle>
|
||||||
|
|
||||||
<HeroSlider SliderItems="sliders"></HeroSlider>
|
<HeroSlider SliderItems="sliders" Height="30vh"></HeroSlider>
|
||||||
<div class="container" style="position: relative; z-index: 2;">
|
<div class="container-fluid" style="position: relative; z-index: 2;">
|
||||||
<div class="row d-flex justify-content-center">
|
<div class="row d-flex justify-content-center">
|
||||||
<div class="col-12 col-lg-6">
|
<div class="col-12 col-lg-6">
|
||||||
<div class="card bg-white p-3">
|
<div class="card bg-white p-3">
|
||||||
<InputWizard Data=@myModel
|
@* <InputWizard Data=@myModel
|
||||||
OnSubmit="SubmitForm"
|
OnSubmit="SubmitForm"
|
||||||
IgnoreReflection="@TransferIgnorList"
|
IgnoreReflection="@TransferIgnorList"
|
||||||
SubmitButtonText="ButtonSend"
|
SubmitButtonText="ButtonSend"
|
||||||
TitleResourceString="TransferTitle"
|
TitleResourceString="TransferTitle"
|
||||||
SubtitleResourceString="TransferSubtitle"></InputWizard>
|
SubtitleResourceString="TransferSubtitle"></InputWizard> *@
|
||||||
|
<DynamicEditForm Data="myModel" isEditing="true" IgnoreReflection="TransferIgnorList" OnSubmit="SubmitForm"></DynamicEditForm>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@
|
||||||
@inherits BasePageComponent
|
@inherits BasePageComponent
|
||||||
@layout AdminLayout
|
@layout AdminLayout
|
||||||
@inject IPopulationStructureDataProvider DataProvider
|
@inject IPopulationStructureDataProvider DataProvider
|
||||||
@inject ISessionService SessionService
|
|
||||||
@inject IUserDataService UserDataService
|
@inject IUserDataService UserDataService
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject AdminSignalRClient _adminSignalRClient
|
@inject AdminSignalRClient _adminSignalRClient
|
||||||
|
|
@ -50,7 +49,7 @@
|
||||||
|
|
||||||
<div class="row py-3">
|
<div class="row py-3">
|
||||||
|
|
||||||
<DynamicEditForm Data="Data" isEditing="true" IgnoreReflection="TransferIgnorList" OnSubmit="SubmitForm"></DynamicEditForm>
|
<DynamicEditForm Data="Data" CurrentProduct="@SelectedHotel" isEditing="true" IgnoreReflection="TransferIgnorList" OnSubmit="SubmitForm"></DynamicEditForm>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row py-3">
|
<div class="row py-3">
|
||||||
|
|
@ -68,7 +67,20 @@
|
||||||
private LoggerClient<CreateAndManageTransfer> _logger;
|
private LoggerClient<CreateAndManageTransfer> _logger;
|
||||||
private TransferWizardModel Data = new();
|
private TransferWizardModel Data = new();
|
||||||
private List<Product> Hotels = new List<Product>();
|
private List<Product> Hotels = new List<Product>();
|
||||||
private Product SelectedHotel;
|
private Product selectedHotel { get; set; }
|
||||||
|
public Product SelectedHotel
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return selectedHotel;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
selectedHotel = value;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public List<string> TransferIgnorList = new List<string>
|
public List<string> TransferIgnorList = new List<string>
|
||||||
{
|
{
|
||||||
nameof(TransferWizardModel.Id),
|
nameof(TransferWizardModel.Id),
|
||||||
|
|
@ -82,17 +94,25 @@
|
||||||
nameof(TransferWizardModel.Price)
|
nameof(TransferWizardModel.Price)
|
||||||
};
|
};
|
||||||
private bool isReloadVisible = false;
|
private bool isReloadVisible = false;
|
||||||
|
private bool SelectedHotelInitialized = false;
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<CreateAndManageTransfer>(LogWriters.ToArray());
|
_logger = new LoggerClient<CreateAndManageTransfer>(LogWriters.ToArray());
|
||||||
|
if (_sessionService.User != null)
|
||||||
|
{
|
||||||
|
|
||||||
if (SessionService.User.UserModelDto.Products.Count() > 0)
|
if (_sessionService.User.UserModelDto.Products.Count() > 0)
|
||||||
{
|
{
|
||||||
if (SessionService.User.UserModelDto.Products.Any(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel))
|
if (_sessionService.User.UserModelDto.Products.Any(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel))
|
||||||
|
{
|
||||||
|
Hotels = _sessionService.GetHotels();
|
||||||
|
if (!SelectedHotelInitialized)
|
||||||
{
|
{
|
||||||
Hotels = SessionService.GetHotels();
|
|
||||||
SelectedHotel = Hotels[0];
|
SelectedHotel = Hotels[0];
|
||||||
|
SelectedHotelInitialized = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -157,6 +177,7 @@
|
||||||
{
|
{
|
||||||
Data = new TransferWizardModel();
|
Data = new TransferWizardModel();
|
||||||
isReloadVisible = false;
|
isReloadVisible = false;
|
||||||
|
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
@using System.Linq.Expressions
|
@using System.Linq.Expressions
|
||||||
|
@using AyCode.Core.Extensions
|
||||||
@using AyCode.Core.Loggers
|
@using AyCode.Core.Loggers
|
||||||
@using AyCode.Services.Loggers
|
@using AyCode.Services.Loggers
|
||||||
@using TIAM.Core.Loggers
|
@using TIAM.Core.Loggers
|
||||||
|
@using TIAM.Entities.Products
|
||||||
@using TIAM.Entities.Transfers
|
@using TIAM.Entities.Transfers
|
||||||
@using TIAM.Services
|
@using TIAM.Services
|
||||||
@using TIAMSharedUI.Pages
|
@using TIAMSharedUI.Pages
|
||||||
|
@using TIAMSharedUI.Pages.Components
|
||||||
@using TIAMSharedUI.Pages.User.SysAdmins
|
@using TIAMSharedUI.Pages.User.SysAdmins
|
||||||
@using TIAMWebApp.Shared.Application.Interfaces
|
@using TIAMWebApp.Shared.Application.Interfaces
|
||||||
@using TIAMWebApp.Shared.Application.Services
|
@using TIAMWebApp.Shared.Application.Services
|
||||||
|
|
@ -12,20 +15,47 @@
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject AdminSignalRClient _adminSignalRClient
|
@inject AdminSignalRClient _adminSignalRClient
|
||||||
@inject ITransferDataService TransferDataService
|
@inject ITransferDataService TransferDataService
|
||||||
|
@using TIAMWebApp.Shared.Application.Services
|
||||||
|
@inject GooglePlacesService GooglePlacesService
|
||||||
|
|
||||||
|
|
||||||
|
<DxTabs CssClass="bg-light">
|
||||||
|
<DxTabPage Text="Preset addresses">
|
||||||
|
|
||||||
|
|
||||||
<label for="cbOverview" class="demo-text cw-480 mb-1">
|
|
||||||
Select a destination
|
|
||||||
</label>
|
|
||||||
<DxComboBox Data="@Data"
|
<DxComboBox Data="@Data"
|
||||||
|
CssClass="p-3"
|
||||||
InputCssClass="@CssClass"
|
InputCssClass="@CssClass"
|
||||||
@bind-Value="@SelectedDestination"
|
@bind-Value="@SelectedDestination"
|
||||||
SearchMode="@ListSearchMode.AutoSearch"
|
SearchMode="@ListSearchMode.AutoSearch"
|
||||||
SearchFilterCondition="@ListSearchFilterCondition.Contains"
|
SearchFilterCondition="@ListSearchFilterCondition.Contains"
|
||||||
ListRenderMode="ListRenderMode.Virtual"
|
ListRenderMode="ListRenderMode.Virtual"
|
||||||
TextFieldName="@nameof(TransferDestination.Name)"
|
TextFieldName="@nameof(TransferDestination.Name)"
|
||||||
CssClass="cw-480"
|
|
||||||
InputId="cbOverview" />
|
InputId="cbOverview" />
|
||||||
|
|
||||||
|
|
||||||
|
</DxTabPage>
|
||||||
|
<DxTabPage Text="Address locator">
|
||||||
|
|
||||||
|
<AddressSearchAndSelectComponent AddressChanged="@OnSelectedAddressChanged" CssClass="@CssClass">
|
||||||
|
|
||||||
|
</AddressSearchAndSelectComponent>
|
||||||
|
@* <DxFormLayoutItem Caption="Type a custom address">
|
||||||
|
<DxTextBox @bind-Text="Address" />
|
||||||
|
</DxFormLayoutItem>
|
||||||
|
<DxFormLayoutItem>
|
||||||
|
<DxButton Context="ButtonContext" Click="ValidateAddress">Validate Address</DxButton>
|
||||||
|
</DxFormLayoutItem>
|
||||||
|
<DxFormLayoutItem>
|
||||||
|
<p>@ValidationMessage</p>
|
||||||
|
</DxFormLayoutItem> *@
|
||||||
|
|
||||||
|
</DxTabPage>
|
||||||
|
</DxTabs>
|
||||||
|
|
||||||
|
<p>Selected address: @Address</p>
|
||||||
|
|
||||||
|
|
||||||
@* <p class="demo-text cw-480 mt-3">
|
@* <p class="demo-text cw-480 mt-3">
|
||||||
@GetSelectedItemDescription()
|
@GetSelectedItemDescription()
|
||||||
</p> *@
|
</p> *@
|
||||||
|
|
@ -46,6 +76,8 @@
|
||||||
|
|
||||||
[Parameter] public string CssClass { get; set; } = "";
|
[Parameter] public string CssClass { get; set; } = "";
|
||||||
|
|
||||||
|
[Parameter] public Guid? ProductId { get; set; }
|
||||||
|
|
||||||
public List<TransferDestination> Destinations = new List<TransferDestination>();
|
public List<TransferDestination> Destinations = new List<TransferDestination>();
|
||||||
|
|
||||||
public DxTextBox TextField;
|
public DxTextBox TextField;
|
||||||
|
|
@ -56,6 +88,9 @@
|
||||||
|
|
||||||
IEnumerable<TransferDestination> Data { get; set; }
|
IEnumerable<TransferDestination> Data { get; set; }
|
||||||
|
|
||||||
|
private string Address { get; set; }
|
||||||
|
private string ValidationMessage { get; set; }
|
||||||
|
|
||||||
private TransferDestination _selectedDestination;
|
private TransferDestination _selectedDestination;
|
||||||
public TransferDestination SelectedDestination
|
public TransferDestination SelectedDestination
|
||||||
{
|
{
|
||||||
|
|
@ -65,14 +100,14 @@
|
||||||
if (_selectedDestination != value)
|
if (_selectedDestination != value)
|
||||||
{
|
{
|
||||||
_selectedDestination = value;
|
_selectedDestination = value;
|
||||||
SetNewDestination(value);
|
SetNewDestination(value.AddressString!);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnParametersSet()
|
protected override void OnParametersSet()
|
||||||
{
|
{
|
||||||
|
// StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
|
|
@ -80,9 +115,30 @@
|
||||||
_logger = new LoggerClient<ComboboxItemSelector>(LogWriters.ToArray());
|
_logger = new LoggerClient<ComboboxItemSelector>(LogWriters.ToArray());
|
||||||
|
|
||||||
Data = await _adminSignalRClient.GetAllAsync<List<TransferDestination>>(SignalRTags.GetAllTransferDestinations);
|
Data = await _adminSignalRClient.GetAllAsync<List<TransferDestination>>(SignalRTags.GetAllTransferDestinations);
|
||||||
|
|
||||||
|
Guid? productAddressId = Guid.Empty;
|
||||||
|
if (!ProductId.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
var currentProduct = await _adminSignalRClient.GetByIdAsync<Product>(SignalRTags.GetProductById, ProductId);
|
||||||
|
if (currentProduct != null)
|
||||||
|
{
|
||||||
|
if (!currentProduct.Profile.AddressId.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
productAddressId = currentProduct.Profile.AddressId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_logger.Debug($"List length: {Data.Count().ToString()}");
|
_logger.Debug($"List length: {Data.Count().ToString()}");
|
||||||
|
if (Data.Any(x => x.AddressId == (Guid)productAddressId))
|
||||||
|
{
|
||||||
|
SelectedDestination = Data.Where(x => x.AddressId == (Guid)productAddressId).FirstOrDefault()!;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
SelectedDestination = Data.FirstOrDefault();
|
SelectedDestination = Data.FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// RenderFragment GetSelectedItemDescription()
|
// RenderFragment GetSelectedItemDescription()
|
||||||
// {
|
// {
|
||||||
// if (SelectedDestination != null)
|
// if (SelectedDestination != null)
|
||||||
|
|
@ -100,9 +156,16 @@
|
||||||
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public void SetNewDestination(TransferDestination destination)
|
public void OnSelectedAddressChanged(string address)
|
||||||
{
|
{
|
||||||
OnSliderChanged.InvokeAsync(destination.AddressString);
|
Address = address;
|
||||||
|
OnSliderChanged.InvokeAsync(address);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetNewDestination(string address)
|
||||||
|
{
|
||||||
|
Address = address;
|
||||||
|
OnSliderChanged.InvokeAsync(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
// RenderFragment GetFieldDescription(string fieldName, object value)
|
// RenderFragment GetFieldDescription(string fieldName, object value)
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,10 @@
|
||||||
<img height="25" src="_content/TIAMSharedUI/images/logo_wide.png" alt="TourIam Logo" title="TourIAm Logo" />
|
<img height="25" src="_content/TIAMSharedUI/images/logo_wide.png" alt="TourIam Logo" title="TourIAm Logo" />
|
||||||
</NavLink>
|
</NavLink>
|
||||||
|
|
||||||
<button @onclick="ToggleNavMenu" class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="@expandNavMenu" aria-label="Toggle navigation">
|
<button @onclick="ToggleNavMenu" class="navbar-toggler">
|
||||||
<img src="_content/TIAMSharedUI/images/navbar-toggler.png" width="40" />
|
<img src="_content/TIAMSharedUI/images/navbar-toggler.png" width="40" />
|
||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
<div class="@NavMenuCssClass navbar-collapse" id="navbarSupportedContent">
|
||||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<!--NavLink class="nav-link" href="" Match="NavLinkMatch.All"-->
|
<!--NavLink class="nav-link" href="" Match="NavLinkMatch.All"-->
|
||||||
|
|
@ -131,7 +131,7 @@
|
||||||
}
|
}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<div class="btn-nav">
|
<div class="btn-nav">
|
||||||
<NavLink class="btn btn-primary btn-small navbar-btn" href="#" @onclick="SignOut">
|
<NavLink class="btn btn-primary btn-small navbar-btn" href="#" @onclick="SignOut" data-bs-target=".navbar-collapse.show">
|
||||||
@localizer.GetString("NavMenu.SignOut")
|
@localizer.GetString("NavMenu.SignOut")
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -149,7 +149,7 @@
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<script>
|
@* <script>
|
||||||
function toggleBootstrapNavMenu(isExpanded) {
|
function toggleBootstrapNavMenu(isExpanded) {
|
||||||
var navMenu = document.getElementById('navbarNav');
|
var navMenu = document.getElementById('navbarNav');
|
||||||
if (navMenu) {
|
if (navMenu) {
|
||||||
|
|
@ -165,7 +165,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script> *@
|
||||||
|
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,8 @@ namespace TIAMSharedUI.Shared.Components
|
||||||
private bool enableApi = true;
|
private bool enableApi = true;
|
||||||
private bool enableChat = true;
|
private bool enableChat = true;
|
||||||
|
|
||||||
private bool expandNavMenu = true;
|
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : "show";
|
||||||
|
private bool collapseNavMenu = true;
|
||||||
private bool myUser = false;
|
private bool myUser = false;
|
||||||
private bool hasProperty = false;
|
private bool hasProperty = false;
|
||||||
|
|
||||||
|
|
@ -71,11 +72,6 @@ namespace TIAMSharedUI.Shared.Components
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ExpandNavMenu()
|
|
||||||
{
|
|
||||||
await JsRuntime.InvokeVoidAsync("toggleBootstrapNavMenu");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RefreshMe()
|
private void RefreshMe()
|
||||||
{
|
{
|
||||||
_logger.Debug($"Navbar refresh called! {DateTime.Now} ");
|
_logger.Debug($"Navbar refresh called! {DateTime.Now} ");
|
||||||
|
|
@ -87,9 +83,9 @@ namespace TIAMSharedUI.Shared.Components
|
||||||
|
|
||||||
private void ToggleNavMenu()
|
private void ToggleNavMenu()
|
||||||
{
|
{
|
||||||
expandNavMenu = !expandNavMenu;
|
collapseNavMenu = !collapseNavMenu;
|
||||||
|
_logger.Debug($"{NavMenuCssClass}");
|
||||||
JsRuntime.InvokeVoidAsync("toggleBootstrapNavMenu", expandNavMenu);
|
//JsRuntime.InvokeVoidAsync("toggleBootstrapNavMenu", expandNavMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SignOut()
|
private async Task SignOut()
|
||||||
|
|
@ -127,10 +123,10 @@ namespace TIAMSharedUI.Shared.Components
|
||||||
private void OnLocationChanged(object sender, LocationChangedEventArgs e)
|
private void OnLocationChanged(object sender, LocationChangedEventArgs e)
|
||||||
{
|
{
|
||||||
// Collapse the navbar on navigation
|
// Collapse the navbar on navigation
|
||||||
|
collapseNavMenu=true;
|
||||||
expandNavMenu = false;
|
_logger.Debug($"{NavMenuCssClass}");
|
||||||
JsRuntime.InvokeVoidAsync("toggleBootstrapNavMenu", false);
|
//JsRuntime.InvokeVoidAsync("toggleBootstrapNavMenu", false);
|
||||||
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
@using BlazorAnimation
|
@using BlazorAnimation
|
||||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||||
<header style="padding-bottom: @PBottom;">
|
<header style="padding-bottom: @PBottom;">
|
||||||
<Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
|
|
||||||
<div id="owl-demo" class="owl-carousel owl-theme" style="position:absolute; z-index: 1;">
|
<div id="owl-demo" class="owl-carousel owl-theme" style="/* position:absolute; */ z-index: 1;">
|
||||||
|
|
||||||
@{
|
@{
|
||||||
foreach (var slider in SliderItems)
|
foreach (var slider in SliderItems)
|
||||||
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</Animation>
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
</header>
|
||||||
|
|
|
||||||
|
|
@ -213,7 +213,7 @@ select {
|
||||||
/*box-shadow: 0 8px 32px 0 rgba( 31, 38, 135, 0.37 );
|
/*box-shadow: 0 8px 32px 0 rgba( 31, 38, 135, 0.37 );
|
||||||
backdrop-filter: blur( 6px );*/
|
backdrop-filter: blur( 6px );*/
|
||||||
-webkit-backdrop-filter: blur( 6px );
|
-webkit-backdrop-filter: blur( 6px );
|
||||||
border-radius: 10px;
|
/*border-radius: 10px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.dxbl-modal > .dxbl-modal-root > .dxbl-popup > .dxbl-modal-content {
|
.dxbl-modal > .dxbl-modal-root > .dxbl-popup > .dxbl-modal-content {
|
||||||
|
|
@ -530,7 +530,7 @@ select:focus-visible {
|
||||||
}
|
}
|
||||||
|
|
||||||
#owl-demo .item {
|
#owl-demo .item {
|
||||||
height: 50vh;
|
height: 30vh;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ using System;
|
||||||
using TIAM.Database.DbSets.Transfers;
|
using TIAM.Database.DbSets.Transfers;
|
||||||
using TIAM.Services.Interfaces;
|
using TIAM.Services.Interfaces;
|
||||||
using TIAM.Entities.Products;
|
using TIAM.Entities.Products;
|
||||||
|
using AyCode.Core.Enums;
|
||||||
|
|
||||||
namespace TIAMWebApp.Server.Controllers
|
namespace TIAMWebApp.Server.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -536,28 +537,39 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
message.Message.Id = Guid.NewGuid();
|
message.Message.Id = Guid.NewGuid();
|
||||||
message.Message.Subject = "[Tour I Am] New transfer in Budapest";
|
message.Message.Subject = "[Tour I Am] New transfer in Budapest";
|
||||||
message.Message.ContextId = transfer.Id;
|
message.Message.ContextId = transfer.Id;
|
||||||
|
message.Message.ContextType = MessageContextType.Transfer;
|
||||||
message.Message.SenderId = Guid.Empty;
|
message.Message.SenderId = Guid.Empty;
|
||||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), transfer.UserId, Guid.NewGuid(), transfer.ContactEmail));
|
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), transfer.UserId, Guid.NewGuid(), transfer.ContactEmail));
|
||||||
|
|
||||||
string FormatEmailContent()
|
//string FormatEmailContent()
|
||||||
{
|
//{
|
||||||
return $@"
|
// return $@"
|
||||||
<html>
|
// <html>
|
||||||
<body>
|
// <body>
|
||||||
<p>Dear {transfer.FullName},</p>
|
// <p>Dear {transfer.FullName},</p>
|
||||||
<p>We are pleased to inform you that a transfer order has been placed. Below are the details of the transfer:</p>
|
// <p>We are pleased to inform you that a transfer order has been placed. Below are the details of the transfer:</p>
|
||||||
<p>{transfer.FromAddress} - {transfer.ToAddress}</p>
|
// <p>{transfer.FromAddress} - {transfer.ToAddress}</p>
|
||||||
<p>{transfer.Appointment}</p>
|
// <p>{transfer.Appointment}</p>
|
||||||
<p>{transfer.FullName}</p>
|
// <p>{transfer.FullName}</p>
|
||||||
<p>{transfer.PassengerCount}</p>
|
// <p>{transfer.PassengerCount}</p>
|
||||||
<p>Please confirm the transfer by clicking on the following link:</p>
|
// <p>Please confirm the transfer by clicking on the following link:</p>
|
||||||
<p><a href=""{Setting.BaseUrl}/mytransfers/{transfer.Id}"">Confirm Transfer</a></p>
|
// <p><a href=""{Setting.BaseUrl}/mytransfers/{transfer.Id}"">Confirm Transfer</a></p>
|
||||||
<p>If you did not request this transfer, please disregard this email.</p>
|
// <p>If you did not request this transfer, please disregard this email.</p>
|
||||||
<p>Thank you,<br/>Tour I Am team</p>
|
// <p>Thank you,<br/>Tour I Am team</p>
|
||||||
</body>
|
// </body>
|
||||||
</html>";
|
// </html>";
|
||||||
}
|
//}
|
||||||
message.Message.Text = FormatEmailContent();
|
//message.Message.Text = FormatEmailContent();
|
||||||
|
message.Message.Text = EmailTemplateHelper.GenerateNewTransferEmail(
|
||||||
|
transfer.FullName,
|
||||||
|
transfer.FromAddress,
|
||||||
|
transfer.ToAddress,
|
||||||
|
transfer.Appointment.ToString(),
|
||||||
|
transfer.FullName,
|
||||||
|
transfer.PassengerCount.ToString(),
|
||||||
|
transfer.LuggageCount.ToString(),
|
||||||
|
Setting.BaseUrl,
|
||||||
|
transfer.Id.ToString());
|
||||||
_logger.Info(message.Message.Text);
|
_logger.Info(message.Message.Text);
|
||||||
//message.Message.Text = $"Dear {transfer.FullName}! /n We have received an order from you, please confirm the details here: https://www.touriam.com/mytransfer?{transfer.Id}";
|
//message.Message.Text = $"Dear {transfer.FullName}! /n We have received an order from you, please confirm the details here: https://www.touriam.com/mytransfer?{transfer.Id}";
|
||||||
var messageElement = message.Message;
|
var messageElement = message.Message;
|
||||||
|
|
@ -625,28 +637,41 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
message.MessageType = AyCode.Models.Enums.MessageTypesEnum.email;
|
message.MessageType = AyCode.Models.Enums.MessageTypesEnum.email;
|
||||||
message.Message.Subject = "[Tour I Am] New transfer in Budapest";
|
message.Message.Subject = "[Tour I Am] New transfer in Budapest";
|
||||||
message.Message.ContextId = createdTransfer.Id;
|
message.Message.ContextId = createdTransfer.Id;
|
||||||
|
message.Message.ContextType = MessageContextType.Transfer;
|
||||||
message.Message.SenderId = Guid.Empty;
|
message.Message.SenderId = Guid.Empty;
|
||||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), createdTransfer.UserId, Guid.NewGuid(), createdTransfer.ContactEmail));
|
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), createdTransfer.UserId, Guid.NewGuid(), createdTransfer.ContactEmail));
|
||||||
string FormatEmailContent()
|
//string FormatEmailContent()
|
||||||
{
|
//{
|
||||||
return $@"
|
// return $@"
|
||||||
<html>
|
// <html>
|
||||||
<body>
|
// <body>
|
||||||
<p>Dear {createdTransfer.FullName},</p>
|
// <p>Dear {createdTransfer.FullName},</p>
|
||||||
<p>We are pleased to inform you that a transfer order has been placed. Below are the details of the transfer:</p>
|
// <p>We are pleased to inform you that a transfer order has been placed. Below are the details of the transfer:</p>
|
||||||
<p>
|
// <p>
|
||||||
{createdTransfer.FromAddress} - {createdTransfer.ToAddress}</p>
|
// {createdTransfer.FromAddress} - {createdTransfer.ToAddress}</p>
|
||||||
<p>{createdTransfer.Appointment}</p>
|
// <p>{createdTransfer.Appointment}</p>
|
||||||
<p>{createdTransfer.FullName}</p>
|
// <p>{createdTransfer.FullName}</p>
|
||||||
<p>{createdTransfer.PassengerCount}</p>
|
// <p>{createdTransfer.PassengerCount}</p>
|
||||||
<p>Please confirm the transfer by clicking on the following link:</p>
|
// <p>Please confirm the transfer by clicking on the following link:</p>
|
||||||
<p><a href=""{Setting.BaseUrl}/mytransfers/{createdTransfer.Id}"">Confirm Transfer</a></p>
|
// <p><a href=""{Setting.BaseUrl}/mytransfers/{createdTransfer.Id}"">Confirm Transfer</a></p>
|
||||||
<p>If you did not request this transfer, please disregard this email.</p>
|
// <p>If you did not request this transfer, please disregard this email.</p>
|
||||||
<p>Thank you,<br/>Tour I Am team</p>
|
// <p>Thank you,<br/>Tour I Am team</p>
|
||||||
</body>
|
// </body>
|
||||||
</html>";
|
// </html>";
|
||||||
}
|
//}
|
||||||
message.Message.Text = FormatEmailContent();
|
//message.Message.Text = FormatEmailContent();
|
||||||
|
|
||||||
|
message.Message.Text = EmailTemplateHelper.GenerateNewTransferEmail(
|
||||||
|
createdTransfer.FullName,
|
||||||
|
createdTransfer.FromAddress,
|
||||||
|
createdTransfer.ToAddress,
|
||||||
|
createdTransfer.Appointment.ToString(),
|
||||||
|
createdTransfer.FullName,
|
||||||
|
createdTransfer.PassengerCount.ToString(),
|
||||||
|
createdTransfer.LuggageCount.ToString(),
|
||||||
|
Setting.BaseUrl,
|
||||||
|
createdTransfer.Id.ToString());
|
||||||
|
|
||||||
_logger.Info(message.Message.Text);
|
_logger.Info(message.Message.Text);
|
||||||
var messageElement = message.Message;
|
var messageElement = message.Message;
|
||||||
Console.WriteLine(message.Message);
|
Console.WriteLine(message.Message);
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,8 @@ using System.Net;
|
||||||
using TIAM.Services.Server;
|
using TIAM.Services.Server;
|
||||||
using TIAM.Services.Server.Logins;
|
using TIAM.Services.Server.Logins;
|
||||||
using TIAMWebApp.Server.Services;
|
using TIAMWebApp.Server.Services;
|
||||||
|
using AyCode.Core.Enums;
|
||||||
|
using AyCode.Models.Enums;
|
||||||
|
|
||||||
namespace TIAMWebApp.Server.Controllers
|
namespace TIAMWebApp.Server.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -471,13 +473,18 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
message.Message = new EmailMessage();
|
message.Message = new EmailMessage();
|
||||||
message.Message.EmailAddress = email;
|
message.Message.EmailAddress = email;
|
||||||
message.Message.Id = Guid.NewGuid();
|
message.Message.Id = Guid.NewGuid();
|
||||||
message.MessageType = AyCode.Models.Enums.MessageTypesEnum.email;
|
message.MessageType = MessageTypesEnum.email;
|
||||||
message.Message.Subject = "[Tour I Am] New transfer in Budapest";
|
message.Message.Subject = "[Tour I Am] New transfer in Budapest";
|
||||||
message.Message.ContextId = user.Id;
|
message.Message.ContextId = user.Id;
|
||||||
|
message.Message.ContextType = MessageContextType.System;
|
||||||
message.Message.SenderId = Guid.Empty;
|
message.Message.SenderId = Guid.Empty;
|
||||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), user.Id, Guid.NewGuid(), email));
|
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), user.Id, Guid.NewGuid(), email));
|
||||||
|
|
||||||
message.Message.Text = EmailTemplateHelper.GenerateForgotPasswordEmail(user.FullName, Setting.BaseUrl, user.Id.ToString(), user.ConfirmToken);
|
message.Message.Text = EmailTemplateHelper.GenerateForgotPasswordEmail(
|
||||||
|
user.FullName,
|
||||||
|
Setting.BaseUrl,
|
||||||
|
user.Id.ToString(),
|
||||||
|
user.ConfirmToken);
|
||||||
_logger.Info(message.Message.Text);
|
_logger.Info(message.Message.Text);
|
||||||
var messageElement = message.Message;
|
var messageElement = message.Message;
|
||||||
Console.WriteLine(message.Message);
|
Console.WriteLine(message.Message);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue