improvements, fixes

This commit is contained in:
Loretta 2024-08-31 09:27:15 +02:00
parent 05b76fe8a4
commit 17529c008f
9 changed files with 263 additions and 326 deletions

View File

@ -11,22 +11,24 @@
@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 IAcLogWriterClientBase BrowserConsoleLogWriter @inject IEnumerable<IAcLogWriterClientBase> LogWriters
@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 -->
@ -170,12 +172,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>
@ -234,29 +236,33 @@
@code { @code {
public TransferWizardModel myModel = new TransferWizardModel(); private LoggerClient<TransferPage> _logger;
public List<HeroSliderItem> sliders = new List<HeroSliderItem> private readonly TransferWizardModel _myModel = new TransferWizardModel();
{
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"
}, }
}; ];
public List<string> TransferIgnorList1 = new List<string> private readonly List<string> _transferIgnorList1 =
{ [
"Id", "Id",
"Destination", "Destination",
"UserId", "UserId",
@ -269,10 +275,10 @@ new HeroSliderItem
"UserProductToCarId", "UserProductToCarId",
"ReferralId", "ReferralId",
"Price" "Price"
}; ];
public List<string> TransferIgnorList2 = new List<string> private readonly List<string> _transferIgnorList2 =
{ [
"Id", "Id",
"PickupAddress", "PickupAddress",
"UserId", "UserId",
@ -285,32 +291,33 @@ new HeroSliderItem
"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)
{ {
TransferWizardModel resModel = (TransferWizardModel)Result; var 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)
@ -382,6 +389,7 @@ new HeroSliderItem
//something wrong //something wrong
} }
} }
resModel.ReferralId = userDetail.UserDto.RefferalId; resModel.ReferralId = userDetail.UserDto.RefferalId;
} }
@ -394,20 +402,23 @@ new HeroSliderItem
} }
} }
} }
var transfer = await WizardProcessor.ProcessWizardAsync<TransferWizardModel>(Result.GetType(), Result);
BrowserConsoleLogWriter.Info($"Submitted nested form: {Result.GetType().FullName}"); var transfer = await WizardProcessor.ProcessWizardAsync<TransferWizardModel>(result.GetType(), result);
_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", AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)Context.TransferStatusType).StatusName) @RenderDetailsItem("fa-solid fa-list-check", "Status", TransferStatusModel.AllStatuses.FirstOrDefault(x => x.StatusValue == Context.TransferStatusType)!.StatusName)
</div> </div>
<div class="col-9 col-md-5"> <div class="col-9 col-md-5">
<DxComboBox Data="@Statuses" <DxComboBox Data="@DriverStatuses"
@bind-Value="@CurrentStatusType" @bind-Value="@CurrentStatusType"
NullText="Select new status" NullText="Select new status"
CssClass="form-field" CssClass="form-field"
@ -178,27 +178,18 @@
private static readonly IEnumerable<TransferStatusModel> Statuses = new[] private static readonly IEnumerable<TransferStatusModel> DriverStatuses = TransferStatusModel.AllStatuses.Where(x => x.StatusValue is TransferStatusType.DriverConfirmed or
{ TransferStatusType.DriverEnRoute or TransferStatusType.PassengerPickup or TransferStatusType.Finished or TransferStatusType.UserCanceled);
new TransferStatusModel(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"), // private static readonly IEnumerable<TransferStatusModel> Statuses = new[]
new TransferStatusModel(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"), // {
new TransferStatusModel(Convert.ToByte(TransferStatusType.Finished), "Finished"), // new TransferStatusModel(TransferStatusType.DriverConfirmed, "Driver confirmed"),
new TransferStatusModel(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"), // new TransferStatusModel(TransferStatusType.DriverEnRoute, "Driver enroute"),
}; // 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
@ -241,7 +232,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 (AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)result.TransferStatusType) == CurrentStatusType) if (TransferStatusModel.AllStatuses.FirstOrDefault(x => x.StatusValue == result.TransferStatusType) == CurrentStatusType)
{ {
msg = $"Stataus saved"; msg = $"Stataus saved";
StateHasChanged(); StateHasChanged();
@ -278,12 +269,13 @@
{ {
_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 = AllStatuses.FirstOrDefault(x => x.StatusValue == (byte)Context.TransferStatusType); CurrentStatusType = TransferStatusModel.AllStatuses.FirstOrDefault(x => x.StatusValue == Context.TransferStatusType)!;
return base.OnParametersSetAsync(); return base.OnParametersSetAsync();
} }

View File

@ -227,19 +227,6 @@
"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,15 +69,16 @@
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; }
public Product SelectedHotel private static 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();
} }
} }
@ -96,7 +97,6 @@
]; ];
private bool _isReloadVisible = false; private bool _isReloadVisible = false;
private bool _selectedHotelInitialized = false;
protected override void OnInitialized() protected override void OnInitialized()
{ {
@ -109,11 +109,7 @@
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();
if (!_selectedHotelInitialized) SelectedHotel = _hotels.FirstOrDefault(x => x.Id == _selectedHotel?.Id) ?? _hotels[0];
{
SelectedHotel = _hotels[0];
_selectedHotelInitialized = true;
}
} }
} }
} }
@ -123,9 +119,16 @@
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)
{ {
@ -151,7 +154,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;
@ -165,6 +168,7 @@
} }
_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,6 +5,7 @@ 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;
@ -20,52 +21,45 @@ namespace TIAMSharedUI.Pages.User.Hotels
public partial class HotelComponent : ComponentBase public partial class HotelComponent : ComponentBase
{ {
[Parameter] [Parameter] public Guid Id { get; set; }
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] [Inject] ISupplierService SupplierService { get; set; }
ISupplierService SupplierService { get; set; }
[Inject] [Inject] IUserDataService UserDataService { get; set; }
IUserDataService UserDataService { get; set; }
[Inject] [Inject] IServiceProviderDataService ServiceProviderDataService { get; set; }
IServiceProviderDataService ServiceProviderDataService { get; set; }
[Inject] [Inject] AdminSignalRClient AdminSignalRClient { get; set; }
AdminSignalRClient adminSignalRClient { get; set; }
[Inject] [Inject] IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; }
IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; }
[Inject] [Inject] ISessionService SessionService { get; set; }
ISessionService SessionService { get; set; }
private LoggerClient<HotelComponent> _logger; private LoggerClient<HotelComponent> _logger;
object? OrderData { get; set; } private object? _orderData;
object? AffiliateData { get; set; } private object? _affiliateData;
object? Data { get; set; } private object? _data;
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; private string _hotelName = string.Empty;
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();
} }
@ -73,68 +67,40 @@ 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 != null) if (!_hotel.Name.IsNullOrWhiteSpace()) _hotelName = _hotel.Name;
{
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";
else _hotelContactName = !_hotel.Profile.FullName.IsNullOrWhiteSpace() ? _hotel.Profile.FullName : "No contact name has been set yet";
{
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); _isProductAdmin = SessionService.User?.UserModelDto.UserProductMappings.Any(m => m.ProductId == Id && m.Permissions == 1) ?? false;
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",
@ -142,23 +108,26 @@ 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",
@ -167,11 +136,8 @@ namespace TIAMSharedUI.Pages.User.Hotels
}, },
}; };
var suppliers = await SupplierService.GetSuppliersAsync(); var suppliers = await SupplierService.GetSuppliersAsync();
Data = suppliers.Select(s => _data = suppliers.Select(s => new
{
return new
{ {
s.CompanyName, s.CompanyName,
s.ContactName, s.ContactName,
@ -180,23 +146,24 @@ 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);
if(productOwner!=null) var productOwner = await AdminSignalRClient.GetByIdAsync<List<Company>>(SignalRTags.GetCompaniesById, _hotel.ServiceProviderId);
if (productOwner != null)
{ {
ImageSource = await ServiceProviderDataService.GetQRCodeByProductIdAsync(productOwner[0].AffiliateId); ImageSource = await ServiceProviderDataService.GetQRCodeByProductIdAsync(productOwner[0].AffiliateId);
} }
else else
{ {
int width = 128; const int width = 128;
int height = 128; const int height = 128;
string base64String = ""; var base64String = "";
// Create a new bitmap // Create a new bitmap
using (Bitmap bitmap = new Bitmap(width, height)) using (var bitmap = new Bitmap(width, height))
{ {
// Set all pixels to black // Set all pixels to black
using (Graphics gfx = Graphics.FromImage(bitmap)) using (var gfx = Graphics.FromImage(bitmap))
{ {
gfx.Clear(Color.Black); gfx.Clear(Color.Black);
} }
@ -214,13 +181,13 @@ namespace TIAMSharedUI.Pages.User.Hotels
private string BitmapToBase64(Bitmap bitmap) private string BitmapToBase64(Bitmap bitmap)
{ {
using (MemoryStream memoryStream = new MemoryStream()) using (var 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
byte[] imageBytes = memoryStream.ToArray(); var imageBytes = memoryStream.ToArray();
return Convert.ToBase64String(imageBytes); return Convert.ToBase64String(imageBytes);
} }
} }
@ -263,19 +230,5 @@ 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 = Statuses.FirstOrDefault(x => x.StatusValue == (byte)context.Value)!; TransferStatusModel keyField = TransferStatusModel.AllStatuses.FirstOrDefault(x => x.StatusValue == (TransferStatusType)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="@Statuses" Values="@_selectedCategories" @ref="_filterTag" <DxTagBox Data="@TransferStatusModel.AllStatuses" 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,21 +258,8 @@
"ContextType" "ContextType"
]; ];
private static readonly List<TransferStatusModel> Statuses = private static List<TransferStatusModel> _selectedCategories = TransferStatusModel.AllStatuses.Where(x => x.StatusValue != TransferStatusType.Finished && x.StatusValue != TransferStatusType.UserCanceled && x.StatusValue != TransferStatusType.AdminDenied).ToList();
[ 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();
@ -503,4 +490,5 @@
//_gridTransfer.ExpandDetailRow(0); //_gridTransfer.ExpandDetailRow(0);
} }
} }
} }

View File

@ -218,19 +218,6 @@
"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,14 +1,29 @@
namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI using TIAM.Core.Enums;
namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI
{ {
public class TransferStatusModel public class TransferStatusModel
{ {
public byte StatusValue { get; set; } public TransferStatusType StatusValue { get; set; }
public string StatusName { get; set; } public string StatusName { get; set; }
public TransferStatusModel(byte statusValue, string statusName) public TransferStatusModel(TransferStatusType statusValue, string statusName)
{ {
StatusValue = statusValue; StatusValue = statusValue;
StatusName = statusName; StatusName = statusName;
} }
public static readonly List<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")
];
} }
} }