From 0619b0b7de1950d9cca55b0b2408736e23abe418 Mon Sep 17 00:00:00 2001 From: "Amir.H Khademi" Date: Wed, 11 Dec 2024 00:25:26 +0330 Subject: [PATCH] Add MetaTags support and update project configurations - Removed unused @using directives in App.razor and BrandsPage.razor. - Added UI elements for meta tags in BrandActionDialogBox.razor. - Updated BrandActionDialogBoxViewModel to handle meta tags. - Changed label text in DiscountActionDialogBox.razor. - Updated assembly and file versions in Netina.AdminPanel.PWA.csproj. - Added BlogMetaTag and BrandMetaTag classes. - Added migration to update database schema for meta tags. - Updated BlogController to handle meta tags. - Set LangVersion to latest in multiple project files. - Changed array initialization syntax in various files. - Added MetaTags property to BlogLDto and BrandLDto classes. - Updated Blog and Brand classes to handle meta tags. - Refactored mappers to include meta tags handling. - Improved product sorting in GetProductsQueryHandler.cs. - Updated ApplicationContextModelSnapshot for new entities. --- Netina.AdminPanel.PWA/App.razor | 3 +- .../Dialogs/BrandActionDialogBox.razor | 56 ++++++++++++++++++- .../Dialogs/BrandActionDialogBox.razor.cs | 28 +++++++++- .../Dialogs/DiscountActionDialogBox.razor | 2 +- .../Netina.AdminPanel.PWA.csproj | 4 +- Netina.AdminPanel.PWA/Pages/BrandsPage.razor | 1 - 6 files changed, 84 insertions(+), 10 deletions(-) diff --git a/Netina.AdminPanel.PWA/App.razor b/Netina.AdminPanel.PWA/App.razor index 4a275f8..a804f5a 100644 --- a/Netina.AdminPanel.PWA/App.razor +++ b/Netina.AdminPanel.PWA/App.razor @@ -1,5 +1,4 @@ -@using Netina.AdminPanel.PWA.Models -@using Netina.AdminPanel.PWA.Layout +@using Netina.AdminPanel.PWA.Layout @using Netina.AdminPanel.PWA.Pages diff --git a/Netina.AdminPanel.PWA/Dialogs/BrandActionDialogBox.razor b/Netina.AdminPanel.PWA/Dialogs/BrandActionDialogBox.razor index 69a6e80..f5dbffb 100644 --- a/Netina.AdminPanel.PWA/Dialogs/BrandActionDialogBox.razor +++ b/Netina.AdminPanel.PWA/Dialogs/BrandActionDialogBox.razor @@ -85,6 +85,60 @@ + + اطلاعات متا تگ + می توانید متا تگ های سئو برای صفحه مورد نظر را وارد کنید + + + + + + + + + + + + افزودن + + + + + + + + + + + + حذف + + + + + + + + + سوالات متداول @@ -120,7 +174,7 @@ Size="@Size.Small" Variant="@Variant.Outlined" Color="@Color.Error" - OnClick="() => ViewModel.Faqs.Remove(item.Key)" /> + OnClick="() => ViewModel.Faqs.Remove(item.Key)"/> @item.Key diff --git a/Netina.AdminPanel.PWA/Dialogs/BrandActionDialogBox.razor.cs b/Netina.AdminPanel.PWA/Dialogs/BrandActionDialogBox.razor.cs index 2534e84..b2cbc5e 100644 --- a/Netina.AdminPanel.PWA/Dialogs/BrandActionDialogBox.razor.cs +++ b/Netina.AdminPanel.PWA/Dialogs/BrandActionDialogBox.razor.cs @@ -1,4 +1,5 @@ -using Netina.Domain.Entities.Brands; +using Netina.Domain.Dtos.LargDtos; +using Netina.Domain.Entities.Brands; namespace Netina.AdminPanel.PWA.Dialogs; @@ -65,6 +66,7 @@ public class BrandActionDialogBoxViewModel : BaseViewModel IsProcessing = true; var response = await _restWrapper.CrudDtoApiRest(Address.BrandController).ReadOne(Brand.Id); var brandLDto = response; + brandLDto.MetaTags.ForEach(m => MetaTags.Add(m)); PageDto = brandLDto; } catch (ApiException ex) @@ -106,7 +108,7 @@ public class BrandActionDialogBoxViewModel : BaseViewModel PageDto.PageUrl, PageDto.Files, Faqs, - new Dictionary()); + MetaTags.ToDictionary(x => x.Type, x => x.Value)); await _restWrapper.CrudApiRest(Address.BrandController).Create(request, token); _mudDialog.Close(DialogResult.Ok(true)); } @@ -147,7 +149,7 @@ public class BrandActionDialogBoxViewModel : BaseViewModel PageDto.PageUrl, PageDto.Files, Faqs, - new Dictionary()); + MetaTags.ToDictionary(x => x.Type, x => x.Value)); await _restWrapper.CrudApiRest(Address.BrandController).Update(request, token); _mudDialog.Close(); @@ -191,6 +193,26 @@ public class BrandActionDialogBoxViewModel : BaseViewModel } } + public readonly ObservableCollection MetaTags = new(); + public string MetaTagType { get; set; } = string.Empty; + public string MetaTagValue { get; set; } = string.Empty; + public void AddMetaTag() + { + try + { + if (MetaTagType.IsNullOrEmpty()) + throw new Exception("لطفا نوع متا مورد نظر را وارد کنید"); + if (MetaTagValue.IsNullOrEmpty()) + throw new Exception("لطفا مقدار متا مورد نظر را وارد کنید"); + + MetaTags.Add(new MetaTagSDto() { Type = MetaTagType, Value = MetaTagValue }); + } + catch (Exception e) + { + _snackbar.Add(e.Message, Severity.Error); + } + } + public async Task SelectFileAsync() { diff --git a/Netina.AdminPanel.PWA/Dialogs/DiscountActionDialogBox.razor b/Netina.AdminPanel.PWA/Dialogs/DiscountActionDialogBox.razor index c03cd54..ebd57cb 100644 --- a/Netina.AdminPanel.PWA/Dialogs/DiscountActionDialogBox.razor +++ b/Netina.AdminPanel.PWA/Dialogs/DiscountActionDialogBox.razor @@ -133,7 +133,7 @@ - + diff --git a/Netina.AdminPanel.PWA/Netina.AdminPanel.PWA.csproj b/Netina.AdminPanel.PWA/Netina.AdminPanel.PWA.csproj index c3fc990..15aaf51 100644 --- a/Netina.AdminPanel.PWA/Netina.AdminPanel.PWA.csproj +++ b/Netina.AdminPanel.PWA/Netina.AdminPanel.PWA.csproj @@ -5,8 +5,8 @@ enable enable service-worker-assets.js - 1.7.20.34 - 1.7.20.34 + 1.10.21.36 + 1.10.21.36 $(MSBuildProjectName) diff --git a/Netina.AdminPanel.PWA/Pages/BrandsPage.razor b/Netina.AdminPanel.PWA/Pages/BrandsPage.razor index 333d4a7..666306c 100644 --- a/Netina.AdminPanel.PWA/Pages/BrandsPage.razor +++ b/Netina.AdminPanel.PWA/Pages/BrandsPage.razor @@ -1,5 +1,4 @@ @page "/product/brands" -@using StringExtensions = Netina.Common.Extensions.StringExtensions @inject IDialogService DialogService @inject NavigationManager NavigationManager