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.WizardModels
@using AyCode.Services.Loggers
@using TIAMSharedUI.Pages.User.Hotels
@using TIAMWebApp.Shared.Application.Models.PageModels
@using TIAMWebApp.Shared.Application.Services
@using TIAMWebApp.Shared.Application.Utility
@inherits BasePageComponent
@inject NavigationManager navManager
@inject IAcLogWriterClientBase BrowserConsoleLogWriter
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject IWizardProcessor WizardProcessor
@inject IUserDataService UserDataService
@inject AdminSignalRClient _adminSignalRClient
<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="row d-flex justify-content-center">
@{
if (displayHelp)
if (_displayHelp)
{
<div class="col-md-6 col-12 px-5">
<!-- Step 1 -->
@ -164,18 +166,18 @@
<DxToolbarItem Alignment="ToolbarItemAlignment.Right" Text="Help" RenderStyle="ButtonRenderStyle.Secondary" IconCssClass="grid-icon-column-chooser" Click="ShowHelp_Click" />
</Items>
</DxToolbar>
<DxTabs>
<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 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>
</DxTabs>
@ -187,8 +189,8 @@
SubtitleResourceString="TransferSubtitle"></InputWizard> *@
</div>
</div>
</div>
@ -234,83 +236,88 @@
@code {
public TransferWizardModel myModel = new TransferWizardModel();
private LoggerClient<TransferPage> _logger;
public List<HeroSliderItem> sliders = new List<HeroSliderItem>
{
new HeroSliderItem
{
Title = "Welcome to TIAM",
ImageUrl = "_content/TIAMSharedUI/images/f1_1.png"
},
new HeroSliderItem
{
Title = "Welcome to TIAM",
ImageUrl = "_content/TIAMSharedUI/images/f1_2.png"
},
new HeroSliderItem
{
Title = "Welcome to TIAM",
ImageUrl = "_content/TIAMSharedUI/images/f1_3.png"
},
};
private readonly TransferWizardModel _myModel = new TransferWizardModel();
public List<string> TransferIgnorList1 = new List<string>
{
"Id",
"Destination",
"UserId",
"ProductId",
"PaymentId",
"TripDate",
"FirstName",
"LastName",
"UserProductMappingId",
"UserProductToCarId",
"ReferralId",
"Price"
};
private readonly List<HeroSliderItem> _sliders =
[
new HeroSliderItem
{
Title = "Welcome to TIAM",
ImageUrl = "_content/TIAMSharedUI/images/f1_1.png"
},
public List<string> TransferIgnorList2 = new List<string>
{
"Id",
"PickupAddress",
"UserId",
"ProductId",
"PaymentId",
"TripDate",
"FirstName",
"LastName",
"UserProductMappingId",
"UserProductToCarId",
"ReferralId",
"Price"
};
new HeroSliderItem
{
Title = "Welcome to TIAM",
ImageUrl = "_content/TIAMSharedUI/images/f1_2.png"
},
new HeroSliderItem
{
Title = "Welcome to TIAM",
ImageUrl = "_content/TIAMSharedUI/images/f1_3.png"
}
];
private readonly List<string> _transferIgnorList1 =
[
"Id",
"Destination",
"UserId",
"ProductId",
"PaymentId",
"TripDate",
"FirstName",
"LastName",
"UserProductMappingId",
"UserProductToCarId",
"ReferralId",
"Price"
];
private readonly List<string> _transferIgnorList2 =
[
"Id",
"PickupAddress",
"UserId",
"ProductId",
"PaymentId",
"TripDate",
"FirstName",
"LastName",
"UserProductMappingId",
"UserProductToCarId",
"ReferralId",
"Price"
];
/*protected override void OnAfterRender(bool isFirst)
{
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()
{
toAirport = true;
myModel.Destination = "Budapest, 1185";
_toAirport = true;
_myModel.Destination = "Budapest, 1185";
}
public void FromAirport()
{
toAirport = false;
myModel.PickupAddress = "Budapest, 1185";
_toAirport = false;
_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
var user = await UserDataService.GetUserByEmailAsync(resModel.EmailAddress!);
if (user != null && user.Id != Guid.Empty)
@ -382,6 +389,7 @@ new HeroSliderItem
//something wrong
}
}
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}");
}
protected override Task OnInitializedAsync()
{
_logger = new LoggerClient<TransferPage>(LogWriters.ToArray());
ToAirport();
return base.OnInitializedAsync();
}
private void ShowHelp_Click()
{
displayHelp = !displayHelp;
_displayHelp = !_displayHelp;
}
}

View File

@ -109,10 +109,10 @@
@RenderDetailsItem("fa-solid fa-hashtag", "Comment", Context.Comment)
</div>
<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 class="col-9 col-md-5">
<DxComboBox Data="@Statuses"
<DxComboBox Data="@DriverStatuses"
@bind-Value="@CurrentStatusType"
NullText="Select new status"
CssClass="form-field"
@ -178,27 +178,18 @@
private static readonly IEnumerable<TransferStatusModel> Statuses = new[]
{
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"),
};
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);
// private static readonly IEnumerable<TransferStatusModel> Statuses = new[]
// {
// new TransferStatusModel(TransferStatusType.DriverConfirmed, "Driver confirmed"),
// 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;
public TransferStatusModel CurrentStatusType
@ -241,7 +232,7 @@
var result = await AdminSignalRClient.PostDataAsync<Transfer>(SignalRTags.UpdateTransfer, Context);
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";
StateHasChanged();
@ -278,12 +269,13 @@
{
_logger = new LoggerClient<TransferCardComponent>(LogWriters.ToArray());
sysAdmins = await AdminSignalRClient.GetByIdAsync<List<UserModelDtoDetail>>(SignalRTags.GetAllUserModelDtoDetails, TiamConstClient.SysAdmins[0]);
await base.OnInitializedAsync();
}
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();
}

View File

@ -227,19 +227,6 @@
"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)
{
try

View File

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

View File

@ -44,9 +44,9 @@
</div>
<div class="d-flex flex-column mb-4 pb-2">
<h4> Hotel name: <span class="small text-muted"> @hotelName </span></h4>
<h4> Address: <span class="small text-muted"> @hotelAddress </span></h4>
<h4> Contact name: <span class="small text-muted"> @hotelContactName</span></h4>
<h4> Hotel name: <span class="small text-muted"> @_hotelName </span></h4>
<h4> Address: <span class="small text-muted"> @_hotelAddress </span></h4>
<h4> Contact name: <span class="small text-muted"> @_hotelContactName</span></h4>
</div>
</div>
<div class="card-footer py-2 px-4">
@ -71,7 +71,7 @@
</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>
@ -79,7 +79,7 @@
<div class="d-flex flex-row mb-4 pb-2">
<TransferGrid Logger="_logger"
SignalRClient="adminSignalRClient"
SignalRClient="AdminSignalRClient"
ContextIds="@(Id.IsNullOrEmpty() ? null : [Id])"
GetAllMessageTag="@SignalRTags.GetTransfersByOrderingProductId"
CustomizeElement="Grid_CustomizeElement"
@ -175,7 +175,7 @@
</Animation>
</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)">
<div class="card card-admin" style="border-radius: 16px;">
<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="d-flex flex-row mb-4 pb-2">
<TransferGrid Logger="_logger"
SignalRClient="adminSignalRClient"
SignalRClient="AdminSignalRClient"
ContextIds="@(Id.IsNullOrEmpty() ? null : [Id])"
GetAllMessageTag="@SignalRTags.GetTransfersByOrderingProductId"
ColumnResizeMode="GridColumnResizeMode.NextColumn"
@ -270,7 +270,7 @@
}
</style>
<DxGrid Data="@Data">
<DxGrid Data="@_data">
<Columns>
<DxGridDataColumn FieldName="CompanyName" AllowSort="true" />
<DxGridDataColumn FieldName="ContactName" />

View File

@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.CompilerServices;
using AyCode.Utils.Extensions;
using TIAM.Core.Enums;
using TIAM.Entities.Products;
using TIAM.Entities.ServiceProviders;
@ -20,52 +21,45 @@ namespace TIAMSharedUI.Pages.User.Hotels
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 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;
object? OrderData { get; set; }
object? AffiliateData { get; set; }
private object? _orderData;
private object? _affiliateData;
object? Data { get; set; }
private object? _data;
public string ImageSource { get; set; } = "";
public Guid productId { get; set; }
public Guid ProductId { get; set; }
private Product? hotel;
private string hotelName;
private string hotelAddress = "No address set";
private string hotelContactName = "No contact name set yet";
private Product? _hotel;
private string _hotelName = string.Empty;
private string _hotelAddress = "No address set";
private string _hotelContactName = "No contact name set yet";
private bool isProductAdmin;
private bool accessDenied = true;
private bool _isProductAdmin;
private bool _accessDenied = true;
protected override void OnParametersSet()
{
productId = Id;
ProductId = Id;
base.OnParametersSet();
}
@ -73,130 +67,103 @@ namespace TIAMSharedUI.Pages.User.Hotels
{
_logger = new LoggerClient<HotelComponent>(LogWriters.ToArray());
hotel = await adminSignalRClient.GetByIdAsync<Product>(SignalRTags.GetProductById, Id);
if (hotel != null)
_hotel = await AdminSignalRClient.GetByIdAsync<Product>(SignalRTags.GetProductById, Id);
if (_hotel != null)
{
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;
if (!_hotel.Name.IsNullOrWhiteSpace()) _hotelName = _hotel.Name;
}
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";
}
_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";
}
//TEMPORARY
isProductAdmin = SessionService.User.UserModelDto.UserProductMappings.Any(m => m.ProductId == Id && m.Permissions == 1);
accessDenied = !isProductAdmin;
_isProductAdmin = SessionService.User?.UserModelDto.UserProductMappings.Any(m => m.ProductId == Id && m.Permissions == 1) ?? false;
_accessDenied = !_isProductAdmin;
_logger.Debug($"{hotel.Name}, {isProductAdmin}");
_logger.Debug($"{_hotel?.Name}, {_isProductAdmin}");
base.OnInitialized();
OrderData = new object[]
_orderData = new object[]
{
new {
Date = DateTime.Now.AddDays(3),
Income = "$5",
TransactionId = "POX987532582",
Status = "Finished"
},
new {
Date = DateTime.Today.AddDays(-2),
Income = "$5",
TransactionId = "POX645646382",
Status = "Finished"
},
new {
Date = DateTime.Today.AddDays(-6),
Income = "$8",
TransactionId = "POX645766311",
Status = "Finished"
},
new
{
Date = DateTime.Now.AddDays(3),
Income = "$5",
TransactionId = "POX987532582",
Status = "Finished"
},
new
{
Date = DateTime.Today.AddDays(-2),
Income = "$5",
TransactionId = "POX645646382",
Status = "Finished"
},
new
{
Date = DateTime.Today.AddDays(-6),
Income = "$8",
TransactionId = "POX645766311",
Status = "Finished"
},
};
AffiliateData = new object[]
_affiliateData = new object[]
{
new {
AffiliateId = 1,
IncomeThisMonth = "$5",
IncomeAlltime = "9425",
CompanyName = "Upgen Ltd.",
Status = "Active"
},
new {
AffiliateId = 2,
IncomeThisMonth = "$538",
IncomeAlltime = "13425",
CompanyName = "Kovacs hotel Ltd.",
Status = "Active"
},
new {
AffiliateId = 3,
IncomeThisMonth = "$0",
IncomeAlltime = "134200",
CompanyName = "Innosaurus Ltd.",
Status = "Passive"
},
new
{
AffiliateId = 1,
IncomeThisMonth = "$5",
IncomeAlltime = "9425",
CompanyName = "Upgen Ltd.",
Status = "Active"
},
new
{
AffiliateId = 2,
IncomeThisMonth = "$538",
IncomeAlltime = "13425",
CompanyName = "Kovacs hotel Ltd.",
Status = "Active"
},
new
{
AffiliateId = 3,
IncomeThisMonth = "$0",
IncomeAlltime = "134200",
CompanyName = "Innosaurus Ltd.",
Status = "Passive"
},
};
var suppliers = await SupplierService.GetSuppliersAsync();
Data = suppliers.Select(s =>
_data = suppliers.Select(s => new
{
return new
{
s.CompanyName,
s.ContactName,
s.ContactTitle,
s.Country,
s.City,
s.Address,
s.Phone
};
s.CompanyName,
s.ContactName,
s.ContactTitle,
s.Country,
s.City,
s.Address,
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);
}
else
{
int width = 128;
int height = 128;
string base64String = "";
const int width = 128;
const int height = 128;
var base64String = "";
// Create a new bitmap
using (Bitmap bitmap = new Bitmap(width, height))
using (var bitmap = new Bitmap(width, height))
{
// Set all pixels to black
using (Graphics gfx = Graphics.FromImage(bitmap))
using (var gfx = Graphics.FromImage(bitmap))
{
gfx.Clear(Color.Black);
}
@ -209,18 +176,18 @@ namespace TIAMSharedUI.Pages.User.Hotels
ImageSource = base64String;
}
//SKBitmap bitmap = await ServiceProviderDataService.GetQRCodeByProductIdAsync(Guid.NewGuid());
}
private string BitmapToBase64(Bitmap bitmap)
{
using (MemoryStream memoryStream = new MemoryStream())
using (var memoryStream = new MemoryStream())
{
// Save bitmap to memory stream
bitmap.Save(memoryStream, ImageFormat.Png);
// Convert memory stream to Base64 string
byte[] imageBytes = memoryStream.ToArray();
var imageBytes = memoryStream.ToArray();
return Convert.ToBase64String(imageBytes);
}
}
@ -263,19 +230,5 @@ namespace TIAMSharedUI.Pages.User.Hotels
_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>
@{
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;
<text>@transferStatusText</text>
}
@ -200,7 +200,7 @@
<ToolbarTemplate>
<div>
<DxTagBox Data="@Statuses" Values="@_selectedCategories" @ref="_filterTag"
<DxTagBox Data="@TransferStatusModel.AllStatuses" Values="@_selectedCategories" @ref="_filterTag"
ValuesChanged="(IEnumerable<TransferStatusModel> values) => TagBox_ValuesChanged(values)"
ValueFieldName="StatusValue" TextFieldName="StatusName" NullText="Select status type..."
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" aria-label="Select status type" />
@ -249,30 +249,17 @@
public List<string> IgnoreList =
[
"ReceiverEmailAddress",
"ReceiverFullName",
"ReceiverId",
"SenderEmailAddress",
"SenderFullName",
"SenderId",
"ContextId",
"ContextType"
"ReceiverFullName",
"ReceiverId",
"SenderEmailAddress",
"SenderFullName",
"SenderId",
"ContextId",
"ContextType"
];
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")
];
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 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());
private MessageWizardModel _messageWizardModel = new();
@ -319,7 +306,7 @@
public async Task SubmitForm(object result)
{
var messageModel = (result as MessageWizardModel)!;
var messageModel = (result as MessageWizardModel)!;
_logger.Info(messageModel.Content);
var email = await wizardProcessor.ProcessWizardAsync<MessageWizardModel>(result.GetType(), messageModel);
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
@ -466,23 +453,23 @@
}
_dataStorage = new DxSchedulerDataStorage
{
AppointmentMappings = new DxSchedulerAppointmentMappings()
{
AppointmentMappings = new DxSchedulerAppointmentMappings()
{
Type = "AppointmentType",
Start = "StartDate",
End = "EndDate",
Subject = "Caption",
AllDay = "AllDay",
Location = "Location",
Description = "Description",
LabelId = "Label",
StatusId = "Status",
RecurrenceInfo = "Recurrence"
},
Type = "AppointmentType",
Start = "StartDate",
End = "EndDate",
Subject = "Caption",
AllDay = "AllDay",
Location = "Location",
Description = "Description",
LabelId = "Label",
StatusId = "Status",
RecurrenceInfo = "Recurrence"
},
AppointmentsSource = AppointmentModels
};
AppointmentsSource = AppointmentModels
};
}
public AppointmentModel CreateAppointmentModel(Transfer transfer)
@ -503,4 +490,5 @@
//_gridTransfer.ExpandDetailRow(0);
}
}
}

View File

@ -218,19 +218,6 @@
"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)
{
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 byte StatusValue { get; set; }
public TransferStatusType StatusValue { get; set; }
public string StatusName { get; set; }
public TransferStatusModel(byte statusValue, string statusName)
public TransferStatusModel(TransferStatusType statusValue, string statusName)
{
StatusValue = statusValue;
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")
];
}
}