This commit is contained in:
Loretta 2024-08-20 15:35:18 +02:00
commit c02f2dfe51
6 changed files with 136 additions and 78 deletions

View File

@ -35,6 +35,11 @@
<link href="TIAMMobileApp.styles.css" rel="stylesheet" />
<link href="_content/TIAMSharedUI/css/animate.css" rel="stylesheet" />
<link href="_content/TIAMSharedUI/css/TourIAm.css" rel="stylesheet" />
<script>
function isDevice() {
return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i.test(navigator.userAgent);
}
</script>
</head>
<body>

View File

@ -22,7 +22,7 @@
<DataAnnotationsValidator />
<div class="card">
<div class="card-header text-center py-3">
<h4>Edit Your Details</h4>
<h4>@TitleString</h4>
</div>
<div class="card-body">
@CreateEditFormFields()
@ -54,6 +54,8 @@ else
[Parameter] public bool userAvailable { get; set; }
[Parameter] public UserModelDtoDetail userModelDtodetail { get; set; }
[Parameter] public Product? CurrentProduct { get; set; } = null;
[Parameter] public string TitleString { get; set; } = "Edit your details";
[Parameter] public string ButtonTextString { get; set; } = "Submit";
string _formSubmitResult = "";
private string _spinnerClass = "";
@ -365,7 +367,7 @@ else
{
editor.OpenComponent<DxButton>(i++);
editor.AddAttribute(i++, "SubmitFormOnClick", true);
editor.AddAttribute(i++, "Text", "Save");
editor.AddAttribute(i++, "Text", ButtonTextString);
editor.CloseComponent();
})));

View File

@ -1,7 +1,13 @@
@page "/mytransfers/{transferId:guid}"
@using AyCode.Core.Enums
@using AyCode.Core.Extensions
@using TIAM.Core.Consts
@using TIAM.Entities.Drivers
@using TIAM.Entities.Transfers
@using TIAM.Models.Dtos.Users
@using TIAM.Resources
@using TIAM.Services
@using TIAMSharedUI.Pages.Components.EditComponents
@using TIAMSharedUI.Shared.Components.BaseComponents
@using TIAMWebApp.Shared.Application.Interfaces
@using AyCode.Services.Loggers
@ -36,22 +42,47 @@
CloseOnOutsideClick="false"
ShowCloseButton="false"
HeaderText="MessageBox"
Closing="EulaPopupClosing"
Closed="EulaPopupClosed">
Closing="EmailPopupClosing"
Closed="EmailPopupClosed"
SizeMode="SizeMode.Large">
<BodyContentTemplate>
<InputWizard Data=@_messageWizardModel
OnSubmit="SubmitForm"
IgnoreReflection=@IgnoreList
TitleResourceString="NewMessage"
SubtitleResourceString="NewMessageSubtitle"
SubmitButtonText="@localizer.GetString("ButtonSend")"></InputWizard>
@{
if(showResultMessage)
{
<h5>@resultMessage</h5>
}
else
{
<DynamicEditForm Data=@_messageWizardModel
OnSubmit="SubmitForm"
TitleString="New message"
ButtonTextString="Send message"
isEditing="true"
IgnoreReflection=@IgnoreList></DynamicEditForm>
}
}
</BodyContentTemplate>
<FooterContentTemplate Context="Context">
<div class="popup-demo-events-footer">
<!--DxCheckBox CssClass="popup-demo-events-checkbox" @bind-Checked="@EulaAccepted">I accept the terms of the EULA</!--DxCheckBox-->
<!--DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="Context.CloseCallback" /-->
<DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Secondary" Text="Cancel" Click="CancelCreateClick" />
</div>
@{
if(showResultMessage)
{
<div class="popup-demo-events-footer">
<!--DxCheckBox CssClass="popup-demo-events-checkbox" @bind-Checked="@EulaAccepted">I accept the terms of the EULA</!--DxCheckBox-->
<!--DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="Context.CloseCallback" /-->
<DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Secondary" Text="Ok" Click="CancelCreateClick" />
</div>
}
else
{
<div class="popup-demo-events-footer">
<!--DxCheckBox CssClass="popup-demo-events-checkbox" @bind-Checked="@EulaAccepted">I accept the terms of the EULA</!--DxCheckBox-->
<!--DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="Context.CloseCallback" /-->
<DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Secondary" Text="Cancel" Click="CancelCreateClick" />
</div>
}
}
</FooterContentTemplate>
</DxPopup>
@ -85,7 +116,7 @@ else
<div class="card-header py-3 px-4">
<div class="d-flex justify-content-between align-items-center">
<div>
<span class="fw-bold text-body">Transfer identifier: @_transfer.Id</span>
<span class="fw-bold text-body">Transfer identifier: #@_transfer.OrderId</span>
<p class="text-muted mb-0">@_transfer.ContactPhone</p>
</div>
</div>
@ -94,19 +125,35 @@ else
<div class="mb-4 pb-2">
<div class="mb-3">
<h4 class="fw-bold">Passenger: @_transfer.FullName</h4>
<h4 class="fw-bold">E-mail address: @_transfer.ContactEmail</h4>
<h5 class="text-muted">From: @_transfer.FromAddress</h5>
<h5 class="text-muted">To: @_transfer.ToAddress</h5>
<h5 class="fw-bold">E-mail address: @_transfer.ContactEmail</h5>
<p class="text-muted">From: @_transfer.FromAddress</p>
<p class="text-muted">To: @_transfer.ToAddress</p>
<hr />
<h5>@_transfer.Appointment.ToString("MMMM dd, yyyy")</h5>
<h5 class="mb-3 text-muted">@_transfer.Appointment.ToString("hh:mm tt")</h5>
<p>Passengers: @_transfer.PassengerCount</p>
<p>Luggage: @_transfer.LuggageCount</p>
<p>Flight number (optional): @_transfer.FlightNumber</p>
<hr />
<h3>License plate: POX-382</h3>
<p class="text-muted">Car looks: Silver, Toyota, Prius</p>
@{
if(_drivers.Count < 1)
{
<p>No car information available yet</p>
}
else
{
foreach (var _car in _cars)
{
<h4>License plate: @_car.LicencePlate</h4>
<p class="text-muted">Car looks: @_car.Color, @_car.Manufacture, @_car.CarModel</p>
}
}
}
<hr />
<p class="text-muted">Status on: <span class="text-body">@DateTime.Now.ToString("hh:mm tt"), @DateTime.Today.ToString("MMMM dd, yyyy")</span></p>
<h5 class="text-muted">@Enum.GetName(typeof(TransferStatusType), _transfer.TransferStatusType)</h5>
</div>
</div>
<div class="d-flex justify-content-between align-items-center">
@ -197,30 +244,12 @@ else
<DxFormLayoutItem ColSpanLg="12" CssClass="form-field" Caption="Flight Number">
<DxTextBox @bind-Text="_transfer.FlightNumber" />
</DxFormLayoutItem>
<hr />
<h4>License plate: POX-382</h4>
<p class="text-muted">Car looks: Silver, Toyota, Prius</p>
<hr />
<p class="text-muted">Status on: <span class="text-body">@DateTime.Now.TimeOfDay, @DateTime.Today.Date</span></p>
</DxFormLayoutItem>
</div>
</div>
<!--ul id="progressbar-1" class="mx-0 mt-0 mb-5 px-0 pt-0 pb-4">
<li class="step0 active" id="step1">
<span style="margin-left: 22px; margin-top: 12px;">PLACED</span>
</li>
<li class="step0 active text-center" id="step2"><span>WAITING FOR PICK UP</span></li>
<li class="step0 text-muted text-end" id="step3">
<span style="margin-right: 22px;">ARRIVED</span>
</li>
</ul-->
<div class="d-flex flex-row mb-4 pb-2">
<h4> EUR @_transfer.Price <span class="small text-muted"> via (COD) </span></h4>
</div>
<div class="d-flex flex-row mb-4 pb-2">
<DxFormLayoutItem ColSpanLg="12" CssClass="form-field" Caption="Comment">
<DxMemo @bind-Text="_transfer.Comment" />
@ -255,9 +284,15 @@ else
[Parameter] public Guid transferId { get; set; } = Guid.Empty;
private Transfer _transfer = new Transfer();
private List<TransferToDriver> _drivers = new List<TransferToDriver>();
private List<Car> _cars = new List<Car>();
private bool _isLoading = true;
private string _errorMessage = string.Empty;
private bool showResultMessage = false;
private string resultMessage = string.Empty;
private List<UserModelDtoDetail> sysAdmins = [];
private LoggerClient<EditTransfers> _logger = null!;
private MessageWizardModel _messageWizardModel = new();
@ -274,6 +309,7 @@ else
"SenderFullName",
"SenderId",
"ContextId",
"ContextType"
];
private bool _editMode = false;
@ -281,29 +317,36 @@ else
void SendMail(Transfer item)
{
_logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}");
_logger.Info($"Preparing mail to {item.ContactEmail}, {item.Id}");
_messageWizardModel.Subject = $"[#{item.OrderId}] New message from guest";
_messageWizardModel.ReceiverId = TiamConstClient.SysAccounts["SystemEmailSender"];
//get first sysadmin
_messageWizardModel.ReceiverEmailAddress = sysAdmins[0].UserDto.EmailAddress;
_messageWizardModel.ReceiverFullName = "Admin user";
_messageWizardModel.SenderId = item.UserId;
_messageWizardModel.SenderEmailAddress = TiamConstClient.SystemEmailAddress;
_messageWizardModel.ReceiverId = item.UserId;
_messageWizardModel.ContextId = item.Id;
_messageWizardModel.SenderEmailAddress = "info@touriam.com";
_messageWizardModel.ReceiverEmailAddress = item.ContactEmail;
_messageWizardModel.ReceiverFullName = item.FullName;
_messageWizardModel.ContextType = MessageContextType.Transfer;
_popupVisible = true;
}
void CancelCreateClick()
{
showResultMessage = false;
resultMessage = "";
_popupVisible = false;
}
void EulaPopupClosed()
void EmailPopupClosed()
{
//cancel clicked
}
void EulaPopupClosing(PopupClosingEventArgs args)
void EmailPopupClosing(PopupClosingEventArgs args)
{
//myModel = new TransferWizardModel();
_messageWizardModel = new MessageWizardModel();
@ -311,28 +354,20 @@ else
public async Task SubmitForm(object result)
{
var messageModel = result as MessageWizardModel;
messageModel.ContextId = _messageWizardModel.ContextId;
//messageModel.SenderId = sessionService.User.UserId;
string FormatEmailContent()
{
return $@"
<html>
<body>
<p>Dear {messageModel.SenderFullName},</p>
<p>{messageModel.Content}:</p>
<p>Best regards,<br/>Tour I Am team</p>
</body>
</html>";
}
messageModel.Content = FormatEmailContent();
var messageModel = (result as MessageWizardModel)!;
_logger.Info(messageModel.Content);
var email = await wizardProcessor.ProcessWizardAsync<MessageWizardModel>(result.GetType(), messageModel);
if(email != null)
{
resultMessage = "Message sent";
}
else
{
resultMessage = $"Something went wrong, please try again later, or contact us by regular email at {TiamConstClient.SystemEmailAddress}!";
}
showResultMessage = true;
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
}
private async Task Pay()
@ -374,6 +409,7 @@ else
_logger.Info($"parameter: {transferId.ToString()}");
await LoadTransfer();
sysAdmins = await _adminSignalRClient.GetByIdAsync<List<UserModelDtoDetail>>(SignalRTags.GetAllUserModelDtoDetails, TiamConstClient.SysAdmins[0]);
var test = _transfer.UserId;
if (!_transfer.UserId.IsNullOrEmpty())
{
@ -389,7 +425,7 @@ else
{
//I am logged in, and this is my transfer
await UserDataService.SetEmailConfirmed(_transfer.UserId);
}
else
{
@ -402,7 +438,7 @@ else
}
}
}
}
}
@ -427,6 +463,15 @@ else
if (response != null)
{
_transfer = response;
_drivers = await _adminSignalRClient.GetByIdAsync<List<TransferToDriver>>(SignalRTags.GetTransferDriversByTransferId, _transfer.Id);
if(_drivers.Count > 0)
{
foreach (var _transferToDriver in _drivers)
{
_cars.Add(_transferToDriver.Car);
}
_logger.DebugConditional($"{_drivers.FirstOrDefault().Id}");
}
}
else

View File

@ -37,7 +37,14 @@ namespace TIAMWebApp.Client.Services
case nameof(MessageWizardModel):
EmailMessage emailMessage = ((MessageWizardModel)data).CopyToEmailMessage();
var messageResult = await MessageSenderService.SendNoticeAsync(emailMessage, 1);
return messageResult as TModelType;
if (messageResult == "OK")
{
return data as TModelType;
}
else
{
return null;
}
//case nameof(ServiceProvider):
// return null;

View File

@ -36,7 +36,11 @@
<link href="_content/TIAMSharedUI/css/TourIAm.css" rel="stylesheet" />
<link rel="icon" type="image/png" href="_content/TIAMSharedUI/favicon.png" />
<link href="TIAMWebApp.Client.styles.css" rel="stylesheet" />
<script>
function isDevice() {
return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i.test(navigator.userAgent);
}
</script>
</head>
<body>
@ -53,11 +57,7 @@
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>
<script>
function isDevice() {
return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i.test(navigator.userAgent);
}
</script>
<script src="https://kit.fontawesome.com/12c469cb8f.js" crossorigin="anonymous"></script>
<script src="_content/TIAMSharedUI/blazorAnimationInterop.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>

View File

@ -51,7 +51,6 @@ namespace TIAMWebApp.Shared.Application.Services
var result = (string)(await response.Content.ReadAsStringAsync());
return result;
}
else