Refactor grid toolbar and InfoPanel for reusability
Introduce reusable MgGridToolbarBase and MgGridToolbarTemplate components, replacing old toolbar implementations. InfoPanel now displays grid captions and includes a toolbar for quick actions. Refactor InfoPanel value rendering for improved DevExpress-like appearance. Update IMgGridBase and related classes to support captions and use new abstractions. Update usings and project structure accordingly.
This commit is contained in:
parent
903711ed04
commit
21548376ba
|
|
@ -1,9 +1,9 @@
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
|
@using AyCode.Core.Helpers
|
||||||
@using AyCode.Utils.Extensions
|
@using AyCode.Utils.Extensions
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBank.Common.Models
|
@using FruitBank.Common.Models
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.GenericAttributes
|
@using FruitBankHybrid.Shared.Components.Grids.GenericAttributes
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
|
@using AyCode.Core.Helpers
|
||||||
@using AyCode.Utils.Extensions
|
@using AyCode.Utils.Extensions
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBank.Common.Models
|
@using FruitBank.Common.Models
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.GenericAttributes
|
@using FruitBankHybrid.Shared.Components.Grids.GenericAttributes
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
@using AyCode.Utils.Extensions
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
|
@using AyCode.Utils.Extensions
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBank.Common.Entities
|
@using FruitBank.Common.Entities
|
||||||
@using FruitBank.Common.Models
|
@using FruitBank.Common.Models
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
@using System.Threading
|
@using System.Threading
|
||||||
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Core.Helpers
|
||||||
@using AyCode.Utils.Extensions
|
@using AyCode.Utils.Extensions
|
||||||
@using DevExpress.Internal.About
|
@using DevExpress.Internal.About
|
||||||
|
|
@ -6,7 +7,6 @@
|
||||||
@using FruitBank.Common.Models
|
@using FruitBank.Common.Models
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.GenericAttributes
|
@using FruitBankHybrid.Shared.Components.Grids.GenericAttributes
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.Products
|
@using FruitBankHybrid.Shared.Components.Grids.Products
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
@using AyCode.Utils.Extensions
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
|
@using AyCode.Utils.Extensions
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBank.Common.Entities
|
@using FruitBank.Common.Entities
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.ShippingDocuments
|
@using FruitBankHybrid.Shared.Components.Grids.ShippingDocuments
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
@using System.Text
|
@using System.Text
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
@using AyCode.Core.Loggers;
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
|
@using AyCode.Core.Loggers;
|
||||||
@using AyCode.Core.Extensions
|
@using AyCode.Core.Extensions
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Core.Helpers
|
||||||
@using AyCode.Core.Interfaces
|
@using AyCode.Core.Interfaces
|
||||||
|
|
@ -7,7 +8,6 @@
|
||||||
@using FruitBank.Common.Entities
|
@using FruitBank.Common.Entities
|
||||||
@using FruitBank.Common.Interfaces
|
@using FruitBank.Common.Interfaces
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.ShippingItems
|
@using FruitBankHybrid.Shared.Components.Grids.ShippingItems
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.Loggers;
|
@using FruitBankHybrid.Shared.Services.Loggers;
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
@using System.Collections.ObjectModel
|
@using System.Collections.ObjectModel
|
||||||
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Core.Helpers
|
||||||
@using AyCode.Core.Interfaces
|
@using AyCode.Core.Interfaces
|
||||||
@using AyCode.Core.Loggers
|
@using AyCode.Core.Loggers
|
||||||
|
|
@ -6,7 +7,6 @@
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBank.Common.Entities
|
@using FruitBank.Common.Entities
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.Loggers
|
@using FruitBankHybrid.Shared.Services.Loggers
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
@using System.Collections.ObjectModel
|
@using System.Collections.ObjectModel
|
||||||
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Core.Helpers
|
||||||
@using AyCode.Core.Loggers
|
@using AyCode.Core.Loggers
|
||||||
@using AyCode.Utils.Extensions
|
@using AyCode.Utils.Extensions
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBank.Common.Entities
|
@using FruitBank.Common.Entities
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.Loggers
|
@using FruitBankHybrid.Shared.Services.Loggers
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
@using AyCode.Core.Interfaces
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
|
@using AyCode.Core.Interfaces
|
||||||
@using AyCode.Core.Loggers;
|
@using AyCode.Core.Loggers;
|
||||||
@using AyCode.Utils.Extensions
|
@using AyCode.Utils.Extensions
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.ShippingItems
|
@using FruitBankHybrid.Shared.Components.Grids.ShippingItems
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.Loggers;
|
@using FruitBankHybrid.Shared.Services.Loggers;
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
@using System.Collections.ObjectModel
|
@using System.Collections.ObjectModel
|
||||||
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Core.Helpers
|
||||||
@using AyCode.Core.Loggers
|
@using AyCode.Core.Loggers
|
||||||
@using AyCode.Utils.Extensions
|
@using AyCode.Utils.Extensions
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBank.Common.Entities
|
@using FruitBank.Common.Entities
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.Loggers
|
@using FruitBankHybrid.Shared.Services.Loggers
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
@using System.Collections.ObjectModel
|
@using System.Collections.ObjectModel
|
||||||
|
@using AyCode.Blazor.Components.Components.Grids
|
||||||
@using AyCode.Core.Helpers
|
@using AyCode.Core.Helpers
|
||||||
@using AyCode.Core.Loggers
|
@using AyCode.Core.Loggers
|
||||||
@using AyCode.Utils.Extensions
|
@using AyCode.Utils.Extensions
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBank.Common.Entities
|
@using FruitBank.Common.Entities
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
||||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
@using FruitBankHybrid.Shared.Services.Loggers
|
@using FruitBankHybrid.Shared.Services.Loggers
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||||
|
|
|
||||||
|
|
@ -189,6 +189,7 @@ public class MgGridBase : DxGrid, IMgGridBase
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool ShowInfoPanel { get; set; } = false;
|
public bool ShowInfoPanel { get; set; } = false;
|
||||||
|
public string Caption { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
|
||||||
|
|
||||||
async Task Grid_LayoutAutoLoading(GridPersistentLayoutEventArgs e)
|
async Task Grid_LayoutAutoLoading(GridPersistentLayoutEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,162 +0,0 @@
|
||||||
@using AyCode.Blazor.Components.Components.Grids
|
|
||||||
@using AyCode.Core.Loggers;
|
|
||||||
@using AyCode.Core.Extensions
|
|
||||||
@using AyCode.Core.Helpers
|
|
||||||
@using AyCode.Utils.Extensions
|
|
||||||
@using FruitBank.Common.Dtos
|
|
||||||
@using FruitBank.Common.Entities
|
|
||||||
@using FruitBank.Common.Models
|
|
||||||
@using FruitBankHybrid.Shared.Components.Grids.ShippingItems
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
|
||||||
@using FruitBankHybrid.Shared.Services.Loggers;
|
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
|
||||||
|
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
|
||||||
@inject LoggedInModel LoggedInModel;
|
|
||||||
|
|
||||||
<ToolbarBase @ref="Toolbar" Grid="Grid" ItemRenderStyleMode="ToolbarRenderStyleMode.Plain">
|
|
||||||
<DxToolbarItem Text="New" Click="NewItem_Click" IconCssClass="grid-new-row"
|
|
||||||
Visible="@(!IsEditing)" Enabled="@(!IsSyncing)" />
|
|
||||||
<DxToolbarItem Text="Edit" Click="EditItem_Click" IconCssClass="grid-edit-row"
|
|
||||||
Visible="@(!IsEditing)" Enabled="@(HasFocusedRow && !IsSyncing)" />
|
|
||||||
<DxToolbarItem Text="Delete" Click="DeleteItem_Click" IconCssClass="grid-delete-row"
|
|
||||||
Visible="@(!IsEditing)" Enabled="@(LoggedInModel.IsDeveloper && HasFocusedRow && !IsSyncing)" />
|
|
||||||
|
|
||||||
<DxToolbarItem Text="Save" Click="SaveItem_Click" IconCssClass="grid-save"
|
|
||||||
Visible="@IsEditing" RenderStyle="ButtonRenderStyle.Primary" />
|
|
||||||
<DxToolbarItem Text="Cancel" Click="CancelEdit_Click" IconCssClass="grid-cancel"
|
|
||||||
Visible="@IsEditing" RenderStyle="ButtonRenderStyle.Secondary" />
|
|
||||||
|
|
||||||
@if (!OnlyGridEditTools)
|
|
||||||
{
|
|
||||||
<DxToolbarItem Text="Prev Row" BeginGroup="true" Click="PrevRow_Click" IconCssClass="grid-chevron-up"
|
|
||||||
Visible="@(!IsEditing)" Enabled="@(HasFocusedRow && !IsSyncing)" />
|
|
||||||
<DxToolbarItem Text="Next Row" Click="NextRow_Click" IconCssClass="grid-chevron-down"
|
|
||||||
Visible="@(!IsEditing)" Enabled="@(HasFocusedRow && !IsSyncing)" />
|
|
||||||
|
|
||||||
<DxToolbarItem Text="Column Chooser" BeginGroup="true" Click="ColumnChooserItem_Click" IconCssClass="grid-column-chooser"
|
|
||||||
Visible="@(!IsEditing)"/>
|
|
||||||
<DxToolbarItem Text="Export" IconCssClass="grid-export"
|
|
||||||
Visible="@(!IsEditing)" Enabled="@(LoggedInModel.IsAdministrator && HasFocusedRow)">
|
|
||||||
<Items>
|
|
||||||
<DxToolbarItem Text="To CSV" Click="ExportCsvItem_Click" IconCssClass="grid-export-xlsx"/>
|
|
||||||
<DxToolbarItem Text="To XLSX" Click="ExportXlsxItem_Click" IconCssClass="grid-export-xlsx"/>
|
|
||||||
<DxToolbarItem Text="To XLS" Click="ExportXlsItem_Click" IconCssClass="grid-export-xlsx"/>
|
|
||||||
<DxToolbarItem Text="To PDF" Click="ExportPdfItem_Click" IconCssClass="grid-export-pdf"/>
|
|
||||||
</Items>
|
|
||||||
</DxToolbarItem>
|
|
||||||
<DxToolbarItem Text="Reload data" BeginGroup="true" Click="ReloadData_Click" IconCssClass="grid-refresh"
|
|
||||||
Visible="@(!IsEditing)" Enabled="@(!IsSyncing && !_isReloadInProgress)"/>
|
|
||||||
<DxToolbarItem BeginGroup="true">
|
|
||||||
</DxToolbarItem>
|
|
||||||
|
|
||||||
@ToolbarItemsExtended
|
|
||||||
}
|
|
||||||
</ToolbarBase>
|
|
||||||
|
|
||||||
@code {
|
|
||||||
[Parameter] public bool OnlyGridEditTools { get; set; } = false;
|
|
||||||
[Parameter] public IMgGridBase Grid { get; set; } = null!;
|
|
||||||
[Parameter] public RenderFragment? ToolbarItemsExtended { get; set; }
|
|
||||||
[Parameter] public EventCallback<ToolbarItemClickEventArgs> OnReloadDataClick { get; set; }
|
|
||||||
|
|
||||||
public ToolbarBase Toolbar { get; set; } = null!;
|
|
||||||
const string ExportFileName = "ExportResult";
|
|
||||||
|
|
||||||
private bool _isReloadInProgress;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Whether the grid is currently in edit mode (New or Edit)
|
|
||||||
/// </summary>
|
|
||||||
private bool IsEditing => Grid?.GridEditState != MgGridEditState.None;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Whether the grid is currently syncing data
|
|
||||||
/// </summary>
|
|
||||||
private bool IsSyncing => Grid?.IsSyncing ?? false;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Whether there is a focused row in the grid
|
|
||||||
/// </summary>
|
|
||||||
private bool HasFocusedRow => Grid?.GetFocusedRowIndex() >= 0;
|
|
||||||
|
|
||||||
private LoggerClient<GridShippingItemTemplate> _logger = null!;
|
|
||||||
|
|
||||||
protected override void OnInitialized()
|
|
||||||
{
|
|
||||||
_logger = new LoggerClient<GridShippingItemTemplate>(LogWriters.ToArray());
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task ReloadData_Click(ToolbarItemClickEventArgs e)
|
|
||||||
{
|
|
||||||
_isReloadInProgress = true;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
await OnReloadDataClick.InvokeAsync(e);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
_isReloadInProgress = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task NewItem_Click()
|
|
||||||
{
|
|
||||||
await Grid.StartEditNewRowAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task EditItem_Click()
|
|
||||||
{
|
|
||||||
await Grid.StartEditRowAsync(Grid.GetFocusedRowIndex());
|
|
||||||
}
|
|
||||||
|
|
||||||
void DeleteItem_Click()
|
|
||||||
{
|
|
||||||
Grid.ShowRowDeleteConfirmation(Grid.GetFocusedRowIndex());
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task SaveItem_Click()
|
|
||||||
{
|
|
||||||
await Grid.SaveChangesAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task CancelEdit_Click()
|
|
||||||
{
|
|
||||||
await Grid.CancelEditAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
void PrevRow_Click()
|
|
||||||
{
|
|
||||||
Grid.StepPrevRow();
|
|
||||||
}
|
|
||||||
|
|
||||||
void NextRow_Click()
|
|
||||||
{
|
|
||||||
Grid.StepNextRow();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ColumnChooserItem_Click(ToolbarItemClickEventArgs e)
|
|
||||||
{
|
|
||||||
Grid.ShowColumnChooser();
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task ExportXlsxItem_Click()
|
|
||||||
{
|
|
||||||
await Grid.ExportToXlsxAsync(ExportFileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task ExportXlsItem_Click()
|
|
||||||
{
|
|
||||||
await Grid.ExportToXlsAsync(ExportFileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task ExportCsvItem_Click()
|
|
||||||
{
|
|
||||||
await Grid.ExportToCsvAsync(ExportFileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task ExportPdfItem_Click()
|
|
||||||
{
|
|
||||||
await Grid.ExportToPdfAsync(ExportFileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
using DevExpress.Blazor;
|
|
||||||
using DevExpress.Blazor.Navigation.Internal;
|
|
||||||
using Microsoft.AspNetCore.Components;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace FruitBankHybrid.Shared.Components.Toolbars
|
|
||||||
{
|
|
||||||
public class ToolbarBase : DxToolbar
|
|
||||||
{
|
|
||||||
[Parameter] public IGrid Grid { get; set; }
|
|
||||||
[Parameter] public Func<ToolbarItemClickEventArgs, Task> RefreshClick { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -68,4 +68,8 @@
|
||||||
<HintPath>..\..\NopCommerce.Common\4.70\Libraries\Mango.Nop.Core\bin\FruitBank\Debug\net9.0\Mango.Nop.Core.dll</HintPath>
|
<HintPath>..\..\NopCommerce.Common\4.70\Libraries\Mango.Nop.Core\bin\FruitBank\Debug\net9.0\Mango.Nop.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Components\Toolbars\" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
Loading…
Reference in New Issue