Compare commits
No commits in common. "5921bd0f6c25284b4555c7ba04cb527e48422e6e" and "a26eb45d9f3c4091a885511883aa2ac249dbfae9" have entirely different histories.
5921bd0f6c
...
a26eb45d9f
|
|
@ -236,8 +236,11 @@ else
|
||||||
editor.CloseComponent();
|
editor.CloseComponent();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
else if (property.PropertyType == typeof(string) && string.Compare(attrList.CustomDataType, "TransferDestination", true) == 0)
|
else if (property.PropertyType == typeof(string) && string.Compare(attrList.CustomDataType, "TransferDestination", true) == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
editor.OpenComponent<ComboboxItemSelector>(j);
|
editor.OpenComponent<ComboboxItemSelector>(j);
|
||||||
editor.AddAttribute(j++, "TextValue", property.GetValue(Data));
|
editor.AddAttribute(j++, "TextValue", property.GetValue(Data));
|
||||||
editor.AddAttribute(j++, "CssClass", "form-field");
|
editor.AddAttribute(j++, "CssClass", "form-field");
|
||||||
|
|
@ -256,6 +259,7 @@ else
|
||||||
|
|
||||||
else if (property.PropertyType == typeof(string) && string.Compare(attrList.CustomDataType, "FullName", true) == 0)
|
else if (property.PropertyType == typeof(string) && string.Compare(attrList.CustomDataType, "FullName", true) == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
editor.OpenComponent<FullNameEditor>(j);
|
editor.OpenComponent<FullNameEditor>(j);
|
||||||
editor.AddAttribute(j++, "NullText", "Please tell us your name.");
|
editor.AddAttribute(j++, "NullText", "Please tell us your name.");
|
||||||
editor.AddAttribute(j++, "FirstNameChanged", EventCallback.Factory.Create<string>(this, result =>
|
editor.AddAttribute(j++, "FirstNameChanged", EventCallback.Factory.Create<string>(this, result =>
|
||||||
|
|
|
||||||
|
|
@ -1,41 +1,28 @@
|
||||||
@page "/user/createAndManageTransfer"
|
@page "/user/createAndManageTransfer"
|
||||||
@using TIAM.Entities.Products
|
|
||||||
@using TIAM.Entities.Transfers
|
|
||||||
@using TIAM.Services
|
|
||||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||||
@using TIAMSharedUI.Shared
|
@using TIAMSharedUI.Shared
|
||||||
@using AyCode.Services.Loggers
|
@using AyCode.Services.Loggers
|
||||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
||||||
@using TIAMWebApp.Shared.Application.Services
|
|
||||||
@using TIAMWebApp.Shared.Application.Utility
|
@using TIAMWebApp.Shared.Application.Utility
|
||||||
@layout AdminLayout
|
@layout AdminLayout
|
||||||
@inject IPopulationStructureDataProvider DataProvider
|
@inject IPopulationStructureDataProvider DataProvider
|
||||||
@inject ISessionService SessionService
|
@inject ISessionService SessionService
|
||||||
@inject IUserDataService UserDataService
|
@inject IUserDataService UserDataService
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject AdminSignalRClient _adminSignalRClient
|
|
||||||
|
|
||||||
<PageTitle>Create transfer</PageTitle>
|
<PageTitle>Transfer</PageTitle>
|
||||||
|
|
||||||
<div class="text-center m-5">
|
|
||||||
<h1>Drivers</h1>
|
|
||||||
<h2 style="font-size:small">Manage drivers here!</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--We need to check if the user is owner of a swerviceprovider-->
|
<!--We need to check if the user is owner of a swerviceprovider-->
|
||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container">
|
||||||
<h3>Selected Hotel:</h3>
|
|
||||||
<DxComboBox Data="@Hotels"
|
|
||||||
@bind-Value="@SelectedHotel"
|
|
||||||
SearchMode="@ListSearchMode.AutoSearch"
|
|
||||||
SearchFilterCondition="@ListSearchFilterCondition.Contains"
|
|
||||||
ListRenderMode="ListRenderMode.Virtual"
|
|
||||||
TextFieldName="Name"></DxComboBox>
|
|
||||||
|
|
||||||
<div class="row py-3">
|
<div class="row py-3">
|
||||||
<div class=" col-12 col-xl-3">
|
<div class=" col-12 col-xl-3">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<DynamicEditForm Data="Data" isEditing="true" IgnoreReflection="TransferIgnorList" OnSubmit="SubmitForm"></DynamicEditForm>
|
<DynamicEditForm Data="Data" isEditing="true" IgnoreReflection="TransferIgnorList" OnSubmit="SubmitForm"></DynamicEditForm>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -48,35 +35,24 @@
|
||||||
@code {
|
@code {
|
||||||
private LoggerClient<CreateAndManageTransfer> _logger;
|
private LoggerClient<CreateAndManageTransfer> _logger;
|
||||||
private TransferWizardModel Data;
|
private TransferWizardModel Data;
|
||||||
private List<Product> Hotels = new List<Product>();
|
|
||||||
private Product SelectedHotel;
|
|
||||||
public List<string> TransferIgnorList = new List<string>
|
public List<string> TransferIgnorList = new List<string>
|
||||||
{
|
{
|
||||||
nameof(TransferWizardModel.Id),
|
"Id",
|
||||||
nameof(TransferWizardModel.UserId),
|
"UserId",
|
||||||
nameof(TransferWizardModel.ProductId),
|
"ProductId",
|
||||||
nameof(TransferWizardModel.FirstName),
|
"PaymentId",
|
||||||
nameof(TransferWizardModel.LastName),
|
"FirstName",
|
||||||
nameof(TransferWizardModel.UserProductMappingId),
|
"LastName",
|
||||||
nameof(TransferWizardModel.UserProductToCarId),
|
"UserProductMappingId",
|
||||||
nameof(TransferWizardModel.ReferralId),
|
"UserProductToCarId",
|
||||||
nameof(TransferWizardModel.Price)
|
"ReferralId",
|
||||||
|
"Price"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<CreateAndManageTransfer>(LogWriters.ToArray());
|
_logger = new LoggerClient<CreateAndManageTransfer>(LogWriters.ToArray());
|
||||||
|
|
||||||
if (SessionService.User.UserModelDto.Products.Count() > 0)
|
|
||||||
{
|
|
||||||
if (SessionService.User.UserModelDto.Products.Any(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel))
|
|
||||||
{
|
|
||||||
Hotels = SessionService.User.UserModelDto.Products.Where(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel).ToList();
|
|
||||||
SelectedHotel = Hotels[0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Data = new TransferWizardModel();
|
Data = new TransferWizardModel();
|
||||||
base.OnInitialized();
|
base.OnInitialized();
|
||||||
|
|
||||||
|
|
@ -84,13 +60,11 @@
|
||||||
|
|
||||||
public async Task SubmitForm(object result)
|
public async Task SubmitForm(object result)
|
||||||
{
|
{
|
||||||
var valami = ((TransferWizardModel)result).CopyToTransfer();
|
var valami = (TransferWizardModel)result;
|
||||||
valami.Id = Guid.NewGuid();
|
|
||||||
valami.ProductId = SelectedHotel.Id;
|
|
||||||
//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);
|
||||||
var saveResult = await _adminSignalRClient.PostDataAsync<Transfer>(SignalRTags.AddTransfer, valami);
|
|
||||||
_logger.Info($"Submitted nested form: {result.GetType().FullName}, {valami.ToAddress}, {valami.FromAddress}, {valami.ProductId}");
|
_logger.Info($"Submitted nested form: {result.GetType().FullName}, {valami.Destination}, {valami.PickupAddress}, {valami.ProductId}");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,6 @@
|
||||||
<DxComboBox Data="@Data"
|
<DxComboBox Data="@Data"
|
||||||
InputCssClass="@CssClass"
|
InputCssClass="@CssClass"
|
||||||
@bind-Value="@SelectedDestination"
|
@bind-Value="@SelectedDestination"
|
||||||
SearchMode="@ListSearchMode.AutoSearch"
|
|
||||||
SearchFilterCondition="@ListSearchFilterCondition.Contains"
|
|
||||||
ListRenderMode="ListRenderMode.Virtual"
|
|
||||||
TextFieldName="@nameof(TransferDestination.Name)"
|
TextFieldName="@nameof(TransferDestination.Name)"
|
||||||
CssClass="cw-480"
|
CssClass="cw-480"
|
||||||
InputId="cbOverview" />
|
InputId="cbOverview" />
|
||||||
|
|
@ -102,7 +99,7 @@
|
||||||
|
|
||||||
public void SetNewDestination(TransferDestination destination)
|
public void SetNewDestination(TransferDestination destination)
|
||||||
{
|
{
|
||||||
OnSliderChanged.InvokeAsync(destination.AddressString);
|
OnSliderChanged.InvokeAsync(destination.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// RenderFragment GetFieldDescription(string fieldName, object value)
|
// RenderFragment GetFieldDescription(string fieldName, object value)
|
||||||
|
|
|
||||||
|
|
@ -366,90 +366,6 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
|
|
||||||
//transfer
|
//transfer
|
||||||
|
|
||||||
[NonAction]
|
|
||||||
[SignalR(SignalRTags.AddTransfer)]
|
|
||||||
public async Task<Transfer?> AddTransfer(Transfer transfer)
|
|
||||||
{
|
|
||||||
_logger.Info(@"CreateTransfer via SignalR called!");
|
|
||||||
|
|
||||||
if (transfer != null)
|
|
||||||
{
|
|
||||||
|
|
||||||
var id = Guid.NewGuid();
|
|
||||||
//TransferDestination transferDestination = new TransferDestination(id, transferDestinationModel.Name, transferDestinationModel.Description, transferDestinationModel.AddressString);
|
|
||||||
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(transfer.FromAddress) || string.IsNullOrEmpty(transfer.ToAddress))
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_logger.Info($@"TransferDestination to be created: {id}");
|
|
||||||
_logger.Info($@"TransferDestination to be created: {transfer.FromAddress}");
|
|
||||||
_logger.Info($@"TransferDestination to be created: {transfer.ToAddress}");
|
|
||||||
_logger.Info($@"TransferDestination to be created: {transfer.ProductId}");
|
|
||||||
_logger.Info($@"TransferDestination to be created: {transfer.Price}");
|
|
||||||
|
|
||||||
var destList = _adminDal.GetTransferDestinations();
|
|
||||||
var from = destList.FirstOrDefault(x => x.AddressString == transfer.FromAddress);
|
|
||||||
var to = destList.FirstOrDefault(x => x.AddressString == transfer.ToAddress);
|
|
||||||
|
|
||||||
//TODO
|
|
||||||
if (!transfer.ProductId.IsNullOrEmpty())
|
|
||||||
transfer.Price = _transferBackendService.GetTransferPrice(transfer.ProductId.Value, from, to, transfer.PassengerCount);
|
|
||||||
|
|
||||||
transfer.TransferStatusType = TransferStatusType.OrderSubmitted;
|
|
||||||
|
|
||||||
await _adminDal.AddTransferAsync(transfer);
|
|
||||||
|
|
||||||
|
|
||||||
_logger.Info($"Created transfer, send emailMessage!!!");
|
|
||||||
var message = new MessageSenderModel<EmailMessage>();
|
|
||||||
message.Message.Id = Guid.NewGuid();
|
|
||||||
message.Message.Subject = "[Tour I Am] New transfer in Budapest";
|
|
||||||
message.Message.ContextId = transfer.Id;
|
|
||||||
message.Message.SenderId = Guid.Empty;
|
|
||||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), transfer.UserId, Guid.NewGuid(), transfer.ContactEmail));
|
|
||||||
|
|
||||||
string FormatEmailContent()
|
|
||||||
{
|
|
||||||
return $@"
|
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
<p>Dear {transfer.FullName},</p>
|
|
||||||
<p>We are pleased to inform you that a transfer order has been placed. Below are the details of the transfer:</p>
|
|
||||||
<p>{transfer.FromAddress} - {transfer.ToAddress}</p>
|
|
||||||
<p>{transfer.Appointment}</p>
|
|
||||||
<p>{transfer.FullName}</p>
|
|
||||||
<p>{transfer.PassengerCount}</p>
|
|
||||||
<p>Please confirm the transfer by clicking on the following link:</p>
|
|
||||||
<p><a href=""{Setting.BaseUrl}/mytransfers/{transfer.Id}"">Confirm Transfer</a></p>
|
|
||||||
<p>If you did not request this transfer, please disregard this email.</p>
|
|
||||||
<p>Thank you,<br/>Tour I Am team</p>
|
|
||||||
</body>
|
|
||||||
</html>";
|
|
||||||
}
|
|
||||||
message.Message.Text = FormatEmailContent();
|
|
||||||
_logger.Info(message.Message.Text);
|
|
||||||
//message.Message.Text = $"Dear {transfer.FullName}! /n We have received an order from you, please confirm the details here: https://www.touriam.com/mytransfer?{transfer.Id}";
|
|
||||||
var messageElement = message.Message;
|
|
||||||
var result = await _messageSenderService.SendMessageAsync(messageElement, (int)message.MessageType);
|
|
||||||
await _adminDal.AddEmailMessageAsync(messageElement);
|
|
||||||
_logger.Info("SendEmail result: " + result);
|
|
||||||
|
|
||||||
|
|
||||||
return transfer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route(APIUrls.CreateTransferRouteName)]
|
[Route(APIUrls.CreateTransferRouteName)]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue