Merge branch 'master' of http://git2.aycode.com/Adam/TourIAm
This commit is contained in:
commit
b421cae621
|
|
@ -22,6 +22,7 @@ public static class TiamConstClient
|
|||
public static string NewTransferEmailTemplateName = "NewTransferEmailTemplate";
|
||||
public static string TransferModifiedEmailTemplateName = "TramsferModifiedEmailTemplate";
|
||||
public static string ForgotPasswordEmailTemplateName = "ForgotPasswordEmailTemplate";
|
||||
public static string GeneralEmailTemplateName = "GeneralEmailTemplate";
|
||||
|
||||
public static List<string> WelcomeEmailParameters = new List<string>()
|
||||
{
|
||||
|
|
@ -53,6 +54,15 @@ public static class TiamConstClient
|
|||
"TransferId"
|
||||
};
|
||||
|
||||
public static List<string> GeneralEmailParameters = new List<string>()
|
||||
{
|
||||
//string userName, string settingBaseUrl, string userId, string token
|
||||
"UserName",
|
||||
"MessageBody",
|
||||
"SettingBaseUrl",
|
||||
"UserId"
|
||||
};
|
||||
|
||||
#if RELEASE
|
||||
public static string SystemEmailAddress = "system@touriam.com";
|
||||
public static LogLevel DefaultLogLevelClient = LogLevel.Debug;
|
||||
|
|
|
|||
|
|
@ -102,5 +102,20 @@ namespace TIAM.Services.Server
|
|||
return EmailTemplateHelper.ReplacePlaceholders(template, placeholders);
|
||||
}
|
||||
|
||||
public static string GenerateGeneralEmail(string userName, string messageBody, string settingBaseUrl, string userId)
|
||||
{
|
||||
string template = EmailTemplateHelper.GetTemplate(TiamConstClient.GeneralEmailTemplateName);
|
||||
|
||||
var placeholders = new Dictionary<string, string>
|
||||
{
|
||||
{ TiamConstClient.GeneralEmailParameters[0], userName },
|
||||
{ TiamConstClient.GeneralEmailParameters[1], messageBody },
|
||||
{ TiamConstClient.GeneralEmailParameters[2], settingBaseUrl },
|
||||
{ TiamConstClient.GeneralEmailParameters[3], userId }
|
||||
};
|
||||
|
||||
return EmailTemplateHelper.ReplacePlaceholders(template, placeholders);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Welcome</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello, {{UserName}}!</h1>
|
||||
<p>You have received a message in the TourIam System: </p>
|
||||
<p>{{MessageBody}}</p>
|
||||
<hr/>
|
||||
<p>You can check out your messages <a href="{{SettingBaseUrl}}/user/messages/{{UserId}}">here</a></p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<None Remove="EmbeddedResources\EmailTemplates\ForgotPasswordEmailTemplate.html" />
|
||||
<None Remove="EmbeddedResources\EmailTemplates\GeneralEmailTemplate.html" />
|
||||
<None Remove="EmbeddedResources\EmailTemplates\NewTransferEmailTemplate.html" />
|
||||
<None Remove="EmbeddedResources\EmailTemplates\TransferModifiedEmailTemplate.html" />
|
||||
<None Remove="EmbeddedResources\EmailTemplates\WelcomeEmailTemplate.html" />
|
||||
|
|
@ -23,6 +24,9 @@
|
|||
<EmbeddedResource Include="EmbeddedResources\EmailTemplates\TransferModifiedEmailTemplate.html">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="EmbeddedResources\EmailTemplates\GeneralEmailTemplate.html">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -27,12 +27,15 @@ namespace TIAM.Services.Server
|
|||
|
||||
public double GetTransferPrice(Product product, TransferDestination fromTransferDestination, TransferDestination toTransferDestination, in byte seatNumber)
|
||||
{
|
||||
//ha from vagy to null, akkor a product price-t kellene kivenni (és majd vizsgálni, hogy buda vagy pest)
|
||||
var baseDestination = product.Profile.AddressId == fromTransferDestination.AddressId ? toTransferDestination : fromTransferDestination;
|
||||
|
||||
var transferDestinationToProduct = adminDal.GetTransferDestinationToProduct(product.Id, baseDestination.Id);
|
||||
|
||||
var tranferDestinationPrice = transferDestinationToProduct ?? baseDestination as ITransfeDestinationPrices;
|
||||
|
||||
//product commission-t nem kellene hozzáadni, mivel a transferDestination árából lejön a transferdestination commission-je (ha van gondolom)
|
||||
|
||||
var price = GetSeatNumberPrice(in tranferDestinationPrice, seatNumber) + tranferDestinationPrice.ProductCommis + GetExtraPrice(in fromTransferDestination);
|
||||
|
||||
//TODO: ExtraPrice - J. seatnum percent price, FirstName, LastName, CascadeDelete
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using TIAM.Entities.Transfers;
|
||||
using TIAM.Entities.Emails;
|
||||
//using TIAM.Entities.TransferDestinations;
|
||||
using TIAMWebApp.Shared.Application.Interfaces;
|
||||
using TIAMWebApp.Shared.Application.Models;
|
||||
using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels;
|
||||
|
||||
namespace TIAMMobileApp.Services
|
||||
|
|
@ -8,29 +9,37 @@ namespace TIAMMobileApp.Services
|
|||
public class WizardProcessor : IWizardProcessor
|
||||
{
|
||||
|
||||
public ITransferDataService transferDataService { get; set; }
|
||||
public IUserDataService userDataService { get; set; }
|
||||
public ITransferDataService TransferDataService { get; set; }
|
||||
public IUserDataService UserDataService { get; set; }
|
||||
public IClientNoticeSenderService MessageSenderService { get; set; }
|
||||
|
||||
public WizardProcessor(ITransferDataService transferDataService, IUserDataService userDataService)
|
||||
public WizardProcessor(ITransferDataService transferDataService, IUserDataService userDataService, IClientNoticeSenderService messageSenderService)
|
||||
{
|
||||
this.transferDataService = transferDataService;
|
||||
this.userDataService = userDataService;
|
||||
this.TransferDataService = transferDataService;
|
||||
this.UserDataService = userDataService;
|
||||
this.MessageSenderService = messageSenderService;
|
||||
}
|
||||
|
||||
public async Task<TModelType?> ProcessWizardAsync<TModelType>(Type type, object data) where TModelType: class
|
||||
{
|
||||
switch (type.Name)
|
||||
{
|
||||
case "TransferDestinationWizardModel":
|
||||
var result = await transferDataService.CreateTransferDestination((TransferDestination)data);
|
||||
case nameof(TransferDestinationWizardModel):
|
||||
var result = await TransferDataService.CreateTransferDestination((TransferDestination)data);
|
||||
return result as TModelType;
|
||||
|
||||
//var a = new WizardProcessorResult<TransferDestination>();
|
||||
//a.Model = result;
|
||||
//return a as TResult;
|
||||
case nameof(TransferWizardModel):
|
||||
Console.WriteLine(@"TransferWizardModel");
|
||||
var transferResult = await TransferDataService.CreateTransfer((TransferWizardModel)data);
|
||||
return transferResult as TModelType;
|
||||
|
||||
case "ServiceProvider":
|
||||
return null;
|
||||
case nameof(MessageWizardModel):
|
||||
TIAM.Entities.Emails.EmailMessage emailMessage = ((MessageWizardModel)data).CopyToEmailMessage();
|
||||
var messageResult = await MessageSenderService.SendNoticeAsync(emailMessage, 1);
|
||||
return messageResult as TModelType;
|
||||
|
||||
//case nameof(ServiceProvider):
|
||||
// return null;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
@using AyCode.Core.Extensions
|
||||
@using TIAM.Entities.Transfers
|
||||
@using TIAM.Resources
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Core.Enums
|
||||
|
|
@ -10,6 +11,7 @@
|
|||
@using TIAMWebApp.Shared.Application.Utility
|
||||
@using TIAMSharedUI.Pages.User.SysAdmins
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
@inherits BasePageComponent
|
||||
@inject HttpClient Http
|
||||
@inject NavigationManager navManager
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
|
|
@ -19,6 +21,7 @@
|
|||
@inject NavigationManager navigationManager
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
@inject IWizardProcessor wizardProcessor
|
||||
@inject AdminSignalRClient _adminSignalRClient
|
||||
|
||||
<PageTitle>Transfer details</PageTitle>
|
||||
<div class="text-center m-5">
|
||||
|
|
@ -69,7 +72,7 @@ else
|
|||
{
|
||||
<div class="container mt-4">
|
||||
<DxTabs>
|
||||
<DxTabPage Text="Details">
|
||||
<DxTabPage Visible="@displayCard" Text="Details">
|
||||
|
||||
|
||||
@if (!_editMode)
|
||||
|
|
@ -238,12 +241,12 @@ else
|
|||
}
|
||||
|
||||
</DxTabPage>
|
||||
<DxTabPage Text="Messages">
|
||||
<DxTabPage Visible="@displayCard" Text="Messages">
|
||||
<div style="margin-top: 10px; margin-bottom: 10px;">
|
||||
<DxButton Click="() => SendMail(_transfer)" Text="Send a message" RenderStyle="ButtonRenderStyle.Primary" />
|
||||
</div>
|
||||
<MessageDetailGridComponent ContextId="transferId" IsSenderEmailVisible="false" IsMessageTextVisible="false"></MessageDetailGridComponent>
|
||||
</DxTabPage>
|
||||
</DxTabPage>
|
||||
</DxTabs>
|
||||
</div>
|
||||
}
|
||||
|
|
@ -258,6 +261,8 @@ else
|
|||
private LoggerClient<EditTransfers> _logger = null!;
|
||||
private MessageWizardModel _messageWizardModel = new();
|
||||
|
||||
private bool displayCard = true;
|
||||
|
||||
private bool _popupVisible;
|
||||
|
||||
public List<string> IgnoreList =
|
||||
|
|
@ -361,6 +366,7 @@ else
|
|||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
||||
foreach (var t in Enum.GetValues(typeof(TransferStatusType)).OfType<TransferStatusType>().ToList())
|
||||
_statusTypes.Add(t.ToString());
|
||||
|
||||
|
|
@ -368,9 +374,35 @@ else
|
|||
_logger.Info($"parameter: {transferId.ToString()}");
|
||||
|
||||
await LoadTransfer();
|
||||
if (_transfer.UserId.IsNullOrEmpty())
|
||||
var test = _transfer.UserId;
|
||||
if (!_transfer.UserId.IsNullOrEmpty())
|
||||
{
|
||||
await UserDataService.SetEmailConfirmed(_transfer.UserId);
|
||||
//get transfer user details
|
||||
var transferUser = await UserDataService.GetUserByEmailAsync(_transfer.ContactEmail);
|
||||
if(transferUser != null)
|
||||
{
|
||||
if(_sessionService.IsAuthenticated)
|
||||
{
|
||||
if (_sessionService.User != null)
|
||||
{
|
||||
if (transferUser.Id == _sessionService.User.UserId)
|
||||
{
|
||||
//I am logged in, and this is my transfer
|
||||
await UserDataService.SetEmailConfirmed(_transfer.UserId);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//this is not my transfer, if I am not sysadmin, I should not see the transfer details
|
||||
if(!_sessionService.IsSysAdmin || !_sessionService.IsDevAdmin)
|
||||
{
|
||||
displayCard = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -389,7 +421,8 @@ else
|
|||
{
|
||||
try
|
||||
{
|
||||
var response = await transferDataService.GetTransferByIdAsync(transferId);
|
||||
//var response = await transferDataService.GetTransferByIdAsync(transferId);
|
||||
var response = await _adminSignalRClient.GetTransferById(transferId);
|
||||
|
||||
if (response != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,14 +1,24 @@
|
|||
@page "/transfer"
|
||||
@using AyCode.Core.Consts
|
||||
@using AyCode.Core.Helpers
|
||||
@using TIAM.Models.Dtos.Users
|
||||
@using TIAM.Services
|
||||
@using TIAMSharedUI.Pages.Components
|
||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||
@using TIAMSharedUI.Shared
|
||||
@using TIAMSharedUI.Shared.Components.BaseComponents
|
||||
@using TIAMWebApp.Shared.Application.Interfaces
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI
|
||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAMWebApp.Shared.Application.Models.PageModels
|
||||
@using TIAMWebApp.Shared.Application.Services
|
||||
@inherits BasePageComponent
|
||||
@inject NavigationManager navManager
|
||||
@inject IAcLogWriterClientBase BrowserConsoleLogWriter
|
||||
@inject IWizardProcessor WizardProcessor
|
||||
@inject IUserDataService UserDataService
|
||||
@inject AdminSignalRClient _adminSignalRClient
|
||||
<PageTitle>Transfer</PageTitle>
|
||||
|
||||
<HeroSlider SliderItems="sliders" Height="30vh"></HeroSlider>
|
||||
|
|
@ -113,13 +123,93 @@ new HeroSliderItem
|
|||
|
||||
public async Task SubmitForm(object Result)
|
||||
{
|
||||
TransferWizardModel 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)
|
||||
{
|
||||
resModel.UserId = user.Id;
|
||||
//user exists already
|
||||
|
||||
if(_sessionService.User != null)
|
||||
{
|
||||
if(_sessionService.User.UserId == user.Id)
|
||||
{
|
||||
|
||||
//I have ordered for myself
|
||||
resModel.ReferralId = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
//if I am logged in and different user I become referrer (if no referrer already)
|
||||
var transferUserDetail = await UserDataService.GetUserDetailByIdAsync(user.Id);
|
||||
var userDetail = await UserDataService.GetUserDetailByIdAsync(_sessionService.User.UserId);
|
||||
|
||||
if (transferUserDetail.UserDto.RefferalId != null)
|
||||
{
|
||||
//user has aready a referrer so we use that
|
||||
resModel.ReferralId = transferUserDetail.UserDto.RefferalId;
|
||||
}
|
||||
else
|
||||
{
|
||||
//user has no referrer so I am the referrer
|
||||
resModel.ReferralId = userDetail.UserDto.RefferalId;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//create a guest user and set referralId
|
||||
var registration = new RegistrationModel();
|
||||
|
||||
var password = AcCharsGenerator.NewPassword(AcConst.MinPasswordLength, 16);
|
||||
|
||||
registration.Email = resModel.EmailAddress;
|
||||
registration.PhoneNumber = resModel.PhoneNumber;
|
||||
registration.Password = password;
|
||||
//get list with one member!
|
||||
|
||||
var createResult = await UserDataService.CreateGuestUser(registration);
|
||||
if (createResult.isSuccess)
|
||||
{
|
||||
if (createResult.user != null)
|
||||
{
|
||||
if (_sessionService.User != null)
|
||||
{
|
||||
//if I am logged in user I become referrer
|
||||
var userDetail = await UserDataService.GetUserDetailByIdAsync(_sessionService.User.UserId);
|
||||
var createdUserDetail = await UserDataService.GetUserDetailByIdAsync(createResult.user.Id);
|
||||
if(createdUserDetail != null)
|
||||
{
|
||||
createdUserDetail.UserDto.RefferalId = userDetail.UserDto.RefferalId;
|
||||
var updatedNewUser = await _adminSignalRClient.PostDataAsync<UserModelDtoDetail>(SignalRTags.UpdateUserModelDtoDetail, userDetail);
|
||||
if (updatedNewUser != null)
|
||||
{
|
||||
//referral set
|
||||
}
|
||||
else
|
||||
{
|
||||
//something wrong
|
||||
}
|
||||
}
|
||||
resModel.ReferralId = userDetail.UserDto.RefferalId;
|
||||
}
|
||||
|
||||
resModel.UserId = createResult.user.Id;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//some error handling
|
||||
}
|
||||
}
|
||||
}
|
||||
var transfer = await WizardProcessor.ProcessWizardAsync<TransferWizardModel>(Result.GetType(), Result);
|
||||
BrowserConsoleLogWriter.Info($"Submitted nested form: {Result.GetType().FullName}");
|
||||
navManager.NavigateTo("/transfer2/"+transfer.Id);
|
||||
navManager.NavigateTo($"/transfer2/{resModel.Id}");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
@page "/sysadmin/transfers"
|
||||
@using BlazorAnimation
|
||||
@using TIAM.Core.Consts
|
||||
@using TIAM.Core.Enums
|
||||
@using TIAM.Entities.Emails
|
||||
@using TIAM.Entities.Transfers
|
||||
|
|
@ -250,19 +251,20 @@
|
|||
"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")
|
||||
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();
|
||||
|
|
@ -278,11 +280,13 @@
|
|||
|
||||
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 regarding your transfer";
|
||||
_messageWizardModel.ReceiverId = item.UserId;
|
||||
_messageWizardModel.ContextId = item.Id;
|
||||
_messageWizardModel.SenderEmailAddress = "info@touriam.com";
|
||||
_messageWizardModel.ContextType = MessageContextType.Transfer;
|
||||
_messageWizardModel.SenderId = TiamConstClient.SysAccounts["SystemEmailSender"];
|
||||
_messageWizardModel.SenderEmailAddress = TiamConstClient.SystemEmailAddress;
|
||||
_messageWizardModel.ReceiverEmailAddress = item.ContactEmail;
|
||||
_messageWizardModel.ReceiverFullName = item.FullName;
|
||||
_popupVisible = true;
|
||||
|
|
@ -311,28 +315,11 @@
|
|||
|
||||
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);
|
||||
|
||||
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
|
||||
CancelCreateClick();
|
||||
}
|
||||
|
||||
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ using TIAM.Entities.Products;
|
|||
using AyCode.Core.Consts;
|
||||
using AyCode.Core;
|
||||
using TIAM.Core.Consts;
|
||||
using TIAM.Entities.Users;
|
||||
using TIAM.Services.Server;
|
||||
using TIAMWebApp.Shared.Application.Models.ClientSide;
|
||||
|
||||
namespace TIAMWebApp.Server.Controllers
|
||||
{
|
||||
|
|
@ -48,6 +51,23 @@ namespace TIAMWebApp.Server.Controllers
|
|||
{
|
||||
_logger.Debug($"SendEmail called!");
|
||||
var message = JObject.Parse(serializedMessageSenderModel.GetRawText()).ToObject<MessageSenderModel<EmailMessage>>();
|
||||
var receiver = _adminDal.GetUserById(message.Message.Recipients[0].RecipientId);
|
||||
string receiverFullName = "";
|
||||
if (receiver != null) {
|
||||
if (receiver.FullName != null)
|
||||
{
|
||||
receiverFullName = receiver.FullName;
|
||||
}
|
||||
else
|
||||
{
|
||||
receiverFullName = "TourIam User";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//wrong userId?
|
||||
}
|
||||
|
||||
|
||||
if (message == null) return BadRequest("Invalid request");
|
||||
|
||||
|
|
@ -58,6 +78,21 @@ namespace TIAMWebApp.Server.Controllers
|
|||
var messageElement = message.Message;
|
||||
_logger.Debug(message.Message.Subject);
|
||||
messageElement.EmailAddress = TiamConstClient.SystemEmailAddress;
|
||||
|
||||
var htmlContent = EmailTemplateHelper.GenerateGeneralEmail(
|
||||
receiverFullName,
|
||||
messageElement.Text,
|
||||
Setting.BaseUrl,
|
||||
messageElement.Recipients[0].RecipientId.ToString()
|
||||
);
|
||||
message.Message.Text = htmlContent;
|
||||
|
||||
foreach (var admin in TiamConstClient.SysAdmins)
|
||||
{
|
||||
var adminUser = _adminDal.GetUserById(admin, true);
|
||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), admin, message.Message.Id, adminUser.EmailAddress));
|
||||
}
|
||||
|
||||
await _adminDal.AddEmailMessageAsync(messageElement);
|
||||
var result = await _messageSenderService.SendMessageAsync(messageElement, (int)message.MessageType);
|
||||
//_adminDal.AddEmailMessageAsync((TIAM.Entities.Emails.EmailMessage)SerializedMessageSenderModel.Message);
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
return result ? transferDestination : null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//[AllowAnonymous]
|
||||
//[HttpPost]
|
||||
|
|
@ -380,289 +380,165 @@ namespace TIAMWebApp.Server.Controllers
|
|||
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 (transfer == null || string.IsNullOrEmpty(transfer.FromAddress) || string.IsNullOrEmpty(transfer.ToAddress))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
await ProcessTransferAsync(transfer);
|
||||
await SendTransferEmailAsync(transfer);
|
||||
|
||||
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);
|
||||
|
||||
Product? product = null;
|
||||
//TODO
|
||||
if (!transfer.ProductId.IsNullOrEmpty())
|
||||
{
|
||||
product = await _adminDal.GetProductByIdAsync((Guid)transfer.ProductId);
|
||||
transfer.Price = _transferBackendService.GetTransferPrice(transfer.ProductId.Value, from, to, transfer.PassengerCount);
|
||||
}
|
||||
|
||||
transfer.TransferStatusType = TransferStatusType.OrderSubmitted;
|
||||
if (transfer.Price != null && transfer.Price > 0 && product != null)
|
||||
{
|
||||
if (product.ServiceProvider.CommissionPercent != null)
|
||||
{
|
||||
transfer.Revenue = transfer.Price * product.ServiceProvider.CommissionPercent / 100;
|
||||
}
|
||||
else
|
||||
{
|
||||
transfer.Revenue = 0;
|
||||
}
|
||||
}
|
||||
await _adminDal.AddTransferAsync(transfer);
|
||||
|
||||
|
||||
_logger.Info($"Created transfer, send emailMessage!!!");
|
||||
var message = new MessageSenderModel<EmailMessage>();
|
||||
message.Message = new 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;
|
||||
}
|
||||
|
||||
return transfer;
|
||||
}
|
||||
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[Route(APIUrls.CreateTransferRouteName)]
|
||||
[Route(APIUrls.CreateTransferRouteName)]
|
||||
public async Task<IActionResult> CreateTransfer([FromBody] JsonElement serializedTransferModel)
|
||||
{
|
||||
_logger.Info(@"CreateTransfer called!");
|
||||
|
||||
if (string.IsNullOrEmpty(serializedTransferModel.GetRawText()))
|
||||
{
|
||||
return BadRequest("SerializedTramsferDestinationWizardModel is required");
|
||||
return BadRequest("SerializedTransferModel is required");
|
||||
}
|
||||
else
|
||||
|
||||
var transfer = DeserializeTransfer(serializedTransferModel);
|
||||
if (transfer == null || string.IsNullOrEmpty(transfer.FromAddress) || string.IsNullOrEmpty(transfer.ToAddress))
|
||||
{
|
||||
Transfer? transfer = JObject.Parse(serializedTransferModel.GetRawText()).ToObject<Transfer>();
|
||||
|
||||
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 BadRequest("Invalid request");
|
||||
}
|
||||
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 from = await _adminDal.Context.TransferDestinations.FirstOrDefaultAsync(x => x.AddressString == transfer.FromAddress);
|
||||
var to = await _adminDal.Context.TransferDestinations.FirstOrDefaultAsync(x => x.AddressString == transfer.ToAddress);
|
||||
Product? product = null;
|
||||
//TODO
|
||||
if (!transfer.ProductId.IsNullOrEmpty())
|
||||
{
|
||||
product = await _adminDal.GetProductByIdAsync((Guid)transfer.ProductId);
|
||||
transfer.Price = _transferBackendService.GetTransferPrice(transfer.ProductId.Value, from, to, transfer.PassengerCount);
|
||||
|
||||
if (transfer.Price != null && transfer.Price > 0)
|
||||
{
|
||||
transfer.Revenue = _transferBackendService.GetCommission((Guid)transfer.ProductId, (double)transfer.Price, to);
|
||||
}
|
||||
else
|
||||
{
|
||||
transfer.Revenue = 0;
|
||||
}
|
||||
}
|
||||
|
||||
transfer.TransferStatusType = TransferStatusType.OrderSubmitted;
|
||||
|
||||
await _adminDal.AddTransferAsync(transfer);
|
||||
|
||||
|
||||
_logger.Info($"Created transfer, send emailMessage!!!");
|
||||
var message = new MessageSenderModel<EmailMessage>();
|
||||
message.Message = new EmailMessage();
|
||||
message.Message.Id = Guid.NewGuid();
|
||||
message.Message.EmailAddress = TiamConstClient.SystemEmailAddress;
|
||||
message.MessageType = AyCode.Models.Enums.MessageTypesEnum.email;
|
||||
message.Message.Subject = $"[#{transfer.OrderId}][Tour I Am] New transfer in Budapest";
|
||||
message.Message.ContextId = transfer.Id;
|
||||
message.Message.ContextType = MessageContextType.Transfer;
|
||||
message.Message.SenderId = TiamConstClient.SysAccounts["SystemEmailSender"];
|
||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), transfer.UserId, message.Message.Id, transfer.ContactEmail));
|
||||
foreach(var admin in TiamConstClient.SysAdmins)
|
||||
{
|
||||
var adminUser = _adminDal.GetUserById(admin, true);
|
||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), admin, message.Message.Id, adminUser.EmailAddress));
|
||||
}
|
||||
message.Message.Text = EmailTemplateHelper.GenerateNewTransferEmail(
|
||||
transfer.FullName,
|
||||
transfer.FromAddress,
|
||||
transfer.ToAddress,
|
||||
transfer.Appointment.ToString(),
|
||||
transfer.FullName,
|
||||
transfer.PassengerCount.ToString(),
|
||||
transfer.LuggageCount.ToString(),
|
||||
Setting.BaseUrl,
|
||||
transfer.Id.ToString());
|
||||
_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 Ok(transfer);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest("Invalid request");
|
||||
}
|
||||
|
||||
|
||||
return BadRequest("Invalid request");
|
||||
}
|
||||
|
||||
await ProcessTransferAsync(transfer);
|
||||
await SendTransferEmailAsync(transfer);
|
||||
|
||||
return Ok(transfer);
|
||||
}
|
||||
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[Route(APIUrls.CreateTransfersRouteName)]
|
||||
public async Task<IActionResult> CreateTransfers([FromBody] JsonElement serializedTransferList)
|
||||
{
|
||||
_logger.Info(@"CreateTransfers called!");
|
||||
|
||||
if (string.IsNullOrEmpty(serializedTransferList.GetRawText()))
|
||||
{
|
||||
return BadRequest("SerializedTramsferDestinationWizardModel is required");
|
||||
return BadRequest("SerializedTransferList is required");
|
||||
}
|
||||
else
|
||||
|
||||
var transfers = DeserializeTransfers(serializedTransferList);
|
||||
if (transfers == null || !transfers.Any())
|
||||
{
|
||||
_logger.Info($@"Serialized model: {serializedTransferList.GetRawText()}");
|
||||
return BadRequest("Invalid request");
|
||||
}
|
||||
|
||||
var settings = new JsonSerializerSettings
|
||||
var createdTransfers = new List<Transfer>();
|
||||
foreach (var transfer in transfers)
|
||||
{
|
||||
await ProcessTransferAsync(transfer);
|
||||
await SendTransferEmailAsync(transfer);
|
||||
createdTransfers.Add(transfer);
|
||||
}
|
||||
|
||||
return Ok(createdTransfers);
|
||||
}
|
||||
|
||||
// Helper method to deserialize a single transfer
|
||||
[NonAction]
|
||||
private Transfer? DeserializeTransfer(JsonElement serializedTransferModel)
|
||||
{
|
||||
return JObject.Parse(serializedTransferModel.GetRawText()).ToObject<Transfer>();
|
||||
}
|
||||
|
||||
// Helper method to deserialize a list of transfers
|
||||
[NonAction]
|
||||
private List<Transfer>? DeserializeTransfers(JsonElement serializedTransferList)
|
||||
{
|
||||
var settings = new JsonSerializerSettings
|
||||
{
|
||||
ContractResolver = new CamelCasePropertyNamesContractResolver()
|
||||
};
|
||||
|
||||
return JsonConvert.DeserializeObject<List<Transfer>>(serializedTransferList.GetRawText(), settings);
|
||||
}
|
||||
|
||||
// Helper method to process a transfer
|
||||
[NonAction]
|
||||
private async Task ProcessTransferAsync(Transfer transfer)
|
||||
{
|
||||
var from = await _adminDal.Context.TransferDestinations.FirstOrDefaultAsync(x => x.AddressString == transfer.FromAddress);
|
||||
var to = await _adminDal.Context.TransferDestinations.FirstOrDefaultAsync(x => x.AddressString == transfer.ToAddress);
|
||||
|
||||
if (!transfer.ProductId.IsNullOrEmpty())
|
||||
{
|
||||
var product = await _adminDal.GetProductByIdAsync((Guid)transfer.ProductId);
|
||||
transfer.Price = _transferBackendService.GetTransferPrice(transfer.ProductId.Value, from, to, transfer.PassengerCount);
|
||||
|
||||
if (transfer.Price.HasValue && transfer.Price > 0)
|
||||
{
|
||||
ContractResolver = new CamelCasePropertyNamesContractResolver()
|
||||
};
|
||||
|
||||
List<Transfer>? transfers = JsonConvert.DeserializeObject<List<Transfer>>(serializedTransferList.GetRawText(), settings);
|
||||
|
||||
//List<Transfer>? transfers = JObject.Parse(serializedTransferModel.GetRawText()).ToObject<List<Transfer>>();
|
||||
List<Transfer> createdTransfers = new List<Transfer>();
|
||||
if (transfers != null)
|
||||
{
|
||||
foreach (var transfer in transfers)
|
||||
{
|
||||
var id = Guid.NewGuid();
|
||||
var result = await _adminDal.AddTransferAsync(transfer);
|
||||
if (result)
|
||||
{
|
||||
createdTransfers.Add(transfer);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var createdTransfer in createdTransfers)
|
||||
{
|
||||
_logger.Info($"Created transfer, send emailMessage!!!");
|
||||
var message = new MessageSenderModel<EmailMessage>();
|
||||
message.Message = new EmailMessage();
|
||||
message.Message.Id = Guid.NewGuid();
|
||||
message.Message.EmailAddress = TiamConstClient.SystemEmailAddress;
|
||||
message.MessageType = AyCode.Models.Enums.MessageTypesEnum.email;
|
||||
message.Message.Subject = $"[#{createdTransfer.OrderId}][Tour I Am] New transfer in Budapest";
|
||||
message.Message.ContextId = createdTransfer.Id;
|
||||
message.Message.ContextType = MessageContextType.Transfer;
|
||||
message.Message.SenderId = TiamConstClient.SysAccounts["SystemEmailSender"];
|
||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), createdTransfer.UserId, Guid.NewGuid(), createdTransfer.ContactEmail));
|
||||
foreach (var admin in TiamConstClient.SysAdmins)
|
||||
{
|
||||
var adminUser = _adminDal.GetUserById(admin, true);
|
||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), admin, message.Message.Id, adminUser.EmailAddress));
|
||||
}
|
||||
message.Message.Text = EmailTemplateHelper.GenerateNewTransferEmail(
|
||||
createdTransfer.FullName,
|
||||
createdTransfer.FromAddress,
|
||||
createdTransfer.ToAddress,
|
||||
createdTransfer.Appointment.ToString(),
|
||||
createdTransfer.FullName,
|
||||
createdTransfer.PassengerCount.ToString(),
|
||||
createdTransfer.LuggageCount.ToString(),
|
||||
Setting.BaseUrl,
|
||||
createdTransfer.Id.ToString());
|
||||
|
||||
_logger.Info(message.Message.Text);
|
||||
var messageElement = message.Message;
|
||||
Console.WriteLine(message.Message);
|
||||
var result = await _messageSenderService.SendMessageAsync(messageElement, (int)message.MessageType);
|
||||
await _adminDal.AddEmailMessageAsync(messageElement);
|
||||
_logger.Info("SendEmail result: " + result);
|
||||
}
|
||||
|
||||
return Ok(createdTransfers);
|
||||
transfer.Revenue = _transferBackendService.GetCommission((Guid)transfer.ProductId, (double)transfer.Price, to);
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest("Invalid request");
|
||||
transfer.Revenue = 0;
|
||||
}
|
||||
}
|
||||
|
||||
transfer.TransferStatusType = TransferStatusType.OrderSubmitted;
|
||||
await _adminDal.AddTransferAsync(transfer);
|
||||
}
|
||||
|
||||
// Helper method to find or create user
|
||||
[NonAction]
|
||||
private async Task FindOrCreateUser(string Email)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Helper method to send an email for the transfer
|
||||
[NonAction]
|
||||
private async Task SendTransferEmailAsync(Transfer transfer)
|
||||
{
|
||||
_logger.Info($"Created transfer, sending email...");
|
||||
|
||||
var message = new MessageSenderModel<EmailMessage>
|
||||
{
|
||||
Message = new EmailMessage
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
EmailAddress = TiamConstClient.SystemEmailAddress,
|
||||
Subject = $"[#{transfer.OrderId}][Tour I Am] New transfer in Budapest",
|
||||
ContextId = transfer.Id,
|
||||
ContextType = MessageContextType.Transfer,
|
||||
SenderId = TiamConstClient.SysAccounts["SystemEmailSender"],
|
||||
Text = EmailTemplateHelper.GenerateNewTransferEmail(
|
||||
transfer.FullName,
|
||||
transfer.FromAddress,
|
||||
transfer.ToAddress,
|
||||
transfer.Appointment.ToString(),
|
||||
transfer.FullName,
|
||||
transfer.PassengerCount.ToString(),
|
||||
transfer.LuggageCount.ToString(),
|
||||
Setting.BaseUrl,
|
||||
transfer.Id.ToString())
|
||||
},
|
||||
MessageType = AyCode.Models.Enums.MessageTypesEnum.email
|
||||
};
|
||||
|
||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), transfer.UserId, message.Message.Id, transfer.ContactEmail));
|
||||
|
||||
foreach (var admin in TiamConstClient.SysAdmins)
|
||||
{
|
||||
var adminUser = _adminDal.GetUserById(admin, true);
|
||||
message.Message.Recipients.Add(new EmailRecipient(Guid.NewGuid(), admin, message.Message.Id, adminUser.EmailAddress));
|
||||
}
|
||||
|
||||
var result = await _messageSenderService.SendMessageAsync(message.Message, (int)message.MessageType);
|
||||
await _adminDal.AddEmailMessageAsync(message.Message);
|
||||
|
||||
_logger.Info("SendEmail result: " + result);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
|
|
@ -703,7 +579,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
return result;
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
[NonAction]
|
||||
[SignalR(SignalRTags.GetTransfersByOrderingProductId)]
|
||||
public async Task<List<Transfer>> GetTransfersByProductId(Guid productId)
|
||||
{
|
||||
|
|
@ -758,7 +634,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
public async Task<Transfer?> UpdateTransfer(Transfer transfer)
|
||||
{
|
||||
_logger.Info($"UpdateTransfer called! transferId: {transfer.Id}");
|
||||
|
||||
|
||||
return await _adminDal.UpdateTransferAsync(transfer);
|
||||
}
|
||||
|
||||
|
|
@ -790,7 +666,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
public async Task<Transfer?> RemoveTransfer(Transfer transfer)
|
||||
{
|
||||
_logger.Info($"RemoveTransfer called! transferId: {transfer.Id}");
|
||||
|
||||
|
||||
var result = await _adminDal.RemoveTransferAsync(transfer);
|
||||
return result ? transfer : null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System.ComponentModel.DataAnnotations;
|
||||
using AyCode.Core.Enums;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using TIAM.Resources;
|
||||
|
||||
namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
||||
|
|
@ -13,6 +14,8 @@ namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
|||
public string SenderFullName { get; set; }
|
||||
public Guid SenderId { get; set; }
|
||||
public Guid ContextId { get; set; }
|
||||
public MessageContextType ContextType { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "The subject value should be specified.")]
|
||||
[DataType(DataType.Text)]
|
||||
[Display(Name = ResourceKeys.Subject, ResourceType = typeof(TIAMResources))]
|
||||
|
|
@ -23,11 +26,12 @@ namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
|||
public string Content { get; set; }
|
||||
|
||||
public MessageWizardModel() { }
|
||||
public MessageWizardModel(string receiverEmailAddress, string receiverFullName, Guid contextId, Guid receiverId, string senderEmailAddress, Guid senderId, string subject, string content)
|
||||
public MessageWizardModel(string receiverEmailAddress, string receiverFullName, Guid contextId, MessageContextType contextType, Guid receiverId, string senderEmailAddress, Guid senderId, string subject, string content)
|
||||
{
|
||||
ReceiverEmailAddress = receiverEmailAddress;
|
||||
ReceiverFullName = receiverFullName;
|
||||
ContextId = contextId;
|
||||
ContextType = contextType;
|
||||
ReceiverId = receiverId;
|
||||
SenderEmailAddress = senderEmailAddress;
|
||||
SenderId = senderId;
|
||||
|
|
|
|||
|
|
@ -27,19 +27,17 @@ namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
|||
return new EmailMessage
|
||||
{
|
||||
Id = id,
|
||||
SenderId = obj.SenderId,
|
||||
SenderId = obj.SenderId,
|
||||
ContextId = obj.ContextId,
|
||||
ContextType = obj.ContextType,
|
||||
Subject = obj.Subject,
|
||||
Text = obj.Content,
|
||||
EmailAddress = obj.SenderEmailAddress,
|
||||
Recipients = new List<EmailRecipient> {
|
||||
Recipients = new List<EmailRecipient> {
|
||||
new EmailRecipient(
|
||||
Guid.NewGuid(), obj.ReceiverId, id, obj.ReceiverEmailAddress),
|
||||
new EmailRecipient(
|
||||
Guid.NewGuid(), Guid.Parse("4CBAED43-2465-4D99-84F1-C8BC6B7025F7"), id, "wsdservers@gmail.com")
|
||||
Guid.NewGuid(), obj.ReceiverId, id, obj.ReceiverEmailAddress)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue