diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index 19dad27b..6f40cba5 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -39,8 +39,8 @@ namespace TIAM.Database.DataLayers.Admins #region Transfer - public Task> GetTransfersAsync() => SessionAsync(ctx => ctx.GetTransfers().ToList()); - public Task GetTransfersJsonAsync() => SessionAsync(ctx => ctx.GetTransfers().ToJson()); + public Task> GetTransfersAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList()); + public Task GetTransfersJsonAsync() => SessionAsync(ctx => ctx.GetTransfers().OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToJson()); public Transfer? GetTransferById(Guid transferId) => Session(ctx => ctx.GetTransferById(transferId)); public string? GetTransferJsonById(Guid transferId) => Session(ctx => ctx.GetTransferById(transferId)?.ToJson()); diff --git a/TIAMSharedUI/Pages/User/SysAdmins/Grid_MasterDetail_NestedGrid_DetailContent.razor b/TIAMSharedUI/Pages/User/SysAdmins/Grid_MasterDetail_NestedGrid_DetailContent.razor index 3f911d52..d846a529 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/Grid_MasterDetail_NestedGrid_DetailContent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/Grid_MasterDetail_NestedGrid_DetailContent.razor @@ -6,7 +6,7 @@ @using TIAM.Core.Loggers @using AyCode.Core.Loggers @using AyCode.Services.Loggers -@inject IUserDataService NwindDataService +@inject IUserDataService UserDataService @inject IEnumerable LogWriters @@ -42,10 +42,10 @@ [Parameter] public Transfer Customer { get; set; } - private ILogger _logger; + private LoggerClient _logger; List DetailGridData { get; set; } - public UserModelDtoDetail UserInfo; + public UserModelDtoDetail? UserModelDtoDetail; public string PhoneNumber = ""; public string EmailAddress = ""; @@ -53,27 +53,28 @@ { _logger = new LoggerClient(LogWriters.ToArray()); - UserInfo = await NwindDataService.GetUserDetailByIdAsync(Customer.UserId); - PhoneNumber = UserInfo.UserDto.PhoneNumber; - EmailAddress = UserInfo.UserDto.EmailAddress; + UserModelDtoDetail = await UserDataService.GetUserDetailByIdAsync(Customer.UserId); + + if (UserModelDtoDetail == null) return; + + PhoneNumber = UserModelDtoDetail.UserDto.PhoneNumber; + EmailAddress = UserModelDtoDetail.UserDto.EmailAddress; DetailGridData = Customer.TransferToDrivers; + _logger.Info($"DetailGridData: {DetailGridData.Count}"); } void CustomizeEditModel(GridCustomizeEditModelEventArgs e) { - if (e.IsNew) - { - var newDriver = (TransferToDriver)e.EditModel; - newDriver.Id = Guid.NewGuid(); - newDriver.CarId = Guid.Empty; - newDriver.LicencePlate = ""; - newDriver.Car = new Car(); - newDriver.Price = 0; - newDriver.TransferId = Customer.Id; + if (!e.IsNew) return; - - } + var newDriver = (TransferToDriver)e.EditModel; + newDriver.Id = Guid.NewGuid(); + newDriver.CarId = Guid.Empty; + newDriver.LicencePlate = ""; + newDriver.Car = new Car(); + newDriver.Price = 0; + newDriver.TransferId = Customer.Id; } async Task EditModelSaving(GridEditModelSavingEventArgs e) @@ -81,26 +82,22 @@ if (e.IsNew) //add new orderData to orderData array _logger.Info("New orderData added"); - //await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel); else _logger.Info("orderData updated"); - //await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel); - await UpdateDataAsync(); } + async Task DataItemDeleting(GridDataItemDeletingEventArgs e) { - //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); //remove orderData from orderData array _logger.Info("orderData deleted"); //await UpdateDataAsync(); } + async Task UpdateDataAsync() { - //DataSource = await NwindDataService.GetEmployeesEditableAsync(); //refresh grid _logger.Info("orderData grid refreshed"); } - } \ No newline at end of file diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor index 999845f1..1b42f973 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor @@ -30,7 +30,7 @@ Click="ColumnChooserButton_Click" /> _logger; IGrid Grid { get; set; } - object? ProductData { get; set; } + private List ProductWizardModels { get; set; } = []; public void ColumnChooserButton_Click() { Grid.ShowColumnChooser(); } - public ProductWizardModel myModel = new ProductWizardModel(); + //public ProductWizardModel productWizardModel = new(); - public MessageWizardModel messageWizardModel = new MessageWizardModel(); + public MessageWizardModel MessageWizardModel = new(); [Inject] - public IServiceProviderDataService serviceProviderDataService { get; set; } + public IServiceProviderDataService ServiceProviderDataService { get; set; } - object? ProductArray = new ProductWizardModel[] - { - new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""), - new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""), - new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""), - }; + //List _productArray = + //[ + // new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""), + // new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""), + // new ProductWizardModel(new TiamServiceProvider(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, "") + //]; - object? ProductDataFromDb = new ProductWizardModel[] { }; + private readonly List _productWizardModels = []; void CancelCreateClick() { @@ -53,12 +53,12 @@ namespace TIAMSharedUI.Pages.User.SysAdmins void EulaPopupClosed() { //cancel clicked - } + void EulaPopupClosing(PopupClosingEventArgs args) { //myModel = new TransferWizardModel(); - messageWizardModel = new MessageWizardModel(); + MessageWizardModel = new MessageWizardModel(); } //----------------------------------------------------------------------------------- @@ -79,16 +79,13 @@ namespace TIAMSharedUI.Pages.User.SysAdmins void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) { - if (e.IsNew) - { - var newProduct = (ProductWizardModel)e.EditModel; - newProduct.Id = Guid.NewGuid(); - newProduct.Name = "ghjgkg hkgh ghjkghgkjgh"; - newProduct.Description = "ghjgkg hkgh ghjkghgkjgh"; - newProduct.ProductType = ProductType.NotDefined; - + if (!e.IsNew) return; - } + var newProduct = (ProductWizardModel)e.EditModel; + newProduct.Id = Guid.NewGuid(); + newProduct.Name = "ghjgkg hkgh ghjkghgkjgh"; + newProduct.Description = "ghjgkg hkgh ghjkghgkjgh"; + newProduct.ProductType = ProductType.NotDefined; } void Grid_CustomizeElement(GridCustomizeElementEventArgs e) @@ -98,12 +95,12 @@ namespace TIAMSharedUI.Pages.User.SysAdmins async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) { + var productWizardModel = (ProductWizardModel)e.EditModel; + if (e.IsNew) { - //add new row to grid - myModel = (ProductWizardModel)e.EditModel; //add mymodel to transferData array - ProductData = ((ProductWizardModel[])ProductData).Append(myModel); + ProductWizardModels.Add(productWizardModel); //add new orderData to orderData array _logger.Info("New orderData added"); @@ -116,28 +113,24 @@ namespace TIAMSharedUI.Pages.User.SysAdmins //modify transferData where transferData.Id == e.EditModel.Id //get transfer from TransferData by Id - foreach (var productToModify in (ProductWizardModel[])ProductData) + foreach (var productToModify in ProductWizardModels) { - myModel = (ProductWizardModel)e.EditModel; + if (productToModify.Id != productWizardModel.Id) continue; - if (productToModify.Id == myModel.Id) - { - myModel = (ProductWizardModel)e.EditModel; - productToModify.ProductType = myModel.ProductType; - productToModify.Name = myModel.Name; - productToModify.Description = myModel.Description; - productToModify.Price = myModel.Price; - productToModify.JsonDetails = myModel.JsonDetails; - - } + productToModify.ProductType = productWizardModel.ProductType; + productToModify.Name = productWizardModel.Name; + productToModify.Description = productWizardModel.Description; + productToModify.Price = productWizardModel.Price; + productToModify.JsonDetails = productWizardModel.JsonDetails; } - } //await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel); - + + //TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J. await UpdateDataAsync(); } + async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) { //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); @@ -145,10 +138,12 @@ namespace TIAMSharedUI.Pages.User.SysAdmins _logger.Info("orderData deleted"); //await UpdateDataAsync(); } + async Task UpdateDataAsync() { - //DataSource = await NwindDataService.GetEmployeesEditableAsync(); //refresh grid + await FillGridDataSource(); + _logger.Info("orderData grid refreshed"); } @@ -158,18 +153,21 @@ namespace TIAMSharedUI.Pages.User.SysAdmins _logger = new LoggerClient(LogWriters.ToArray()); - var a = await serviceProviderDataService.GetProductsForServiceProviderAsync(Guid.Parse("3587F169-683C-4EEE-BCB5-E8D57F8C6DCE")); - _logger.Info($"ProductDataFromDb: {((ProductWizardModel[])ProductDataFromDb).Length}"); - - foreach (var item in a) - { - //add new transferwizardmodel to transferData array - ProductDataFromDb = ((ProductWizardModel[])ProductDataFromDb).Append( - new ProductWizardModel(item.ServiceProvider, item.ProductType, item.Name, item.Description, item.Price, item.JsonDetails)); - - _logger.Info($"TransferDataFromDb: {item.Name}"); - } + await FillGridDataSource(); } + private async Task FillGridDataSource() + { + var productForServiceProcvider = await ServiceProviderDataService.GetProductsForServiceProviderAsync(Guid.Parse("3587F169-683C-4EEE-BCB5-E8D57F8C6DCE")); + + foreach (var item in productForServiceProcvider) + { + _productWizardModels.Add(new ProductWizardModel(item.ServiceProvider, item.ProductType, item.Name, item.Description, item.Price, item.JsonDetails)); + + _logger.DetailConditional($"_productWizardModels add: {item.Name}"); + } + + _logger.Info($"_productWizardModels: {_productWizardModels.Count}"); + } } } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor index ab63e4f6..16e775bc 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor @@ -41,9 +41,9 @@ Closing="EulaPopupClosing" Closed="EulaPopupClosed"> - @@ -75,7 +75,7 @@
@@ -199,15 +199,15 @@ @code { - private ILogger _logger; + private LoggerClient _logger; - public Transfer myModel = new Transfer(); + //public Transfer myModel = new Transfer(); - public List TransferData { get; set; } + public List TransferDataList { get; set; } bool PopupVisible { get; set; } - public List ignoreList = new List - { + public List IgnoreList = + [ "ReceiverEmailAddress", "ReceiverFullName", "ReceiverId", @@ -217,28 +217,33 @@ "ContextId" }; - public List? Statuses { get; set; } + public List Statuses { get; set; } = + [ + new(Convert.ToInt16(TransferStatusType.OrderSubmitted), "Order submitted"), + new(Convert.ToInt16(TransferStatusType.OrderConfirmed), "Order confirmed"), + new(Convert.ToInt16(TransferStatusType.AssignedToDriver), "Assigned to driver"), + new(Convert.ToInt16(TransferStatusType.DriverConfirmed), "Driver confirmed"), + new(Convert.ToInt16(TransferStatusType.DriverEnRoute), "Driver enroute"), + new(Convert.ToInt16(TransferStatusType.PassengerPickup), "Passenger in car"), + new(Convert.ToInt16(TransferStatusType.Finished), "Finished"), + new(Convert.ToInt16(TransferStatusType.UserCanceled), "User cancelled"), + new(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled") + ]; - public MessageWizardModel messageWizardModel = new MessageWizardModel(); + public MessageWizardModel MessageWizardModel = new(); - public List? AppoinmentData { get; set; } + public List AppointmentModels { get; set; } DateTime StartDate { get; set; } = DateTime.Today; - DxSchedulerDataStorage DataStorage = new DxSchedulerDataStorage(); + DxSchedulerDataStorage _dataStorage = new(); - void SendMail(Transfer Item) + void SendMail(Transfer item) { - _logger.Info($"Sending mail to {Item.ContactEmail}, {Item.Id}"); + _logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}"); - Guid? nullableGuid = Item.Id; - if (nullableGuid.HasValue) - { - Guid nonNullableGuid = nullableGuid.Value; - messageWizardModel.ContextId = nonNullableGuid; - } - messageWizardModel.ReceiverEmailAddress = Item.ContactEmail; - messageWizardModel.ReceiverFullName = Item.FullName; + MessageWizardModel.ContextId = item.Id; + MessageWizardModel.SenderFullName = item.FullName; //Miért nullable a FullName? - J. PopupVisible = true; } @@ -255,16 +260,16 @@ void EulaPopupClosing(PopupClosingEventArgs args) { //myModel = new TransferWizardModel(); - messageWizardModel = new MessageWizardModel(); + MessageWizardModel = new MessageWizardModel(); } //----------------------------------------------------------------------------------- - public async Task SubmitForm(object Result) + public async Task SubmitForm(object result) { - var messageModel = Result as MessageWizardModel; - messageModel.ContextId = messageWizardModel.ContextId; + var messageModel = result as MessageWizardModel; + messageModel.ContextId = MessageWizardModel.ContextId; //messageModel.SenderId = sessionService.User.UserId; string FormatEmailContent() @@ -281,9 +286,9 @@ messageModel.Content = FormatEmailContent(); _logger.Info(messageModel.Content); - var email = await wizardProcessor.ProcessWizardAsync(Result.GetType(), messageModel); + var email = await wizardProcessor.ProcessWizardAsync(result.GetType(), messageModel); - _logger.Info($"Submitted nested form: {Result.GetType().FullName}"); + _logger.Info($"Submitted nested form: {result.GetType().FullName}"); } void Grid_CustomizeElement(GridCustomizeElementEventArgs e) @@ -313,19 +318,18 @@ void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) { - if (e.IsNew) - { - var transferEditModel = (Transfer)e.EditModel; //TODO not valid cast - transferEditModel.Id = Guid.NewGuid(); - transferEditModel.ToAddress = "Where to?"; - transferEditModel.FromAddress = "From where?"; - transferEditModel.Appointment = DateTime.UtcNow.AddDays(3); - transferEditModel.PassengerCount = 1; - transferEditModel.FirstName = "John"; - transferEditModel.LastName = "Doe"; - transferEditModel.ContactPhone = "+00000000000"; - transferEditModel.ContactEmail = "your@email.address"; - } + if (!e.IsNew) return; + + var transferEditModel = (Transfer)e.EditModel; //TODO not valid cast + transferEditModel.Id = Guid.NewGuid(); + transferEditModel.ToAddress = "Where to?"; + transferEditModel.FromAddress = "From where?"; + transferEditModel.Appointment = DateTime.UtcNow.AddDays(3); + transferEditModel.PassengerCount = 1; + transferEditModel.FirstName = "John"; + transferEditModel.LastName = "Doe"; + transferEditModel.ContactPhone = "+00000000000"; + transferEditModel.ContactEmail = "your@email.address"; } async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) @@ -355,9 +359,14 @@ // //transferToModify.Driver = myModel.Driver; // } // } + if (success) + { + //TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J. await UpdateDataAsync(); + } } + async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) { //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); @@ -365,10 +374,10 @@ _logger.Info("orderData deleted"); //await UpdateDataAsync(); } + async Task UpdateDataAsync() { - //refresh grid - TransferData = await transferDataService.GetTransfersAsync(); + TransferDataList = await transferDataService.GetTransfersAsync(); _logger.Info("orderData grid refreshed"); } @@ -376,21 +385,10 @@ { _logger = new LoggerClient(LogWriters.ToArray()); - Statuses = new List - { - new TransferStatusModel(Convert.ToInt16(TransferStatusType.OrderSubmitted), "Order submitted"), - new TransferStatusModel(Convert.ToInt16(TransferStatusType.OrderConfirmed), "Order confirmed"), - new TransferStatusModel(Convert.ToInt16(TransferStatusType.AssignedToDriver), "Assigned to driver"), - new TransferStatusModel(Convert.ToInt16(TransferStatusType.DriverConfirmed), "Driver confirmed"), - new TransferStatusModel(Convert.ToInt16(TransferStatusType.DriverEnRoute), "Driver enroute"), - new TransferStatusModel(Convert.ToInt16(TransferStatusType.PassengerPickup), "Passenger in car"), - new TransferStatusModel(Convert.ToInt16(TransferStatusType.Finished), "Finished"), - new TransferStatusModel(Convert.ToInt16(TransferStatusType.UserCanceled), "User cancelled"), - new TransferStatusModel(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled") - }; - TransferData = (await transferDataService.GetTransfersAsync()).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList(); - AppoinmentData = new List(); - foreach (var transfer in TransferData) + TransferDataList = await transferDataService.GetTransfersAsync(); + AppointmentModels = new List(TransferDataList.Count); + + foreach (var transfer in TransferDataList) { // var bnm = DataStorage.CreateAppointmentItem(); // bnm.Start = transfer.Appointment; @@ -398,11 +396,12 @@ // bnm.Location = transfer.FromAddress; // bnm.Subject = "Simple transfer"; - AppoinmentData.Add(new AppointmentModel { StartDate = transfer.Appointment, EndDate=transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" }); + AppointmentModels.Add(new AppointmentModel { StartDate = transfer.Appointment, EndDate=transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" }); } - DataStorage = new DxSchedulerDataStorage(); - DataStorage.AppointmentMappings = new DxSchedulerAppointmentMappings() + _dataStorage = new DxSchedulerDataStorage + { + AppointmentMappings = new DxSchedulerAppointmentMappings() { Type = "AppointmentType", Start = "StartDate", @@ -414,12 +413,13 @@ LabelId = "Label", StatusId = "Status", RecurrenceInfo = "Recurrence" - }; - DataStorage.AppointmentsSource = AppoinmentData; + }, + + AppointmentsSource = AppointmentModels + }; base.OnInitialized(); - } void ColumnChooserButton_Click() @@ -441,13 +441,12 @@ void AutoCollapseDetailRow_Changed(bool newValue) { AutoCollapseDetailRow = newValue; - if (newValue) - { - Grid2.BeginUpdate(); - Grid2.CollapseAllDetailRows(); - Grid2.ExpandDetailRow(0); - Grid2.EndUpdate(); - } + if (!newValue) return; + + Grid2.BeginUpdate(); + Grid2.CollapseAllDetailRows(); + Grid2.ExpandDetailRow(0); + Grid2.EndUpdate(); } } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor index ef9d3b2f..3aa1fb61 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor @@ -22,10 +22,10 @@ @using TIAM.Core.Loggers @layout AdminLayout @inject IEnumerable LogWriters -@inject IStringLocalizer localizer -@inject ISessionService sessionService -@inject IWizardProcessor wizardProcessor -@inject IUserDataService userDataService +@inject IStringLocalizer Localizer +@inject ISessionService SessionService +@inject IWizardProcessor WizardProcessor +@inject IUserDataService UserDataService Transfers
@@ -43,9 +43,9 @@ Closing="EulaPopupClosing" Closed="EulaPopupClosed"> - @@ -99,36 +99,36 @@ var keyField = context.Value; var keyItem = (UserModelDtoDetail)context.DataItem; - string buttonText = "Contact"; + var buttonText = "Contact"; } - + @{ var transfer2 = (UserModelDtoDetail)EditFormContext.EditModel; } - + @EditFormContext.GetEditor("UserDto.EmailAddress") - + @EditFormContext.GetEditor("UserDto.EmailAddress") - + @EditFormContext.GetEditor("UserDto.EmailConfirmed") - + @EditFormContext.GetEditor("UserDto.PhoneNumber") - + @EditFormContext.GetEditor("Profile.FirstName") - + @EditFormContext.GetEditor("Profile.LastName") @@ -152,68 +152,68 @@
@code { - private ILogger _logger; - public UserModelDtoDetail myModel = new UserModelDtoDetail(); + private LoggerClient _logger; + //public UserModelDtoDetail UserModelDtoDetail = new(); - public List? UserData { get; set; } + public List UserData { get; set; } bool PopupVisible { get; set; } - IGrid? Grid { get; set; } - object? MasterGridData { get; set; } + IGrid Grid { get; set; } + //object? MasterGridData { get; set; } bool AutoCollapseDetailRow { get; set; } - public List ignoreList = new List - { + public List IgnoreList = + [ "ReceiverEmailAddress", - "ReceiverId", - "SenderEmailAddress", - "SenderId", - "ContextId" - }; + "ReceiverId", + "SenderEmailAddress", + "SenderId", + "ContextId" + ]; - public MessageWizardModel messageWizardModel = new MessageWizardModel(); + public MessageWizardModel MessageWizardModel = new MessageWizardModel(); - - - async void SendMail(UserModelDtoDetail Item) + async void SendMail(UserModelDtoDetail item) { - var user = await userDataService.GetUserDetailByIdAsync(Item.Id); + var user = await UserDataService.GetUserDetailByIdAsync(item.Id); _logger.Info($"Sending mail to {user.UserDto.EmailAddress}"); - messageWizardModel.ReceiverId = user.Id; - messageWizardModel.ReceiverEmailAddress = user.UserDto.EmailAddress; - messageWizardModel.SenderId = sessionService.User.UserId; - messageWizardModel.SenderEmailAddress = sessionService.User.Email; - _logger.Info($"Sending mail to {messageWizardModel.ReceiverEmailAddress} from {messageWizardModel.SenderId}"); + MessageWizardModel.ReceiverId = user.Id; + MessageWizardModel.ReceiverEmailAddress = user.UserDto.EmailAddress; + MessageWizardModel.SenderId = SessionService.User.UserId; + MessageWizardModel.SenderEmailAddress = SessionService.User.Email; + + _logger.Info($"Sending mail to {MessageWizardModel.ReceiverEmailAddress} from {MessageWizardModel.SenderId}"); + PopupVisible = true; } void CancelCreateClick() { - PopupVisible = false; } + void EulaPopupClosed() { //cancel clicked - } + void EulaPopupClosing(PopupClosingEventArgs args) { //myModel = new TransferWizardModel(); - messageWizardModel = new MessageWizardModel(); + MessageWizardModel = new MessageWizardModel(); } //----------------------------------------------------------------------------------- - public async Task SubmitForm(object Result) + public async Task SubmitForm(object result) { - var email = await wizardProcessor.ProcessWizardAsync(Result.GetType(), Result); + var email = await WizardProcessor.ProcessWizardAsync(result.GetType(), result); - _logger.Info($"Submitted nested form: {Result.GetType().FullName}"); + _logger.Info($"Submitted nested form: {result.GetType().FullName}"); } void Grid_CustomizeElement(GridCustomizeElementEventArgs e) @@ -222,7 +222,7 @@ { e.CssClass = "bg-alt"; } - if (e.ElementType == GridElementType.HeaderCell) + else if (e.ElementType == GridElementType.HeaderCell) { e.Style = "background-color: rgba(0, 0, 0, 0.08); font-style=bold"; @@ -232,50 +232,54 @@ void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) { - if (e.IsNew) + if (!e.IsNew) return; + + var userEditModel = (UserModelDtoDetail)e.EditModel; //TODO not valid cast + userEditModel.Id = Guid.NewGuid(); + + userEditModel.UserDto = new UserDtoDetail { - var userEditModel = (UserModelDtoDetail)e.EditModel; //TODO not valid cast - userEditModel.Id = Guid.NewGuid(); + AffiliateId = Guid.NewGuid(), + EmailAddress = "", + PhoneNumber = "" + }; - userEditModel.UserDto = new UserDtoDetail(); - userEditModel.UserDto.AffiliateId = Guid.NewGuid(); - userEditModel.UserDto.EmailAddress = ""; - userEditModel.UserDto.PhoneNumber = ""; - userEditModel.Profile = new ProfileDto(); - userEditModel.Profile.Name = "New user"; + userEditModel.Profile = new ProfileDto + { + Name = "New user" + }; - userEditModel.Products = new List(); - - userEditModel.ServiceProviders = new List(); - - userEditModel.UserProductMappings = new List(); - } + userEditModel.Products = []; + userEditModel.ServiceProviders = []; + userEditModel.UserProductMappings = []; } async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) { + var userModelDtoDetail = ((UserModelDtoDetail)e.EditModel); + if (e.IsNew) { //add new orderData to orderData array - RegistrationModel registration = new RegistrationModel(); + var registration = new RegistrationModel(); //TODO: Refractor to userDataService - Random random = new Random(); - string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; - string password = new string(Enumerable.Repeat(chars, 10) + + var random = new Random(); + const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; + var password = new string(Enumerable.Repeat(chars, 10) .Select(s => s[random.Next(s.Length)]).ToArray()); - registration.Email = ((UserModelDtoDetail)e.EditModel).UserDto.EmailAddress; - registration.PhoneNumber = ((UserModelDtoDetail)e.EditModel).UserDto.PhoneNumber; + registration.Email = userModelDtoDetail.UserDto.EmailAddress; + registration.PhoneNumber = userModelDtoDetail.UserDto.PhoneNumber; registration.Password = password; registration.ReferralId = null; - - await userDataService.CreateGuestUser(registration); + await UserDataService.CreateGuestUser(registration); _logger.Info("New user created added"); } else { - _logger.Info("orderData updated at id " + ((UserModelDtoDetail)e.EditModel).Id); + _logger.Info("orderData updated at id " + userModelDtoDetail.Id); //await transferDataService.UpdateTransferAsync((TransferWizardModel)e.EditModel); //modify transferData where transferData.Id == e.EditModel.Id @@ -292,8 +296,10 @@ // } // } + //TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J. await UpdateDataAsync(); } + async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) { //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); @@ -301,10 +307,11 @@ _logger.Info("orderData deleted"); //await UpdateDataAsync(); } + async Task UpdateDataAsync() { //refresh grid - UserData = await userDataService.GetUsersWithDetailsAsync(); + UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.Profile?.Name).ToList(); _logger.Info("orderData grid refreshed"); } @@ -312,31 +319,31 @@ { _logger = new LoggerClient(LogWriters.ToArray()); - UserData = (await userDataService.GetUsersWithDetailsAsync())?.OrderBy(x => x.Profile?.Name).ToList(); + UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.Profile?.Name).ToList(); base.OnInitialized(); } void ColumnChooserButton_Click() { - Grid?.ShowColumnChooser(); + Grid.ShowColumnChooser(); } protected override void OnAfterRender(bool firstRender) { if (firstRender) { - Grid?.ExpandDetailRow(0); + Grid.ExpandDetailRow(0); } } void AutoCollapseDetailRow_Changed(bool newValue) { AutoCollapseDetailRow = newValue; - if (newValue) - { - Grid?.BeginUpdate(); - Grid?.CollapseAllDetailRows(); - Grid?.ExpandDetailRow(0); - Grid?.EndUpdate(); - } + + if (!newValue) return; + + Grid.BeginUpdate(); + Grid.CollapseAllDetailRows(); + Grid.ExpandDetailRow(0); + Grid.EndUpdate(); } } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor b/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor index 2ac3bbe4..858b9329 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor @@ -35,7 +35,7 @@ Click="ColumnChooserButton_Click" />
ignoreList = new List - { - "ReceiverId" - }; + public List IgnoreList = ["ReceiverId"]; - public MessageWizardModel messageWizardModel = new MessageWizardModel(); + public MessageWizardModel MessageWizardModel = new(); [Inject] - public ITransferDataService transferDataService { get; set; } + public ITransferDataService TransferDataService { get; set; } + /*object? TransferData = new TransferDestinationWizardModel[] + { + new TransferDestinationWizardModel(Guid.NewGuid(), "Liszt Ferenc Airport", "International airport of Budapest", "1185, Budapest, Liszt Ferenc Repülőtér" ), + new TransferDestinationWizardModel(Guid.NewGuid(), "Buda Castle", "Historical site in the heart of Budapest", "1014 Budapest, Szent György tér 2" ), + new TransferDestinationWizardModel(Guid.NewGuid(), "Hungarian National Museum", "Historical site in the heart of Budapest", "1088 Budapest, Múzeum krt. 14-16" ), + new TransferDestinationWizardModel(Guid.NewGuid(), "Parliament of Hungary", "Historical site in the heart of Budapest", "1055 Budapest, Kossuth Lajos tér 1-3" ), + new TransferDestinationWizardModel(Guid.NewGuid(), "Heroes square", "Historical site in the heart of Budapest", "1146 Budapest, Hősök tere" ), + new TransferDestinationWizardModel(Guid.NewGuid(), "Gellert Hill", "Historical site in the heart of Budapest", "1118 Budapest, Gellérthegy" ), + new TransferDestinationWizardModel(Guid.NewGuid(), "Margaret Island", "Historical site in the heart of Budapest", "1138 Budapest, Margitsziget" ), + };*/ + private LoggerClient _logger; - object? TransferDataFromDb = new TransferDestinationWizardModel[] { }; + private readonly List _transferDestinationWizardModels = []; void CancelCreateClick() { - - PopupVisible = false; } + void EulaPopupClosed() { //cancel clicked - } + void EulaPopupClosing(PopupClosingEventArgs args) { //myModel = new TransferWizardModel(); - messageWizardModel = new MessageWizardModel(); + MessageWizardModel = new MessageWizardModel(); } //----------------------------------------------------------------------------------- @@ -73,15 +80,13 @@ namespace TIAMSharedUI.Pages.User.SysAdmins void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) { - if (e.IsNew) - { - var newDestination = (TransferDestinationWizardModel)e.EditModel; - newDestination.Id = Guid.NewGuid().ToString(); - newDestination.Name = "Destination name"; - newDestination.Description = "Type some description here"; - newDestination.AddressString = "The address of the destination"; + if (!e.IsNew) return; - } + var newDestination = (TransferDestinationWizardModel)e.EditModel; + newDestination.Id = Guid.NewGuid().ToString(); + newDestination.Name = "Destination name"; + newDestination.Description = "Type some description here"; + newDestination.AddressString = "The address of the destination"; } void Grid_CustomizeElement(GridCustomizeElementEventArgs e) @@ -91,14 +96,11 @@ namespace TIAMSharedUI.Pages.User.SysAdmins async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) { + var transferDestinationWizardModel = (TransferDestinationWizardModel)e.EditModel; + if (e.IsNew) { - //add new row to grid - myModel = (TransferDestinationWizardModel)e.EditModel; - //add new orderData to orderData array - - //await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel); - await transferDataService.CreateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(myModel)); + await TransferDataService.CreateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(transferDestinationWizardModel)); //await transferDataService.CreateTransferDestination(new TransferDestination /*{ Id = Guid.NewGuid(), @@ -111,7 +113,7 @@ namespace TIAMSharedUI.Pages.User.SysAdmins _logger.Info("New orderData added"); //add mymodel to transferData array - TransferDataFromDb = ((TransferDestinationWizardModel[])TransferDataFromDb).Append(myModel).ToArray(); + _transferDestinationWizardModels.Add(transferDestinationWizardModel); } else { @@ -119,45 +121,41 @@ namespace TIAMSharedUI.Pages.User.SysAdmins //modify transferData where transferData.Id == e.EditModel.Id //get transfer from TransferData by Id - var abg = ((TransferDestinationWizardModel[])TransferDataFromDb).Length; + //var abg = ((TransferDestinationWizardModel[])TransferDataFromDb).Length; - foreach (var transferToModify in (TransferDestinationWizardModel[])TransferDataFromDb) + foreach (var transferToModify in _transferDestinationWizardModels) { - myModel = (TransferDestinationWizardModel)e.EditModel; + if (transferToModify.Id != transferDestinationWizardModel.Id) + continue; - if (transferToModify.Id == myModel.Id) - { - - transferToModify.Id = myModel.Id; - transferToModify.Name = myModel.Name; - transferToModify.Description = myModel.Description; - transferToModify.AddressString = myModel.AddressString; - transferToModify.Price = myModel.Price; - transferToModify.PriceType = myModel.PriceType; + transferToModify.Id = transferDestinationWizardModel.Id; + transferToModify.Name = transferDestinationWizardModel.Name; + transferToModify.Description = transferDestinationWizardModel.Description; + transferToModify.AddressString = transferDestinationWizardModel.AddressString; + transferToModify.Price = transferDestinationWizardModel.Price; + transferToModify.PriceType = transferDestinationWizardModel.PriceType; - await transferDataService.UpdateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(transferToModify)); - } + await TransferDataService.UpdateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(transferToModify)); } - } - //await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel); - + //TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J. await UpdateDataAsync(); } + async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) { - //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); //remove orderData from orderData array _logger.Info("orderData deleted"); //await UpdateDataAsync(); } + async Task UpdateDataAsync() { - //DataSource = await NwindDataService.GetEmployeesEditableAsync(); - await transferDataService.GetDestinationsAsync(); + //await TransferDataService.GetDestinationsAsync(); //refresh grid + await FillGridDataSource(); _logger.Info("orderData grid refreshed"); } @@ -167,24 +165,26 @@ namespace TIAMSharedUI.Pages.User.SysAdmins _logger = new LoggerClient(LogWriters.ToArray()); - var a = await transferDataService.GetDestinationsAsync(); - _logger.Info($"TransferDataFromDb: {((TransferDestinationWizardModel[])TransferDataFromDb).Length}"); - foreach (var item in a) + await FillGridDataSource(); + } + + private async Task FillGridDataSource() + { + var destinations = await TransferDataService.GetDestinationsAsync(); + + foreach (var item in destinations) { - //add new transferwizardmodel to transferData array - TransferDataFromDb = ((TransferDestinationWizardModel[])TransferDataFromDb).Append( - new TransferDestinationWizardModel(item.Id, item.Name, item.Description, item.AddressString, item.Price, item.Price2, item.Price3, item.Address)).ToArray(); - - _logger.DetailConditional($"TransferDataFromDb: {item.Name}"); + _transferDestinationWizardModels.Add(new TransferDestinationWizardModel(item.Id, item.Name, item.Description, item.AddressString, item.Price, item.Price2, item.Price3, item.Address)); + _logger.DetailConditional($"_transferDestinationWizardModels add: {item.Name}"); } - _logger.Info($"TransferDataFromDb: {((TransferDestinationWizardModel[])TransferDataFromDb).Length}"); + + _logger.Info($"_transferDestinationWizardModels: {_transferDestinationWizardModels.Count}"); } void ColumnChooserButton_Click() { Grid.ShowColumnChooser(); } - } } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/UserGrid_MasterDetail_NestedGrid_ServiceProviders.razor b/TIAMSharedUI/Pages/User/SysAdmins/UserGrid_MasterDetail_NestedGrid_ServiceProviders.razor index 560a26a4..2934ea91 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/UserGrid_MasterDetail_NestedGrid_ServiceProviders.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/UserGrid_MasterDetail_NestedGrid_ServiceProviders.razor @@ -8,13 +8,13 @@ @using TIAMWebApp.Shared.Application.Utility @using AyCode.Services.Loggers @using TIAM.Core.Loggers -@inject IServiceProviderDataService serviceProviderDataService +@inject IServiceProviderDataService ServiceProviderDataService @inject IEnumerable LogWriters
UserProductMapping
- - + @EditFormContext.GetEditor("Permissions") @@ -59,11 +59,11 @@ [Parameter] public bool KeyboardNavigationEnabled { get; set; } [Parameter] - public UserModelDtoDetail Customer { get; set; } + public UserModelDtoDetail UserModelDtoDetail { get; set; } - List DetailGridData; + List _detailGridData; - List AvailableServices; + List _availableServices; public UserModelDtoDetail UserInfo; @@ -73,27 +73,24 @@ { _logger = new LoggerClient(LogWriters.ToArray()); - //get userproductmappings by customer id - if (Customer.ServiceProviders == null) - DetailGridData = new List(); - else - DetailGridData = Customer.ServiceProviders; + _detailGridData = UserModelDtoDetail.ServiceProviders ?? new List(); + _availableServices = await ServiceProviderDataService.GetServiceProvidersAsync(); - AvailableServices = await serviceProviderDataService.GetServiceProvidersAsync(); - _logger.Info($"DetailGridData: {DetailGridData.Count}"); + _logger.Info($"DetailGridData: {_detailGridData.Count}"); } void CustomizeEditModel(GridCustomizeEditModelEventArgs e) { - if (e.IsNew) - { - UserProductMapping newProductMapping = new UserProductMapping(); - newProductMapping.ProductId = Guid.NewGuid(); - newProductMapping.UserId = Customer.Id; - newProductMapping.Permissions = 1; + if (!e.IsNew) return; - e.EditModel = newProductMapping; - } + var newProductMapping = new UserProductMapping + { + ProductId = Guid.NewGuid(), + UserId = UserModelDtoDetail.Id, + Permissions = 1 + }; + + e.EditModel = newProductMapping; } async Task EditModelSaving(GridEditModelSavingEventArgs e) @@ -101,24 +98,21 @@ if (e.IsNew) //add new orderData to orderData array _logger.Info("New orderData added"); - //await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel); else _logger.Info("orderData updated"); - //await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel); - await UpdateDataAsync(); } + async Task DataItemDeleting(GridDataItemDeletingEventArgs e) { - //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); //remove orderData from orderData array _logger.Info("orderData deleted"); //await UpdateDataAsync(); } + async Task UpdateDataAsync() { - //DataSource = await NwindDataService.GetEmployeesEditableAsync(); //refresh grid _logger.Info("orderData grid refreshed"); } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/UserGrid_MasterDetail_NestedGrid_UserProductMapping.razor b/TIAMSharedUI/Pages/User/SysAdmins/UserGrid_MasterDetail_NestedGrid_UserProductMapping.razor index f3521cb9..26aefa9a 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/UserGrid_MasterDetail_NestedGrid_UserProductMapping.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/UserGrid_MasterDetail_NestedGrid_UserProductMapping.razor @@ -8,14 +8,13 @@ @using TIAM.Core.Loggers @using AyCode.Core.Loggers @using AyCode.Services.Loggers -@inject IUserDataService NwindDataService -@inject IServiceProviderDataService serviceProviderDataService +@inject IServiceProviderDataService ServiceProviderDataService @inject IEnumerable LogWriters
UserProductMapping
- - + @EditFormContext.GetEditor("Permissions") @@ -60,40 +59,35 @@ [Parameter] public bool KeyboardNavigationEnabled { get; set; } [Parameter] - public UserModelDtoDetail Customer { get; set; } + public UserModelDtoDetail UserModelDtoDetail { get; set; } - private ILogger _logger; - List DetailGridData; + private LoggerClient _logger; - List AvailableProducts; - - public UserModelDtoDetail UserInfo; + List _detailGridData; + List _availableProducts; protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); - //get userproductmappings by customer id - if (Customer.UserProductMappings == null) - DetailGridData = new List(); - else - DetailGridData = Customer.UserProductMappings; + _detailGridData = UserModelDtoDetail.UserProductMappings ?? new List(); + _availableProducts = await ServiceProviderDataService.GetAllProductsAsync(); - AvailableProducts = await serviceProviderDataService.GetAllProductsAsync(); - _logger.Info($"DetailGridData: {DetailGridData.Count}"); + _logger.Info($"DetailGridData: {_detailGridData.Count}"); } void CustomizeEditModel(GridCustomizeEditModelEventArgs e) { - if (e.IsNew) - { - UserProductMapping newProductMapping = new UserProductMapping(); - newProductMapping.ProductId = Guid.NewGuid(); - newProductMapping.UserId = Customer.Id; - newProductMapping.Permissions = 1; + if (!e.IsNew) return; - e.EditModel = newProductMapping; - } + var newProductMapping = new UserProductMapping + { + ProductId = Guid.NewGuid(), + UserId = UserModelDtoDetail.Id, + Permissions = 1 + }; + + e.EditModel = newProductMapping; } async Task EditModelSaving(GridEditModelSavingEventArgs e) @@ -101,24 +95,21 @@ if (e.IsNew) //add new orderData to orderData array _logger.Info("New orderData added"); - //await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel); else _logger.Info("orderData updated"); - //await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel); - await UpdateDataAsync(); } + async Task DataItemDeleting(GridDataItemDeletingEventArgs e) { - //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); //remove orderData from orderData array _logger.Info("orderData deleted"); //await UpdateDataAsync(); } + async Task UpdateDataAsync() { - //DataSource = await NwindDataService.GetEmployeesEditableAsync(); //refresh grid _logger.Info("orderData grid refreshed"); } diff --git a/TIAMWebApp/Client/Services/UserDataServiceWeb.cs b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs index 5728eb68..9d062a92 100644 --- a/TIAMWebApp/Client/Services/UserDataServiceWeb.cs +++ b/TIAMWebApp/Client/Services/UserDataServiceWeb.cs @@ -169,16 +169,15 @@ namespace TIAMWebApp.Client.Services return await http.GetFromJsonAsync>(APIUrls.GetUsers); } - public async Task?> GetUsersWithDetailsAsync() + public async Task> GetUsersWithDetailsAsync() { - - var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetUsersWithDetails}"; + _logger.Info("GetUserByEmailAsync url: " + url + "!"); var response = await http.GetFromJsonAsync>(APIUrls.GetUsersWithDetails); //var result = await response.Content.ReadAsStringAsync(); //var user = JsonConvert.DeserializeObject(result); - return response; + return response ?? []; } diff --git a/TIAMWebApp/Shared/Interfaces/IUserDataService.cs b/TIAMWebApp/Shared/Interfaces/IUserDataService.cs index 713d3954..bc1039fe 100644 --- a/TIAMWebApp/Shared/Interfaces/IUserDataService.cs +++ b/TIAMWebApp/Shared/Interfaces/IUserDataService.cs @@ -25,7 +25,7 @@ namespace TIAMWebApp.Shared.Application.Interfaces public Task?> GetUsersAsync(); - public Task?> GetUsersWithDetailsAsync(); + public Task> GetUsersWithDetailsAsync(); public Task GetUserByIdAsync(Guid id); public Task GetUserDetailByIdAsync(Guid id);