From 02eed4a794d38720b31b72d0bea26770263df68b Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 26 Jun 2024 00:14:28 +0200 Subject: [PATCH] bruh --- .../Pages/User/SysAdmins/ManageProducts.razor | 248 ++++++++++++------ .../User/SysAdmins/ManageProducts.razor.cs | 164 ------------ .../User/SysAdmins/ProductGridComponent.razor | 179 +++++++++++++ TIAMSharedUI/Shared/Users/AdminNavMenu.razor | 1 + 4 files changed, 354 insertions(+), 238 deletions(-) delete mode 100644 TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor.cs create mode 100644 TIAMSharedUI/Pages/User/SysAdmins/ProductGridComponent.razor diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor index 2bfd8000..97af5c64 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor @@ -1,100 +1,200 @@ -@* Deprecated *@ - -@page "/user/products" +@page "/sysadmin/products" +@using BlazorAnimation +@using TIAM.Core.Enums @using TIAM.Resources +@using TIAM.Services @using TIAMSharedUI.Shared +@using TIAMSharedUI.Shared.Components.Grids +@using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels @using AyCode.Services.Loggers +@using TIAMWebApp.Shared.Application.Utility @layout AdminLayout @inject IStringLocalizer localizer @inject IEnumerable LogWriters +@inject IServiceProviderDataService ServiceProviderDataService - -
+
+
- -
-
- + +
+
+
+ +
+ + +
+
- - - - - - - - - @{ - var keyField = context.Value; - @context.Value - } - - - - - - - - - - - @{ - var transfer = (TransferDestinationWizardModel)EditFormContext.EditModel; - } - - - @EditFormContext.GetEditor("Name") - - - @EditFormContext.GetEditor("Destination") - - - @EditFormContext.GetEditor("AddressString") - - - @EditFormContext.GetEditor("Price") - - - - - - - - -
- +
- +
- +
@code { - + private LoggerClient _logger; + + IGrid Grid { get; set; } + private List ProductWizardModels { get; set; } = []; + + public void ColumnChooserButton_Click() + { + Grid.ShowColumnChooser(); + } + + //public ProductWizardModel productWizardModel = new(); + + + public MessageWizardModel MessageWizardModel = new(); + + + //List _productArray = + //[ + // new ProductWizardModel(new Company(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""), + // new ProductWizardModel(new Company(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""), + // new ProductWizardModel(new Company(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, "") + //]; + + private readonly List _productWizardModels = []; + + void CancelCreateClick() + { + + } + void EulaPopupClosed() + { + //cancel clicked + } + + void EulaPopupClosing(PopupClosingEventArgs args) + { + //myModel = new TransferWizardModel(); + MessageWizardModel = new MessageWizardModel(); + } + + //----------------------------------------------------------------------------------- + + + public async Task SubmitForm(object Result) + { + //await WizardProcessor.ProcessWizardAsync(Result.GetType(), Result); + _logger.Info($"Submitted nested form: {Result.GetType().FullName}"); + } + + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + //if (firstRender) + // await Grid.StartEditRowAsync(0); + } + + void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) + { + 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) + { + + } + + async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) + { + var productWizardModel = (ProductWizardModel)e.EditModel; + + if (e.IsNew) + { + //add mymodel to transferData array + ProductWizardModels.Add(productWizardModel); + + //add new orderData to orderData array + _logger.Info("New orderData added"); + //await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel); + + } + else + { + _logger.Info("orderData updated"); + //modify transferData where transferData.Id == e.EditModel.Id + //get transfer from TransferData by Id + + foreach (var productToModify in ProductWizardModels) + { + if (productToModify.Id != productWizardModel.Id) continue; + + 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); + //remove orderData from orderData array + _logger.Info("orderData deleted"); + //await UpdateDataAsync(); + } + + async Task UpdateDataAsync() + { + //refresh grid + await FillGridDataSource(); + + _logger.Info("orderData grid refreshed"); + } + + protected override async Task OnInitializedAsync() + { + base.OnInitialized(); + + _logger = new LoggerClient(LogWriters.ToArray()); + + 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/ManageProducts.razor.cs b/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor.cs deleted file mode 100644 index b5b52ed7..00000000 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageProducts.razor.cs +++ /dev/null @@ -1,164 +0,0 @@ -using DevExpress.Blazor; -using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels; -using TIAMWebApp.Shared.Application.Interfaces; -using Microsoft.AspNetCore.Components; -using TIAM.Core.Enums; -using TIAMWebApp.Shared.Application.Utility; - -namespace TIAMSharedUI.Pages.User.SysAdmins -{ - public partial class ManageProducts :ComponentBase - { - private LoggerClient _logger; - - IGrid Grid { get; set; } - private List ProductWizardModels { get; set; } = []; - - public void ColumnChooserButton_Click() - { - Grid.ShowColumnChooser(); - } - - //public ProductWizardModel productWizardModel = new(); - - - public MessageWizardModel MessageWizardModel = new(); - - [Inject] - public IServiceProviderDataService ServiceProviderDataService { get; set; } - - - //List _productArray = - //[ - // new ProductWizardModel(new Company(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""), - // new ProductWizardModel(new Company(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, ""), - // new ProductWizardModel(new Company(), ProductType.Hotel, "XY hotel", "XYHotel description is here ", 10.0f, "") - //]; - - private readonly List _productWizardModels = []; - - void CancelCreateClick() - { - - } - void EulaPopupClosed() - { - //cancel clicked - } - - void EulaPopupClosing(PopupClosingEventArgs args) - { - //myModel = new TransferWizardModel(); - MessageWizardModel = new MessageWizardModel(); - } - - //----------------------------------------------------------------------------------- - - - public async Task SubmitForm(object Result) - { - //await WizardProcessor.ProcessWizardAsync(Result.GetType(), Result); - _logger.Info($"Submitted nested form: {Result.GetType().FullName}"); - } - - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - //if (firstRender) - // await Grid.StartEditRowAsync(0); - } - - void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) - { - 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) - { - - } - - async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) - { - var productWizardModel = (ProductWizardModel)e.EditModel; - - if (e.IsNew) - { - //add mymodel to transferData array - ProductWizardModels.Add(productWizardModel); - - //add new orderData to orderData array - _logger.Info("New orderData added"); - //await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel); - - } - else - { - _logger.Info("orderData updated"); - //modify transferData where transferData.Id == e.EditModel.Id - //get transfer from TransferData by Id - - foreach (var productToModify in ProductWizardModels) - { - if (productToModify.Id != productWizardModel.Id) continue; - - 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); - //remove orderData from orderData array - _logger.Info("orderData deleted"); - //await UpdateDataAsync(); - } - - async Task UpdateDataAsync() - { - //refresh grid - await FillGridDataSource(); - - _logger.Info("orderData grid refreshed"); - } - - protected override async Task OnInitializedAsync() - { - base.OnInitialized(); - - _logger = new LoggerClient(LogWriters.ToArray()); - - 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/ProductGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/ProductGridComponent.razor new file mode 100644 index 00000000..21971a94 --- /dev/null +++ b/TIAMSharedUI/Pages/User/SysAdmins/ProductGridComponent.razor @@ -0,0 +1,179 @@ +@using TIAM.Entities.Products +@using TIAM.Entities.ServiceProviders +@using TIAM.Entities.Transfers +@using TIAM.Entities.Drivers +@using TIAM.Entities.Users +@using TIAM.Models.Dtos.Users +@using TIAM.Resources +@using TIAM.Services +@using TIAMWebApp.Shared.Application.Interfaces +@using TIAMWebApp.Shared.Application.Utility +@using AyCode.Services.Loggers +@using TIAM.Core.Loggers +@using Address = TIAM.Entities.Addresses.Address +@using Profile = TIAM.Entities.Profiles.Profile +@using TIAMSharedUI.Shared.Components.Grids +@using TIAMSharedUI.Pages.Components.EditComponents +@using TIAMWebApp.Shared.Application.Services +@using AyCode.Interfaces.Addresses +@using AyCode.Core +@inject IStringLocalizer Localizer +@inject IEnumerable LogWriters +@inject AdminSignalRClient AdminSignalRClient; + + + + + + + + + + + + + + + + + + + + + + + + + + @{ + var transfer2 = (Product)editFormContext.EditModel; + } + + + @editFormContext.GetEditor("Name") + + + @editFormContext.GetEditor("ProductType") + + + @editFormContext.GetEditor("Price") + + + @editFormContext.GetEditor("Description") + + + + + + + + +@code { + [Parameter] public bool KeyboardNavigationEnabled { get; set; } + + [Parameter] public IProductsRelation? ParentData { get; set; } = null!; + [Parameter] public EventCallback OnGridEditModelSaving { get; set; } + [Parameter] public int GetAllTag { get; set; } = SignalRTags.GetProductsByContextId; + [Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never; + + private ProductDetailGrid _productGrid = null!; + private LoggerClient _logger = null!; + protected override void OnInitialized() + { + _logger = new LoggerClient(LogWriters.ToArray()); + //DataSource = new List
(); + + } + + protected override async Task OnParametersSetAsync() + { + // if (ParentData != null) + // { + // productList.AddRange(ParentData.Products); + // } + // else if (ContextId != null) + // { + // //_productGrid.ContextIds = new Guid[1]; + // //_productGrid.ContextIds[0] = (Guid)ContextId; + // var data = await serviceProviderDataService.GetProductByIdAsync((Guid)ContextId); + // List result = new List(); + // result.Add(data); + // _productGrid.DataSource = result; + // } + // else + + await base.OnParametersSetAsync(); + } + + private void DataItemChanged(GridDataItemChangedEventArgs args) + { + _logger.Debug($"Saving: {args.DataItem.Name}, {args.DataItem.ServiceProviderId}"); + } + + public async Task DataItemSaving(GridEditModelSavingEventArgs e) + { + await OnGridEditModelSaving.InvokeAsync(e); + + if (e.Cancel) return; + + var product = ((Product)e.EditModel); + + if (e.IsNew) + { + _logger.Debug($"DataItemSaving"); + + // var profileId = Guid.NewGuid(); + // product.Profile = new Profile(profileId, product.Name); + // product.ProfileId = profileId; + + // var addressId = Guid.NewGuid(); + // product.Profile.Address = new Address(addressId); + // product.Profile.AddressId = addressId; + + //((Product)e.EditModel).UserProductMappings.Add(new UserProductMapping(Guid.NewGuid, ParentData.)); + } + else + { + + } + + _logger.Debug($"Saving: {product.Name}, {product.ServiceProviderId}"); + + //var result = serviceProviderDataService.CreateProductAsync((Product)e.EditModel); + //_logger.Debug($"saved product: {product.ServiceProviderId}"); + } + + private void DataItemDeleting(GridDataItemDeletingEventArgs obj) + { + _logger.Debug($"DataItemDeleting"); + } + + void CustomizeEditModel(GridCustomizeEditModelEventArgs e) + { + if (!e.IsNew) return; + + var newProduct = (Product)e.EditModel; + newProduct.Id = Guid.NewGuid(); + newProduct.Name = "Type a name"; + newProduct.ServiceProviderId = (Guid)ContextId!; + newProduct.Price = 0; + newProduct.ProductType = TIAM.Core.Enums.ProductType.Hotel; + newProduct.Description = "Type a description"; + } + +} \ No newline at end of file diff --git a/TIAMSharedUI/Shared/Users/AdminNavMenu.razor b/TIAMSharedUI/Shared/Users/AdminNavMenu.razor index 3ae499ac..762dc440 100644 --- a/TIAMSharedUI/Shared/Users/AdminNavMenu.razor +++ b/TIAMSharedUI/Shared/Users/AdminNavMenu.razor @@ -18,6 +18,7 @@ +