Compare commits

..

No commits in common. "a31d8ef40dd2c3a460d9fec80413e809c4424ab0" and "05b76fe8a46a5591ec81eaf00decfe4c942cdc69" have entirely different histories.

9 changed files with 326 additions and 280 deletions

View File

@ -11,24 +11,22 @@
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI @using TIAMWebApp.Shared.Application.Models.ClientSide.UI
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels @using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
@using AyCode.Services.Loggers @using AyCode.Services.Loggers
@using TIAMSharedUI.Pages.User.Hotels
@using TIAMWebApp.Shared.Application.Models.PageModels @using TIAMWebApp.Shared.Application.Models.PageModels
@using TIAMWebApp.Shared.Application.Services @using TIAMWebApp.Shared.Application.Services
@using TIAMWebApp.Shared.Application.Utility
@inherits BasePageComponent @inherits BasePageComponent
@inject NavigationManager navManager @inject NavigationManager navManager
@inject IEnumerable<IAcLogWriterClientBase> LogWriters @inject IAcLogWriterClientBase BrowserConsoleLogWriter
@inject IWizardProcessor WizardProcessor @inject IWizardProcessor WizardProcessor
@inject IUserDataService UserDataService @inject IUserDataService UserDataService
@inject AdminSignalRClient _adminSignalRClient @inject AdminSignalRClient _adminSignalRClient
<PageTitle>Transfer</PageTitle> <PageTitle>Transfer</PageTitle>
<HeroSlider SliderItems="_sliders" Height="30vh"></HeroSlider> <HeroSlider SliderItems="sliders" Height="30vh"></HeroSlider>
<div class="container-fluid" 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">
@{ @{
if (_displayHelp) if (displayHelp)
{ {
<div class="col-md-6 col-12 px-5"> <div class="col-md-6 col-12 px-5">
<!-- Step 1 --> <!-- Step 1 -->
@ -172,12 +170,12 @@
<DxTabPage TabIconCssClass="fa-solid fa-plane-departure" Click="ToAirport" Text="To the Airport"> <DxTabPage TabIconCssClass="fa-solid fa-plane-departure" Click="ToAirport" Text="To the Airport">
<DynamicEditForm Data="_myModel" TitleString="@($"To: {_myModel.Destination}")" isEditing="true" IgnoreReflection="_transferIgnorList1" OnSubmit="SubmitForm"></DynamicEditForm> <DynamicEditForm Data="myModel" TitleString="@($"To: {myModel.Destination}")" isEditing="true" IgnoreReflection="TransferIgnorList1" OnSubmit="SubmitForm"></DynamicEditForm>
</DxTabPage> </DxTabPage>
<DxTabPage TabIconCssClass="fa-solid fa-plane-arrival" Click="FromAirport" Text="From the Airport"> <DxTabPage TabIconCssClass="fa-solid fa-plane-arrival" Click="FromAirport" Text="From the Airport">
<DynamicEditForm Data="_myModel" TitleString="@($"From: {_myModel.Destination}")" isEditing="true" IgnoreReflection="_transferIgnorList2" OnSubmit="SubmitForm"></DynamicEditForm> <DynamicEditForm Data="myModel" TitleString="@($"From: {myModel.Destination}")" isEditing="true" IgnoreReflection="TransferIgnorList2" OnSubmit="SubmitForm"></DynamicEditForm>
</DxTabPage> </DxTabPage>
</DxTabs> </DxTabs>
@ -236,33 +234,29 @@
@code { @code {
private LoggerClient<TransferPage> _logger; public TransferWizardModel myModel = new TransferWizardModel();
private readonly TransferWizardModel _myModel = new TransferWizardModel(); public List<HeroSliderItem> sliders = new List<HeroSliderItem>
{
private readonly List<HeroSliderItem> _sliders =
[
new HeroSliderItem new HeroSliderItem
{ {
Title = "Welcome to TIAM", Title = "Welcome to TIAM",
ImageUrl = "_content/TIAMSharedUI/images/f1_1.png" ImageUrl = "_content/TIAMSharedUI/images/f1_1.png"
}, },
new HeroSliderItem new HeroSliderItem
{ {
Title = "Welcome to TIAM", Title = "Welcome to TIAM",
ImageUrl = "_content/TIAMSharedUI/images/f1_2.png" ImageUrl = "_content/TIAMSharedUI/images/f1_2.png"
}, },
new HeroSliderItem
new HeroSliderItem
{ {
Title = "Welcome to TIAM", Title = "Welcome to TIAM",
ImageUrl = "_content/TIAMSharedUI/images/f1_3.png" ImageUrl = "_content/TIAMSharedUI/images/f1_3.png"
} },
]; };
private readonly List<string> _transferIgnorList1 = public List<string> TransferIgnorList1 = new List<string>
[ {
"Id", "Id",
"Destination", "Destination",
"UserId", "UserId",
@ -275,10 +269,10 @@
"UserProductToCarId", "UserProductToCarId",
"ReferralId", "ReferralId",
"Price" "Price"
]; };
private readonly List<string> _transferIgnorList2 = public List<string> TransferIgnorList2 = new List<string>
[ {
"Id", "Id",
"PickupAddress", "PickupAddress",
"UserId", "UserId",
@ -291,33 +285,32 @@
"UserProductToCarId", "UserProductToCarId",
"ReferralId", "ReferralId",
"Price" "Price"
]; };
/*protected override void OnAfterRender(bool isFirst) /*protected override void OnAfterRender(bool isFirst)
{ {
message = " Target destination is " + slider.SliderElementId.ToString(); message = " Target destination is " + slider.SliderElementId.ToString();
}*/ }*/
private bool _toAirport = true; private bool toAirport = true;
private bool _displayHelp = false; private bool displayHelp = false;
public void ToAirport() public void ToAirport()
{ {
_toAirport = true; toAirport = true;
_myModel.Destination = "Budapest, 1185"; myModel.Destination = "Budapest, 1185";
} }
public void FromAirport() public void FromAirport()
{ {
_toAirport = false; toAirport = false;
_myModel.PickupAddress = "Budapest, 1185"; myModel.PickupAddress = "Budapest, 1185";
} }
public async Task SubmitForm(object result) public async Task SubmitForm(object Result)
{ {
var resModel = (TransferWizardModel)result; TransferWizardModel resModel = (TransferWizardModel)Result;
//let's check if user exists with this email //let's check if user exists with this email
var user = await UserDataService.GetUserByEmailAsync(resModel.EmailAddress!); var user = await UserDataService.GetUserByEmailAsync(resModel.EmailAddress!);
if (user != null && user.Id != Guid.Empty) if (user != null && user.Id != Guid.Empty)
@ -389,7 +382,6 @@
//something wrong //something wrong
} }
} }
resModel.ReferralId = userDetail.UserDto.RefferalId; resModel.ReferralId = userDetail.UserDto.RefferalId;
} }
@ -402,23 +394,20 @@
} }
} }
} }
var transfer = await WizardProcessor.ProcessWizardAsync<TransferWizardModel>(Result.GetType(), Result);
var transfer = await WizardProcessor.ProcessWizardAsync<TransferWizardModel>(result.GetType(), result); BrowserConsoleLogWriter.Info($"Submitted nested form: {Result.GetType().FullName}");
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
navManager.NavigateTo($"/transfer2/{resModel.Id}"); navManager.NavigateTo($"/transfer2/{resModel.Id}");
} }
protected override Task OnInitializedAsync() protected override Task OnInitializedAsync()
{ {
_logger = new LoggerClient<TransferPage>(LogWriters.ToArray());
ToAirport(); ToAirport();
return base.OnInitializedAsync(); return base.OnInitializedAsync();
} }
private void ShowHelp_Click() private void ShowHelp_Click()
{ {
_displayHelp = !_displayHelp; displayHelp = !displayHelp;
} }
} }

View File

@ -109,10 +109,10 @@
@RenderDetailsItem("fa-solid fa-hashtag", "Comment", Context.Comment) @RenderDetailsItem("fa-solid fa-hashtag", "Comment", Context.Comment)
</div> </div>
<div class="col-12 col-md-6"> <div class="col-12 col-md-6">
@RenderDetailsItem("fa-solid fa-list-check", "Status", TransferStatusModel.GetStatusModel(Context.TransferStatusType).StatusName) @RenderDetailsItem("fa-solid fa-list-check", "Status", AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)Context.TransferStatusType).StatusName)
</div> </div>
<div class="col-9 col-md-5"> <div class="col-9 col-md-5">
<DxComboBox Data="@DriverStatuses" <DxComboBox Data="@Statuses"
@bind-Value="@CurrentStatusType" @bind-Value="@CurrentStatusType"
NullText="Select new status" NullText="Select new status"
CssClass="form-field" CssClass="form-field"
@ -178,18 +178,27 @@
private static readonly IEnumerable<TransferStatusModel> DriverStatuses = TransferStatusModel.AllStatuses.Values.Where(x => x.StatusValue is TransferStatusType.DriverConfirmed or private static readonly IEnumerable<TransferStatusModel> Statuses = new[]
TransferStatusType.DriverEnRoute or TransferStatusType.PassengerPickup or TransferStatusType.Finished or TransferStatusType.UserCanceled); {
new TransferStatusModel(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"),
// private static readonly IEnumerable<TransferStatusModel> Statuses = new[] new TransferStatusModel(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"),
// { new TransferStatusModel(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"),
// new TransferStatusModel(TransferStatusType.DriverConfirmed, "Driver confirmed"), new TransferStatusModel(Convert.ToByte(TransferStatusType.Finished), "Finished"),
// new TransferStatusModel(TransferStatusType.DriverEnRoute, "Driver enroute"), new TransferStatusModel(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"),
// new TransferStatusModel(TransferStatusType.PassengerPickup, "Passenger in car"), };
// new TransferStatusModel(TransferStatusType.Finished, "Finished"),
// new TransferStatusModel(TransferStatusType.UserCanceled, "User cancelled"),
// };
private static readonly List<TransferStatusModel> AllStatuses = new()
{
new TransferStatusModel(Convert.ToByte(TransferStatusType.OrderSubmitted), "Order submitted"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.Finished), "Finished"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled")
};
private TransferStatusModel _currentStatusType; private TransferStatusModel _currentStatusType;
public TransferStatusModel CurrentStatusType public TransferStatusModel CurrentStatusType
@ -232,7 +241,7 @@
var result = await AdminSignalRClient.PostDataAsync<Transfer>(SignalRTags.UpdateTransfer, Context); var result = await AdminSignalRClient.PostDataAsync<Transfer>(SignalRTags.UpdateTransfer, Context);
if (result != null) if (result != null)
{ {
if (TransferStatusModel.GetStatusModel(result.TransferStatusType) == CurrentStatusType) if (AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)result.TransferStatusType) == CurrentStatusType)
{ {
msg = $"Stataus saved"; msg = $"Stataus saved";
StateHasChanged(); StateHasChanged();
@ -269,13 +278,12 @@
{ {
_logger = new LoggerClient<TransferCardComponent>(LogWriters.ToArray()); _logger = new LoggerClient<TransferCardComponent>(LogWriters.ToArray());
sysAdmins = await AdminSignalRClient.GetByIdAsync<List<UserModelDtoDetail>>(SignalRTags.GetAllUserModelDtoDetails, TiamConstClient.SysAdmins[0]); sysAdmins = await AdminSignalRClient.GetByIdAsync<List<UserModelDtoDetail>>(SignalRTags.GetAllUserModelDtoDetails, TiamConstClient.SysAdmins[0]);
await base.OnInitializedAsync(); await base.OnInitializedAsync();
} }
protected override Task OnParametersSetAsync() protected override Task OnParametersSetAsync()
{ {
CurrentStatusType = TransferStatusModel.GetStatusModel(Context.TransferStatusType); CurrentStatusType = AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)Context.TransferStatusType);
return base.OnParametersSetAsync(); return base.OnParametersSetAsync();
} }

View File

@ -227,6 +227,19 @@
"ContextId", "ContextId",
]; ];
private static readonly List<TransferStatusModel> Statuses =
[
new(Convert.ToByte(TransferStatusType.OrderSubmitted), "Order submitted"),
new(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"),
new(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"),
new(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"),
new(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"),
new(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"),
new(Convert.ToByte(TransferStatusType.Finished), "Finished"),
new(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"),
new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled")
];
void Grid_CustomizeElement(GridCustomizeElementEventArgs e) void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
{ {
try try

View File

@ -69,16 +69,15 @@
private LoggerClient<CreateAndManageTransfer> _logger; private LoggerClient<CreateAndManageTransfer> _logger;
private TransferWizardModel _data = new(); private TransferWizardModel _data = new();
private List<Product> _hotels = []; private List<Product> _hotels = [];
private Product selectedHotel { get; set; }
private static Product? _selectedHotel; public Product SelectedHotel
public Product? SelectedHotel
{ {
get => _selectedHotel; get => selectedHotel;
set set
{ {
if (_selectedHotel == value) return; if (selectedHotel == value) return;
_selectedHotel = value; selectedHotel = value;
StateHasChanged(); StateHasChanged();
} }
} }
@ -97,6 +96,7 @@
]; ];
private bool _isReloadVisible = false; private bool _isReloadVisible = false;
private bool _selectedHotelInitialized = false;
protected override void OnInitialized() protected override void OnInitialized()
{ {
@ -109,7 +109,11 @@
if (_sessionService.User.UserModelDto.Products.Any(x => x.ProductType == ProductType.Hotel)) if (_sessionService.User.UserModelDto.Products.Any(x => x.ProductType == ProductType.Hotel))
{ {
_hotels = _sessionService.GetHotels(); _hotels = _sessionService.GetHotels();
SelectedHotel = _hotels.FirstOrDefault(x => x.Id == _selectedHotel?.Id) ?? _hotels[0]; if (!_selectedHotelInitialized)
{
SelectedHotel = _hotels[0];
_selectedHotelInitialized = true;
}
} }
} }
} }
@ -119,16 +123,9 @@
public async Task SubmitForm(object result) public async Task SubmitForm(object result)
{ {
if (_selectedHotel == null)
{
_logger.Error($"_selectedHotel == null");
return;
}
var valami = ((TransferWizardModel)result).CopyToTransfer(); var valami = ((TransferWizardModel)result).CopyToTransfer();
valami.Id = Guid.NewGuid(); valami.Id = Guid.NewGuid();
valami.ProductId = _selectedHotel.Id; valami.ProductId = SelectedHotel.Id;
var user = await UserDataService.GetUserByEmailAsync(valami.ContactEmail); var user = await UserDataService.GetUserByEmailAsync(valami.ContactEmail);
if (user != null && user.Id != Guid.Empty) if (user != null && user.Id != Guid.Empty)
{ {
@ -154,7 +151,7 @@
registration.PhoneNumber = valami.ContactPhone; registration.PhoneNumber = valami.ContactPhone;
registration.Password = password; registration.Password = password;
//get list with one member! //get list with one member!
var productOwner = await _adminSignalRClient.GetByIdAsync<List<Company>>(SignalRTags.GetCompaniesById, _selectedHotel.ServiceProviderId); var productOwner = await _adminSignalRClient.GetByIdAsync<List<Company>>(SignalRTags.GetCompaniesById, SelectedHotel.ServiceProviderId);
registration.ReferralId = productOwner[0].AffiliateId; registration.ReferralId = productOwner[0].AffiliateId;
@ -168,7 +165,6 @@
} }
_logger.Info("New user created added"); _logger.Info("New user created added");
} }
//valami.ProductId = SessionService.User.UserId; //TODO ProductID! //valami.ProductId = SessionService.User.UserId; //TODO ProductID!
// await WizardProcessor.ProcessWizardAsync<TransferDestinationWizardModel>(result.GetType(), result); // await WizardProcessor.ProcessWizardAsync<TransferDestinationWizardModel>(result.GetType(), result);

View File

@ -44,9 +44,9 @@
</div> </div>
<div class="d-flex flex-column mb-4 pb-2"> <div class="d-flex flex-column mb-4 pb-2">
<h4> Hotel name: <span class="small text-muted"> @_hotelName </span></h4> <h4> Hotel name: <span class="small text-muted"> @hotelName </span></h4>
<h4> Address: <span class="small text-muted"> @_hotelAddress </span></h4> <h4> Address: <span class="small text-muted"> @hotelAddress </span></h4>
<h4> Contact name: <span class="small text-muted"> @_hotelContactName</span></h4> <h4> Contact name: <span class="small text-muted"> @hotelContactName</span></h4>
</div> </div>
</div> </div>
<div class="card-footer py-2 px-4"> <div class="card-footer py-2 px-4">
@ -71,7 +71,7 @@
</div> </div>
<div> <div>
<h6 class="mb-0"> <a href="/user/transfers/@ProductId">All transfers</a> </h6> <h6 class="mb-0"> <a href="/user/transfers/@productId">All transfers</a> </h6>
</div> </div>
</div> </div>
</div> </div>
@ -79,7 +79,7 @@
<div class="d-flex flex-row mb-4 pb-2"> <div class="d-flex flex-row mb-4 pb-2">
<TransferGrid Logger="_logger" <TransferGrid Logger="_logger"
SignalRClient="AdminSignalRClient" SignalRClient="adminSignalRClient"
ContextIds="@(Id.IsNullOrEmpty() ? null : [Id])" ContextIds="@(Id.IsNullOrEmpty() ? null : [Id])"
GetAllMessageTag="@SignalRTags.GetTransfersByOrderingProductId" GetAllMessageTag="@SignalRTags.GetTransfersByOrderingProductId"
CustomizeElement="Grid_CustomizeElement" CustomizeElement="Grid_CustomizeElement"
@ -175,7 +175,7 @@
</Animation> </Animation>
</div> </div>
<div class="col-12 col-lg-3" hidden="@_accessDenied"> <div class="col-12 col-lg-3" hidden="@accessDenied">
<Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)"> <Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
<div class="card card-admin" style="border-radius: 16px;"> <div class="card card-admin" style="border-radius: 16px;">
<div class="card-header py-2 px-4"> <div class="card-header py-2 px-4">
@ -192,7 +192,7 @@
<div class="card-body card-admin-body py-2 px-4"> <div class="card-body card-admin-body py-2 px-4">
<div class="d-flex flex-row mb-4 pb-2"> <div class="d-flex flex-row mb-4 pb-2">
<TransferGrid Logger="_logger" <TransferGrid Logger="_logger"
SignalRClient="AdminSignalRClient" SignalRClient="adminSignalRClient"
ContextIds="@(Id.IsNullOrEmpty() ? null : [Id])" ContextIds="@(Id.IsNullOrEmpty() ? null : [Id])"
GetAllMessageTag="@SignalRTags.GetTransfersByOrderingProductId" GetAllMessageTag="@SignalRTags.GetTransfersByOrderingProductId"
ColumnResizeMode="GridColumnResizeMode.NextColumn" ColumnResizeMode="GridColumnResizeMode.NextColumn"
@ -270,7 +270,7 @@
} }
</style> </style>
<DxGrid Data="@_data"> <DxGrid Data="@Data">
<Columns> <Columns>
<DxGridDataColumn FieldName="CompanyName" AllowSort="true" /> <DxGridDataColumn FieldName="CompanyName" AllowSort="true" />
<DxGridDataColumn FieldName="ContactName" /> <DxGridDataColumn FieldName="ContactName" />

View File

@ -5,7 +5,6 @@ using System.ComponentModel.DataAnnotations;
using System.Drawing; using System.Drawing;
using System.Drawing.Imaging; using System.Drawing.Imaging;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using AyCode.Utils.Extensions;
using TIAM.Core.Enums; using TIAM.Core.Enums;
using TIAM.Entities.Products; using TIAM.Entities.Products;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
@ -21,45 +20,52 @@ namespace TIAMSharedUI.Pages.User.Hotels
public partial class HotelComponent : ComponentBase public partial class HotelComponent : ComponentBase
{ {
[Parameter] public Guid Id { get; set; } [Parameter]
public Guid Id { get; set; }
[Parameter] public bool ShowSeriesPointMarkers { get; set; } [Parameter] public bool ShowSeriesPointMarkers { get; set; }
[Parameter] public bool ShowSeriesLabels { get; set; } [Parameter] public bool ShowSeriesLabels { get; set; }
[Inject] ISupplierService SupplierService { get; set; } [Inject]
ISupplierService SupplierService { get; set; }
[Inject] IUserDataService UserDataService { get; set; } [Inject]
IUserDataService UserDataService { get; set; }
[Inject] IServiceProviderDataService ServiceProviderDataService { get; set; } [Inject]
IServiceProviderDataService ServiceProviderDataService { get; set; }
[Inject] AdminSignalRClient AdminSignalRClient { get; set; } [Inject]
AdminSignalRClient adminSignalRClient { get; set; }
[Inject] IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; } [Inject]
IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; }
[Inject] ISessionService SessionService { get; set; } [Inject]
ISessionService SessionService { get; set; }
private LoggerClient<HotelComponent> _logger; private LoggerClient<HotelComponent> _logger;
private object? _orderData; object? OrderData { get; set; }
private object? _affiliateData; object? AffiliateData { get; set; }
private object? _data; object? Data { get; set; }
public string ImageSource { get; set; } = ""; public string ImageSource { get; set; } = "";
public Guid ProductId { get; set; } public Guid productId { get; set; }
private Product? _hotel; private Product? hotel;
private string _hotelName = string.Empty; private string hotelName;
private string _hotelAddress = "No address set"; private string hotelAddress = "No address set";
private string _hotelContactName = "No contact name set yet"; private string hotelContactName = "No contact name set yet";
private bool _isProductAdmin; private bool isProductAdmin;
private bool _accessDenied = true; private bool accessDenied = true;
protected override void OnParametersSet() protected override void OnParametersSet()
{ {
ProductId = Id; productId = Id;
base.OnParametersSet(); base.OnParametersSet();
} }
@ -67,40 +73,68 @@ namespace TIAMSharedUI.Pages.User.Hotels
{ {
_logger = new LoggerClient<HotelComponent>(LogWriters.ToArray()); _logger = new LoggerClient<HotelComponent>(LogWriters.ToArray());
_hotel = await AdminSignalRClient.GetByIdAsync<Product>(SignalRTags.GetProductById, Id); hotel = await adminSignalRClient.GetByIdAsync<Product>(SignalRTags.GetProductById, Id);
if (_hotel != null) if (hotel != null)
{ {
if (!_hotel.Name.IsNullOrWhiteSpace()) _hotelName = _hotel.Name; if (hotel.Name != null)
{
hotelName = hotel.Name;
}
if (hotel.Profile != null)
{
if (hotel.Profile.Address != null)
{
if (string.IsNullOrEmpty(hotel.Profile.Address.AddressText))
{
hotelAddress = hotel.Profile.Address.AddressText;
_hotelAddress = !_hotel.Profile.Address.AddressText.IsNullOrWhiteSpace() ? _hotel.Profile.Address.AddressText : "Address is empty"; }
_hotelContactName = !_hotel.Profile.FullName.IsNullOrWhiteSpace() ? _hotel.Profile.FullName : "No contact name has been set yet"; else
{
hotelAddress = "Address is empty";
}
}
else
{
hotelAddress = "No address found";
}
if (hotel.Profile.FullName != null)
{
hotelContactName = hotel.Profile.FullName;
}
else
{
hotelContactName = "No contact name has been set yet";
}
}
else
{
hotelAddress = "No profile found";
}
} }
//TEMPORARY //TEMPORARY
_isProductAdmin = SessionService.User?.UserModelDto.UserProductMappings.Any(m => m.ProductId == Id && m.Permissions == 1) ?? false; isProductAdmin = SessionService.User.UserModelDto.UserProductMappings.Any(m => m.ProductId == Id && m.Permissions == 1);
_accessDenied = !_isProductAdmin; accessDenied = !isProductAdmin;
_logger.Debug($"{_hotel?.Name}, {_isProductAdmin}"); _logger.Debug($"{hotel.Name}, {isProductAdmin}");
base.OnInitialized(); base.OnInitialized();
_orderData = new object[] OrderData = new object[]
{
new
{ {
new {
Date = DateTime.Now.AddDays(3), Date = DateTime.Now.AddDays(3),
Income = "$5", Income = "$5",
TransactionId = "POX987532582", TransactionId = "POX987532582",
Status = "Finished" Status = "Finished"
}, },
new new {
{
Date = DateTime.Today.AddDays(-2), Date = DateTime.Today.AddDays(-2),
Income = "$5", Income = "$5",
TransactionId = "POX645646382", TransactionId = "POX645646382",
Status = "Finished" Status = "Finished"
}, },
new new {
{
Date = DateTime.Today.AddDays(-6), Date = DateTime.Today.AddDays(-6),
Income = "$8", Income = "$8",
TransactionId = "POX645766311", TransactionId = "POX645766311",
@ -108,26 +142,23 @@ namespace TIAMSharedUI.Pages.User.Hotels
}, },
}; };
_affiliateData = new object[] AffiliateData = new object[]
{
new
{ {
new {
AffiliateId = 1, AffiliateId = 1,
IncomeThisMonth = "$5", IncomeThisMonth = "$5",
IncomeAlltime = "9425", IncomeAlltime = "9425",
CompanyName = "Upgen Ltd.", CompanyName = "Upgen Ltd.",
Status = "Active" Status = "Active"
}, },
new new {
{
AffiliateId = 2, AffiliateId = 2,
IncomeThisMonth = "$538", IncomeThisMonth = "$538",
IncomeAlltime = "13425", IncomeAlltime = "13425",
CompanyName = "Kovacs hotel Ltd.", CompanyName = "Kovacs hotel Ltd.",
Status = "Active" Status = "Active"
}, },
new new {
{
AffiliateId = 3, AffiliateId = 3,
IncomeThisMonth = "$0", IncomeThisMonth = "$0",
IncomeAlltime = "134200", IncomeAlltime = "134200",
@ -136,8 +167,11 @@ namespace TIAMSharedUI.Pages.User.Hotels
}, },
}; };
var suppliers = await SupplierService.GetSuppliersAsync(); var suppliers = await SupplierService.GetSuppliersAsync();
_data = suppliers.Select(s => new Data = suppliers.Select(s =>
{
return new
{ {
s.CompanyName, s.CompanyName,
s.ContactName, s.ContactName,
@ -146,24 +180,23 @@ namespace TIAMSharedUI.Pages.User.Hotels
s.City, s.City,
s.Address, s.Address,
s.Phone s.Phone
};
}); });
var productOwner = await adminSignalRClient.GetByIdAsync<List<Company>>(SignalRTags.GetCompaniesById, hotel.ServiceProviderId);
var productOwner = await AdminSignalRClient.GetByIdAsync<List<Company>>(SignalRTags.GetCompaniesById, _hotel.ServiceProviderId); if(productOwner!=null)
if (productOwner != null)
{ {
ImageSource = await ServiceProviderDataService.GetQRCodeByProductIdAsync(productOwner[0].AffiliateId); ImageSource = await ServiceProviderDataService.GetQRCodeByProductIdAsync(productOwner[0].AffiliateId);
} }
else else
{ {
const int width = 128; int width = 128;
const int height = 128; int height = 128;
var base64String = ""; string base64String = "";
// Create a new bitmap // Create a new bitmap
using (var bitmap = new Bitmap(width, height)) using (Bitmap bitmap = new Bitmap(width, height))
{ {
// Set all pixels to black // Set all pixels to black
using (var gfx = Graphics.FromImage(bitmap)) using (Graphics gfx = Graphics.FromImage(bitmap))
{ {
gfx.Clear(Color.Black); gfx.Clear(Color.Black);
} }
@ -181,13 +214,13 @@ namespace TIAMSharedUI.Pages.User.Hotels
private string BitmapToBase64(Bitmap bitmap) private string BitmapToBase64(Bitmap bitmap)
{ {
using (var memoryStream = new MemoryStream()) using (MemoryStream memoryStream = new MemoryStream())
{ {
// Save bitmap to memory stream // Save bitmap to memory stream
bitmap.Save(memoryStream, ImageFormat.Png); bitmap.Save(memoryStream, ImageFormat.Png);
// Convert memory stream to Base64 string // Convert memory stream to Base64 string
var imageBytes = memoryStream.ToArray(); byte[] imageBytes = memoryStream.ToArray();
return Convert.ToBase64String(imageBytes); return Convert.ToBase64String(imageBytes);
} }
} }
@ -230,5 +263,19 @@ namespace TIAMSharedUI.Pages.User.Hotels
_logger.Error($"Grid_CustomizeElement; {ex.Message}", ex); _logger.Error($"Grid_CustomizeElement; {ex.Message}", ex);
} }
} }
private static readonly List<TransferStatusModel> Statuses =
[
new(Convert.ToByte(TransferStatusType.OrderSubmitted), "Order submitted"),
new(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"),
new(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"),
new(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"),
new(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"),
new(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"),
new(Convert.ToByte(TransferStatusType.Finished), "Finished"),
new(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"),
new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled")
];
} }
} }

View File

@ -134,7 +134,7 @@
<CellDisplayTemplate> <CellDisplayTemplate>
@{ @{
TransferStatusModel keyField = TransferStatusModel.GetStatusModel((TransferStatusType)context.Value); TransferStatusModel keyField = Statuses.FirstOrDefault(x => x.StatusValue == (byte)context.Value)!;
string transferStatusText = keyField.StatusName; string transferStatusText = keyField.StatusName;
<text>@transferStatusText</text> <text>@transferStatusText</text>
} }
@ -200,7 +200,7 @@
<ToolbarTemplate> <ToolbarTemplate>
<div> <div>
<DxTagBox Data="@TransferStatusModel.AllStatuses.Values" Values="@_selectedCategories" @ref="_filterTag" <DxTagBox Data="@Statuses" Values="@_selectedCategories" @ref="_filterTag"
ValuesChanged="(IEnumerable<TransferStatusModel> values) => TagBox_ValuesChanged(values)" ValuesChanged="(IEnumerable<TransferStatusModel> values) => TagBox_ValuesChanged(values)"
ValueFieldName="StatusValue" TextFieldName="StatusName" NullText="Select status type..." ValueFieldName="StatusValue" TextFieldName="StatusName" NullText="Select status type..."
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" aria-label="Select status type" /> ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" aria-label="Select status type" />
@ -258,8 +258,21 @@
"ContextType" "ContextType"
]; ];
private static List<TransferStatusModel> _selectedCategories = TransferStatusModel.AllStatuses.Values.Where(x => x.StatusValue != TransferStatusType.Finished && x.StatusValue != TransferStatusType.UserCanceled && x.StatusValue != TransferStatusType.AdminDenied).ToList(); private static readonly List<TransferStatusModel> Statuses =
private string _filterText = GetFilterText(_selectedCategories.Select(x => x.StatusValue).ToList()); [
new(Convert.ToByte(TransferStatusType.OrderSubmitted), "Order submitted"),
new(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"),
new(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"),
new(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"),
new(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"),
new(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"),
new(Convert.ToByte(TransferStatusType.Finished), "Finished"),
new(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"),
new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled")
];
private static List<TransferStatusModel> _selectedCategories = Statuses.Where(x => /* x.StatusValue != (byte)TransferStatusType.OrderSubmitted && */ x.StatusValue != (byte)TransferStatusType.Finished && x.StatusValue != (byte)TransferStatusType.UserCanceled && x.StatusValue != (byte)TransferStatusType.AdminDenied).ToList();
private string _filterText = GetFilterText(_selectedCategories.Select(x => (TransferStatusType)x.StatusValue).ToList());
private MessageWizardModel _messageWizardModel = new(); private MessageWizardModel _messageWizardModel = new();
@ -490,5 +503,4 @@
//_gridTransfer.ExpandDetailRow(0); //_gridTransfer.ExpandDetailRow(0);
} }
} }
} }

View File

@ -218,6 +218,19 @@
"ContextId", "ContextId",
]; ];
private static readonly List<TransferStatusModel> Statuses =
[
new(Convert.ToByte(TransferStatusType.OrderSubmitted), "Order submitted"),
new(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"),
new(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"),
new(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"),
new(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"),
new(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"),
new(Convert.ToByte(TransferStatusType.Finished), "Finished"),
new(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"),
new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled")
];
void Grid_CustomizeElement(GridCustomizeElementEventArgs e) void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
{ {
try try

View File

@ -1,46 +1,14 @@
using TIAM.Core.Enums; namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI
namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI
{ {
public class TransferStatusModel public class TransferStatusModel
{ {
public TransferStatusType StatusValue { get; set; } public byte StatusValue { get; set; }
public string StatusName { get; set; } public string StatusName { get; set; }
public TransferStatusModel(TransferStatusType statusValue, string statusName) public TransferStatusModel(byte statusValue, string statusName)
{ {
StatusValue = statusValue; StatusValue = statusValue;
StatusName = statusName; StatusName = statusName;
} }
public static TransferStatusModel GetStatusModel(TransferStatusType transferStatusType)
=> AllStatuses[transferStatusType];
//TODO: ez nem igazán a TransferStatusModel-re való... - J.
public static readonly Dictionary<TransferStatusType, TransferStatusModel> AllStatuses = new()
{
[TransferStatusType.OrderSubmitted] = new TransferStatusModel(TransferStatusType.OrderSubmitted, "Order submitted"),
[TransferStatusType.OrderConfirmed] = new TransferStatusModel(TransferStatusType.OrderConfirmed, "Order confirmed"),
[TransferStatusType.AssignedToDriver] = new TransferStatusModel(TransferStatusType.AssignedToDriver, "Assigned to driver"),
[TransferStatusType.DriverConfirmed] = new TransferStatusModel(TransferStatusType.DriverConfirmed, "Driver confirmed"),
[TransferStatusType.DriverEnRoute] = new TransferStatusModel(TransferStatusType.DriverEnRoute, "Driver enroute"),
[TransferStatusType.PassengerPickup] = new TransferStatusModel(TransferStatusType.PassengerPickup, "Passenger in car"),
[TransferStatusType.Finished] = new TransferStatusModel(TransferStatusType.Finished, "Finished"),
[TransferStatusType.UserCanceled] = new TransferStatusModel(TransferStatusType.UserCanceled, "User cancelled"),
[TransferStatusType.AdminDenied] = new TransferStatusModel(TransferStatusType.AdminDenied, "Admin cancelled"),
};
//public static readonly Dictionary<TransferStatusType, TransferStatusModel> AllStatuses =
//[
// new(TransferStatusType.OrderSubmitted, "Order submitted"),
// new(TransferStatusType.OrderConfirmed, "Order confirmed"),
// new(TransferStatusType.AssignedToDriver, "Assigned to driver"),
// new(TransferStatusType.DriverConfirmed, "Driver confirmed"),
// new(TransferStatusType.DriverEnRoute, "Driver enroute"),
// new(TransferStatusType.PassengerPickup, "Passenger in car"),
// new(TransferStatusType.Finished, "Finished"),
// new(TransferStatusType.UserCanceled, "User cancelled"),
// new(TransferStatusType.AdminDenied, "Admin cancelled")
//];
} }
} }