Combobox chnages transfer create test
This commit is contained in:
parent
efeedff96e
commit
2bab0971d2
|
|
@ -234,12 +234,9 @@ else
|
|||
editor.AddAttribute(j++, "ValueChanged", EventCallback.Factory.Create<string>(this, str => { property.SetValue(Data, str); }));
|
||||
editor.CloseComponent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else if (property.PropertyType == typeof(string) && string.Compare(attrList.CustomDataType, "TransferDestination", true) == 0)
|
||||
{
|
||||
|
||||
{
|
||||
editor.OpenComponent<ComboboxItemSelector>(j);
|
||||
editor.AddAttribute(j++, "TextValue", property.GetValue(Data));
|
||||
editor.AddAttribute(j++, "CssClass", "form-field");
|
||||
|
|
@ -258,7 +255,6 @@ else
|
|||
|
||||
else if (property.PropertyType == typeof(string) && string.Compare(attrList.CustomDataType, "FullName", true) == 0)
|
||||
{
|
||||
|
||||
editor.OpenComponent<FullNameEditor>(j);
|
||||
editor.AddAttribute(j++, "NullText", "Please tell us your name.");
|
||||
editor.AddAttribute(j++, "FirstNameChanged", EventCallback.Factory.Create<string>(this, result =>
|
||||
|
|
|
|||
|
|
@ -1,31 +1,44 @@
|
|||
@page "/user/createAndManageTransfer"
|
||||
@using TIAM.Entities.Products
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||
@using TIAMSharedUI.Shared
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@layout AdminLayout
|
||||
@inject IPopulationStructureDataProvider DataProvider
|
||||
@inject ISessionService SessionService
|
||||
@inject IUserDataService UserDataService
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject AdminSignalRClient _adminSignalRClient
|
||||
|
||||
<PageTitle>Transfer</PageTitle>
|
||||
<PageTitle>Create 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-->
|
||||
|
||||
<div class="container">
|
||||
|
||||
|
||||
<div class="container-fluid">
|
||||
<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=" col-12 col-xl-3">
|
||||
|
||||
</div>
|
||||
<DynamicEditForm Data="Data" isEditing="true" IgnoreReflection="TransferIgnorList" OnSubmit="SubmitForm"></DynamicEditForm>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
@ -35,24 +48,35 @@
|
|||
@code {
|
||||
private LoggerClient<CreateAndManageTransfer> _logger;
|
||||
private TransferWizardModel Data;
|
||||
private List<Product> Hotels = new List<Product>();
|
||||
private Product SelectedHotel;
|
||||
public List<string> TransferIgnorList = new List<string>
|
||||
{
|
||||
"Id",
|
||||
"UserId",
|
||||
"ProductId",
|
||||
"PaymentId",
|
||||
"FirstName",
|
||||
"LastName",
|
||||
"UserProductMappingId",
|
||||
"UserProductToCarId",
|
||||
"ReferralId",
|
||||
"Price"
|
||||
nameof(TransferWizardModel.Id),
|
||||
nameof(TransferWizardModel.UserId),
|
||||
nameof(TransferWizardModel.ProductId),
|
||||
nameof(TransferWizardModel.FirstName),
|
||||
nameof(TransferWizardModel.LastName),
|
||||
nameof(TransferWizardModel.UserProductMappingId),
|
||||
nameof(TransferWizardModel.UserProductToCarId),
|
||||
nameof(TransferWizardModel.ReferralId),
|
||||
nameof(TransferWizardModel.Price)
|
||||
};
|
||||
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
_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();
|
||||
base.OnInitialized();
|
||||
|
||||
|
|
@ -60,11 +84,13 @@
|
|||
|
||||
public async Task SubmitForm(object result)
|
||||
{
|
||||
var valami = (TransferWizardModel)result;
|
||||
var valami = ((TransferWizardModel)result).CopyToTransfer();
|
||||
valami.Id = Guid.NewGuid();
|
||||
valami.ProductId = SelectedHotel.Id;
|
||||
//valami.ProductId = SessionService.User.UserId; //TODO ProductID!
|
||||
// await WizardProcessor.ProcessWizardAsync<TransferDestinationWizardModel>(result.GetType(), result);
|
||||
|
||||
_logger.Info($"Submitted nested form: {result.GetType().FullName}, {valami.Destination}, {valami.PickupAddress}, {valami.ProductId}");
|
||||
var saveResult = await _adminSignalRClient.PostDataAsync<Transfer>(SignalRTags.AddTransfer, valami);
|
||||
_logger.Info($"Submitted nested form: {result.GetType().FullName}, {valami.ToAddress}, {valami.FromAddress}, {valami.ProductId}");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@
|
|||
<DxComboBox Data="@Data"
|
||||
InputCssClass="@CssClass"
|
||||
@bind-Value="@SelectedDestination"
|
||||
SearchMode="@ListSearchMode.AutoSearch"
|
||||
SearchFilterCondition="@ListSearchFilterCondition.Contains"
|
||||
ListRenderMode="ListRenderMode.Virtual"
|
||||
TextFieldName="@nameof(TransferDestination.Name)"
|
||||
CssClass="cw-480"
|
||||
InputId="cbOverview" />
|
||||
|
|
@ -99,7 +102,7 @@
|
|||
|
||||
public void SetNewDestination(TransferDestination destination)
|
||||
{
|
||||
OnSliderChanged.InvokeAsync(destination.Name);
|
||||
OnSliderChanged.InvokeAsync(destination.AddressString);
|
||||
}
|
||||
|
||||
// RenderFragment GetFieldDescription(string fieldName, object value)
|
||||
|
|
|
|||
|
|
@ -366,9 +366,93 @@ namespace TIAMWebApp.Server.Controllers
|
|||
|
||||
//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]
|
||||
[HttpPost]
|
||||
[Route(APIUrls.CreateTransferRouteName)]
|
||||
[Route(APIUrls.CreateTransferRouteName)]
|
||||
public async Task<IActionResult> CreateTransfer([FromBody] JsonElement serializedTransferModel)
|
||||
{
|
||||
_logger.Info(@"CreateTransfer called!");
|
||||
|
|
|
|||
Loading…
Reference in New Issue