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/Formula1.razor b/TIAMSharedUI/Pages/Formula1.razor index 67292617..df7ba6c9 100644 --- a/TIAMSharedUI/Pages/Formula1.razor +++ b/TIAMSharedUI/Pages/Formula1.razor @@ -454,7 +454,8 @@ new HeroSliderItem { orderModel.UserId = user.Id; - orderModel.ProductId = user.Products.FirstOrDefault()?.Id; + if (user.Products != null) + orderModel.ProductId = user.Products.FirstOrDefault()?.Id; } else { @@ -509,7 +510,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; @@ -521,8 +522,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/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/Client/Services/UserDataServiceWeb.cs b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs index 705c7a18..e5ad0bc8 100644 --- a/TIAMWebApp/Client/Services/UserDataServiceWeb.cs +++ b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs @@ -186,16 +186,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/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/Controllers/PaymentAPIController.cs b/TIAMWebApp/Server/Controllers/PaymentAPIController.cs index 4c6946f5..075f7a58 100644 --- a/TIAMWebApp/Server/Controllers/PaymentAPIController.cs +++ b/TIAMWebApp/Server/Controllers/PaymentAPIController.cs @@ -42,13 +42,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(), @@ -60,8 +65,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/TransferDataAPIController.cs b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs index d88efd4a..433356f9 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 033a432d..2fc8cb90 100644 --- a/TIAMWebApp/Server/Controllers/UserAPIController.cs +++ b/TIAMWebApp/Server/Controllers/UserAPIController.cs @@ -356,13 +356,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); } 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 bb00e622..289512f3 100644 --- a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs +++ b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs @@ -82,7 +82,7 @@ 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; @@ -92,7 +92,7 @@ public class DevAdminSignalRHub : Hub, IAcSignalRHubServe _dynamicMethodCallModels.Add(new DynamicMethodCallModel(serviceProviderApiController)); _dynamicMethodCallModels.Add(new DynamicMethodCallModel(transferDataApiController)); - _dynamicMethodCallModels.Add(new DynamicMethodCallModel(typeof(MessageAPIController))); + _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}";