From 5dc83b43bb181c28b29876e016d010b2711925bd Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 3 Jun 2024 12:56:17 +0200 Subject: [PATCH 1/2] Transfer fixes --- TIAMSharedUI/Pages/Formula1.razor | 10 ++++++---- TIAMWebApp/Client/Services/UserDataServiceWeb.cs | 10 +++++----- TIAMWebApp/Server/Controllers/PaymentAPIController.cs | 11 ++++++++--- .../Controllers/ServiceProviderAPIController.cs | 6 ++++-- .../Server/Controllers/TransferDataAPIController.cs | 8 +++++--- TIAMWebApp/Server/Controllers/UserAPIController.cs | 8 +++----- 6 files changed, 31 insertions(+), 22 deletions(-) diff --git a/TIAMSharedUI/Pages/Formula1.razor b/TIAMSharedUI/Pages/Formula1.razor index d612027f..84676515 100644 --- a/TIAMSharedUI/Pages/Formula1.razor +++ b/TIAMSharedUI/Pages/Formula1.razor @@ -462,7 +462,8 @@ new HeroSliderItem { orderModel.UserId = user.Id; - orderModel.ProductId = user.Products.FirstOrDefault()?.Id; + if (user.Products != null) + orderModel.ProductId = user.Products.FirstOrDefault()?.Id; } else { @@ -517,7 +518,7 @@ new HeroSliderItem List transferList = new List(); double _transferPrice = 0.0f; if(orderModel.NumberOfPassengers < 5) { - switch (transferList.Count) + switch (OrderDates.Length) { case (1): _transferPrice = 119/2; @@ -529,8 +530,9 @@ new HeroSliderItem _transferPrice = 269 / 6; break; } - }else if (orderModel.NumberOfPassengers > 5 && orderModel.NumberOfPassengers < 8) { - switch (transferList.Count) + } + else if (orderModel.NumberOfPassengers > 5 && orderModel.NumberOfPassengers <= 8) { + switch (OrderDates.Length) { case (1): _transferPrice = 219f /2; diff --git a/TIAMWebApp/Client/Services/UserDataServiceWeb.cs b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs index 77b58f88..0e6b10c0 100644 --- a/TIAMWebApp/Client/Services/UserDataServiceWeb.cs +++ b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs @@ -193,16 +193,16 @@ namespace TIAMWebApp.Client.Services public async Task GetUserByEmailAsync(string email) { - var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserByEmail}"; + var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUserByEmail}/{email}"; _logger.Info("GetUserByEmailAsync url: " + url + ", " + email); //GlobalLogger.Info("GetUserByEmailAsync url: " + url + ", " + email, "GLOBAL_LOGGER"); - var response = await http.PostAsJsonAsync(url, email); - var result = await response.Content.ReadAsStringAsync(); - var user = JsonConvert.DeserializeObject(result); - return user; + var response = (UserModelDto)(await http.GetFromJsonAsync(url,typeof (UserModelDto))); + + //var user = JsonConvert.DeserializeObject(result); + return response; } public async Task GetUserByIdAsync(Guid id) diff --git a/TIAMWebApp/Server/Controllers/PaymentAPIController.cs b/TIAMWebApp/Server/Controllers/PaymentAPIController.cs index bc03bcfe..ab153d89 100644 --- a/TIAMWebApp/Server/Controllers/PaymentAPIController.cs +++ b/TIAMWebApp/Server/Controllers/PaymentAPIController.cs @@ -51,13 +51,18 @@ namespace TIAMWebApp.Server.Controllers [Route(APIUrls.CreatePaymentRouteName)] public async Task CreatePayment([FromBody] JsonElement paymentItem) { + _logger.Detail($"CreatePayment called! {paymentItem.ToString()}"); var transferToPay = JObject.Parse(paymentItem.GetRawText()).ToObject(); + if (transferToPay == null) + { + return("error"); + } if (transferToPay.Price == null) { transferToPay.Price = 1000; } - else return "false"; + var paymentRequest = new SumupPaymentRequest { CheckoutReference = transferToPay.OrderId.ToString(), @@ -69,8 +74,8 @@ namespace TIAMWebApp.Server.Controllers }; var result = await _sumupService.CreateCheckout(paymentRequest); _logger.Detail($"CreatePayment result: {result}"); - var checkoutUrl = result.Id.ToString(); - return checkoutUrl; + var checkoutId = result.Id.ToString(); + return checkoutId; } [AllowAnonymous] diff --git a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs index edc5a013..7a7b4750 100644 --- a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs +++ b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs @@ -83,7 +83,9 @@ namespace TIAMWebApp.Server.Controllers } } } - + [AllowAnonymous] + [HttpPost] + [Route("AddCompany")] [SignalR(SignalRTags.AddCompany)] public async Task AddCompanyAsync(Company company) { @@ -106,7 +108,7 @@ namespace TIAMWebApp.Server.Controllers } //16. - [AllowAnonymous] + [AllowAnonymous] [HttpGet] [Route(APIUrls.GetServiceProvidersRouteName)] [SignalR(SignalRTags.GetCompanies)] diff --git a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs index 2ed97d0c..01687352 100644 --- a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs +++ b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs @@ -249,6 +249,7 @@ namespace TIAMWebApp.Server.Controllers _logger.Info($"Created transfer, send emailMessage!!!"); var message = new MessageSenderModel(); + 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; @@ -277,7 +278,7 @@ namespace TIAMWebApp.Server.Controllers //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); - //_adminDal.AddEmailMessageAsync((TIAM.Entities.Emails.EmailMessage)SerializedMessageSenderModel.Message); + await _adminDal.AddEmailMessageAsync(messageElement); _logger.Info("SendEmail result: " + result); @@ -336,6 +337,7 @@ namespace TIAMWebApp.Server.Controllers _logger.Info($"Created transfer, send emailMessage!!!"); var message = new MessageSenderModel(); message.Message = new EmailMessage(); + message.Message.Id = Guid.NewGuid(); message.MessageType = AyCode.Models.Enums.MessageTypesEnum.email; message.Message.Subject = "[Tour I Am] New transfer in Budapest"; message.Message.ContextId = createdTransfer.Id; @@ -365,7 +367,7 @@ namespace TIAMWebApp.Server.Controllers var messageElement = message.Message; Console.WriteLine(message.Message); var result = await _messageSenderService.SendMessageAsync(messageElement, (int)message.MessageType); - //_adminDal.AddEmailMessageAsync((TIAM.Entities.Emails.EmailMessage)SerializedMessageSenderModel.Message); + await _adminDal.AddEmailMessageAsync(messageElement); _logger.Info("SendEmail result: " + result); } @@ -410,7 +412,7 @@ namespace TIAMWebApp.Server.Controllers [SignalR(SignalRTags.UpdateTransfer)] public async Task UpdateTransfer(Transfer transferToModify) { - _logger.Info($"UpdateTransfer called! + {Request?.ReadFormAsync()}"); + _logger.Info($"UpdateTransfer called! + {transferToModify.Id}"); await _adminDal.UpdateTransferAsync(transferToModify); return transferToModify; diff --git a/TIAMWebApp/Server/Controllers/UserAPIController.cs b/TIAMWebApp/Server/Controllers/UserAPIController.cs index 1e7cb9ac..08fcf84e 100644 --- a/TIAMWebApp/Server/Controllers/UserAPIController.cs +++ b/TIAMWebApp/Server/Controllers/UserAPIController.cs @@ -358,13 +358,11 @@ namespace TIAMWebApp.Server.Controllers } [AllowAnonymous] - [HttpPost] - [Route("GetUserByEmail")] + [HttpGet] + [Route(APIUrls.GetUserByEmailRouteName + "/{email}")] public Task GetUserByEmail(string email) { - _logger.Info($"GetUserByEmail called with email: {email}"); - _logger.Info($@"GetUserByEmail called with email: {email}"); - + _logger.Info($"GetUserByEmail called with email: {email}"); return _userDal.GetUserModelDtoByEmailAsync(email, false); } From 21502e324d3af6518047ca70985da3a8dbd7d35b Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 3 Jun 2024 17:25:09 +0200 Subject: [PATCH 2/2] GetMessage --- TIAM.Database/DataLayers/Admins/AdminDal.cs | 1 + TIAM.Services/SignalRTags.cs | 3 ++ .../User/SysAdmins/ManageTransfers.razor | 5 +++ .../Pages/User/SysAdmins/ManageUsers.razor | 2 +- .../Components/Grids/MessageDetailGrid.cs | 17 ++++++++ .../Shared/Components/Grids/MessageGrid.cs | 32 ++++++++++++++ .../Controllers/MessageAPIController.cs | 43 +++++++++++++++++-- TIAMWebApp/Server/Program.cs | 1 + .../Server/Services/DevAdminSignalRhub.cs | 5 ++- .../Interfaces/IClientNoticeSenderService.cs | 4 ++ TIAMWebApp/Shared/Models/APIUrls.cs | 4 ++ .../Services/ClientNoticeSenderService.cs | 10 +++++ 12 files changed, 121 insertions(+), 6 deletions(-) create mode 100644 TIAMSharedUI/Shared/Components/Grids/MessageDetailGrid.cs create mode 100644 TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index d36256e2..61b7fea7 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -200,6 +200,7 @@ namespace TIAM.Database.DataLayers.Admins public Task> GetEmailMessagesBySenderEmailAddressAsync(string emailAddress) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderEmailAddress(emailAddress).ToList()); public Task> GetEmailMessagesAsync(Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(userId, userProductMappingId).ToList()); public Task> GetEmailMessagesAsync(Guid contextId, Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(contextId, userId, userProductMappingId).ToList()); + public Task> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages().ToList()); public Task AddEmailMessageAsync(EmailMessage emailMessage) diff --git a/TIAM.Services/SignalRTags.cs b/TIAM.Services/SignalRTags.cs index d3e47a7c..398b13a0 100644 --- a/TIAM.Services/SignalRTags.cs +++ b/TIAM.Services/SignalRTags.cs @@ -50,4 +50,7 @@ public class SignalRTags : AcSignalRTags public const int CreateCar = 51; public const int UpdateCar = 52; public const int DeleteCar = 53; + + public const int GetMessagesByContextId = 60; + public const int GetAllMessages = 61; } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor index dad07555..08540145 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor @@ -149,6 +149,11 @@ + + + + + diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor index 7835f075..47a17fed 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor @@ -97,7 +97,7 @@ - + diff --git a/TIAMSharedUI/Shared/Components/Grids/MessageDetailGrid.cs b/TIAMSharedUI/Shared/Components/Grids/MessageDetailGrid.cs new file mode 100644 index 00000000..c179659e --- /dev/null +++ b/TIAMSharedUI/Shared/Components/Grids/MessageDetailGrid.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Components; + +namespace TIAMSharedUI.Shared.Components.Grids; + +public class MessageDetailGrid : MessageGrid +{ + protected override Task SetParametersAsyncCore(ParameterView parameters) + { + var isFirst = IsFirstInitializeParameters; + + return base.SetParametersAsyncCore(parameters); + + if (isFirst) + { + } + } +} \ No newline at end of file diff --git a/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs b/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs new file mode 100644 index 00000000..0163ff33 --- /dev/null +++ b/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs @@ -0,0 +1,32 @@ +using Microsoft.AspNetCore.Components; +using TIAM.Entities.Addresses; +using TIAM.Entities.Emails; +using TIAM.Entities.Transfers; +using TIAM.Services; + +namespace TIAMSharedUI.Shared.Components.Grids; + +public class MessageGrid : TiamGrid +{ + public MessageGrid() : base() + { + GetAllMessageTag = SignalRTags.GetMessagesByContextId; + //AddMessageTag = SignalRTags.AddAddress; + //UpdateMessageTag = SignalRTags.UpdateAddress; + //RemoveMessageTag = SignalRTags.RemoveAddress; - nem törlünk címet - J. + } + + protected override Task SetParametersAsyncCore(ParameterView parameters) + { + if (!IsFirstInitializeParameters) + { + //ShowFilterRow = true; + //ShowGroupPanel = true; + //AllowSort = false; + + //etc... + } + + return base.SetParametersAsyncCore(parameters); + } +} \ No newline at end of file diff --git a/TIAMWebApp/Server/Controllers/MessageAPIController.cs b/TIAMWebApp/Server/Controllers/MessageAPIController.cs index c7506c16..c8a6d0db 100644 --- a/TIAMWebApp/Server/Controllers/MessageAPIController.cs +++ b/TIAMWebApp/Server/Controllers/MessageAPIController.cs @@ -8,6 +8,10 @@ using TIAMWebApp.Shared.Application.Models.ClientSide.Messages; using AyCode.Models.Enums; using TIAM.Database.DataLayers.Admins; using TIAM.Entities.Emails; +using AyCode.Services.SignalRs; +using TIAM.Services; +using AyCode.Core.Loggers; +using AyCode.Core.Extensions; namespace TIAMWebApp.Server.Controllers { @@ -17,17 +21,18 @@ namespace TIAMWebApp.Server.Controllers public class MessageAPIController : ControllerBase { private AdminDal _adminDal; + private readonly TIAM.Core.Loggers.ILogger _logger; private readonly IConfiguration _configuration; private readonly IWebHostEnvironment _webHostEnvironment; private IMessageSenderService _messageSenderService; - private readonly ILogger _logger; + - public MessageAPIController(ILogger logger, IConfiguration configuration, IWebHostEnvironment webHostEnvironment, IMessageSenderService messageSenderService, AdminDal adminDal) + public MessageAPIController(IEnumerable logWriters, IConfiguration configuration, IWebHostEnvironment webHostEnvironment, IMessageSenderService messageSenderService, AdminDal adminDal) { _adminDal = adminDal; - _logger = logger; + _logger = new TIAM.Core.Loggers.Logger(logWriters.ToArray()); _configuration = configuration; _webHostEnvironment = webHostEnvironment; @@ -71,5 +76,37 @@ namespace TIAMWebApp.Server.Controllers } + [AllowAnonymous] + [HttpGet] + [Route(APIUrls.GetMessagesByContextIdRouteName + "/{contextId}")] + [Tags("Finished", "Messages")] + [SignalR(SignalRTags.GetMessagesByContextId)] + public async Task GetMessagesByContextId(Guid contextId) + { + _logger.Info($@"GetMessagessByContextId called with ownerId: {contextId}"); + + + var messages = _adminDal.GetEmailMessagesByContextIdAsync(contextId); + //put Company id and name into a dictionary + + return messages.ToJson(); + } + + [AllowAnonymous] + [HttpGet] + [Route(APIUrls.GetAllMessagesRouteName)] + [Tags("Finished", "Messages")] + [SignalR(SignalRTags.GetAllMessages)] + public async Task GetAllMessages() + { + _logger.Info($@"GetMessages called"); + + + var messages = await _adminDal.GetAllEmailMessagesAsync(); + //put Company id and name into a dictionary + + return messages.ToJson(); + } + } } \ No newline at end of file diff --git a/TIAMWebApp/Server/Program.cs b/TIAMWebApp/Server/Program.cs index adeccf3f..353fa1f1 100644 --- a/TIAMWebApp/Server/Program.cs +++ b/TIAMWebApp/Server/Program.cs @@ -39,6 +39,7 @@ builder.Services.AddScoped(); builder.Services.AddSingleton(); builder.Services.AddScoped(); builder.Services.AddScoped(); +builder.Services.AddScoped(); builder.Services.AddSignalR(options => options.MaximumReceiveMessageSize = 128 * 1024);//.AddMessagePackProtocol(options => options.SerializerOptions = MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData)); diff --git a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs index be43655d..cee80165 100644 --- a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs +++ b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs @@ -79,16 +79,17 @@ public class DevAdminSignalRHub : Hub, IAcSignalRHubServe private readonly ServiceProviderAPIController _serviceProviderApiController; private readonly TransferDataAPIController _transferDataApiController; - public DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController serviceProviderApiController, TransferDataAPIController transferDataApiController, IEnumerable logWriters) + public DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController serviceProviderApiController, TransferDataAPIController transferDataApiController, IEnumerable logWriters, MessageAPIController messageApiController) { _adminDal = adminDal; _serviceProviderApiController = serviceProviderApiController; - _transferDataApiController = transferDataApiController; + _transferDataApiController = transferDataApiController; _logger = new(logWriters.ToArray()); _dynamicMethodCallModels.Add(new DynamicMethodCallModel(serviceProviderApiController)); _dynamicMethodCallModels.Add(new DynamicMethodCallModel(transferDataApiController)); + _dynamicMethodCallModels.Add(new DynamicMethodCallModel(messageApiController)); } diff --git a/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs b/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs index bc4ff2d5..6b60a393 100644 --- a/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs +++ b/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs @@ -4,7 +4,11 @@ namespace TIAMWebApp.Shared.Application.Interfaces { public interface IClientNoticeSenderService { + + public Task> GetAllMessagesAsync(); + public Task> GetMessagesByContextIdAsync(); public Task SendNoticeAsync(TNotice message, int messageType) where TNotice : EmailMessage; + } } diff --git a/TIAMWebApp/Shared/Models/APIUrls.cs b/TIAMWebApp/Shared/Models/APIUrls.cs index f850dbc7..33a8ac34 100644 --- a/TIAMWebApp/Shared/Models/APIUrls.cs +++ b/TIAMWebApp/Shared/Models/APIUrls.cs @@ -188,6 +188,10 @@ namespace TIAMWebApp.Shared.Application.Models //email public const string SendEmailRouteName = "SendEmail"; public const string SendEmail = MessageAPI+SendEmailRouteName; + public const string GetAllMessagesRouteName = "GetAllMessages"; + public const string GetAllMessages = MessageAPI+GetAllMessagesRouteName; + public const string GetMessagesByContextIdRouteName = "GetMessagesByContextId"; + public const string GetMessagesByContextId = MessageAPI+GetMessagesByContextIdRouteName; //payment public const string CreatePaymentRouteName = "CreatePayment"; diff --git a/TIAMWebApp/Shared/Services/ClientNoticeSenderService.cs b/TIAMWebApp/Shared/Services/ClientNoticeSenderService.cs index a7702f45..ffd93343 100644 --- a/TIAMWebApp/Shared/Services/ClientNoticeSenderService.cs +++ b/TIAMWebApp/Shared/Services/ClientNoticeSenderService.cs @@ -17,6 +17,16 @@ namespace TIAMWebApp.Shared.Application.Services this.http = http; } + public async Task> GetAllMessagesAsync() + { + throw new NotImplementedException(); + } + + public async Task> GetMessagesByContextIdAsync() + { + throw new NotImplementedException(); + } + public async Task SendNoticeAsync(TNotice message, int messageType) where TNotice : TIAM.Entities.Emails.EmailMessage { var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendEmail}";