Compare commits

..

No commits in common. "FruitBank_v0.0.8.0" and "main" have entirely different histories.

17 changed files with 749 additions and 984 deletions

View File

@ -1,14 +0,0 @@
{
"permissions": {
"allow": [
"Bash(rm \"C:/Users/Fullepi/.claude/projects/H--Applications-Mango-Source-FruitBank/memory/feedback_doc_structure_meta_protocol.md\" \"C:/Users/Fullepi/.claude/projects/H--Applications-Mango-Source-FruitBank/memory/MEMORY.md\")",
"Bash(git -C \"H:/Applications/Mango/Source/NopCommerce.Common/4.70/Plugins\" rev-parse --show-toplevel)",
"Bash(git -C \"H:/Applications/Mango/Source/NopCommerce.Common/4.70/Plugins\" status --porcelain -- \"Nop.Plugin.Misc.AIPlugin/docs/SCHEMA.md\")",
"Bash(git -C \"H:/Applications/Mango/Source/FruitBankHybridApp\" rev-parse --show-toplevel)",
"Bash(git -C \"H:/Applications/Mango/Source/FruitBankHybridApp\" status --porcelain)",
"Bash(git -C \"H:/Applications/Mango/Source/FruitBankHybridApp/FruitBank.Common\" rev-parse --show-toplevel)",
"Bash(git -C \"H:/Applications/Mango/Source/FruitBankHybridApp/FruitBank.Common\" status --porcelain)",
"Bash(git -C H:/Applications/Mango/Source/NopCommerce.Common/4.70/Plugins show HEAD:Nop.Plugin.Misc.AIPlugin/docs/SCHEMA.md)"
]
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,17 +0,0 @@
CRITICAL: Your FIRST action in every session MUST be reading `.github/copilot-instructions.md`. Execute ALL session-start instructions found there before responding to any user query. It is the single source of truth for this repo.
## SEQUENTIAL EXECUTION OVERRIDE
The AI AGENT CORE PROTOCOL in copilot-instructions.md requires STRICT SEQUENTIAL execution. This OVERRIDES your default parallelization behavior. Do NOT parallelize doc reads with code searches. The sequence is:
1. Read copilot-instructions.md → process its rules FULLY
2. Read ALL docs/ .md files listed in the protocol → wait for completion
3. Output [LOADED_DOCS: ...] prefix
4. ONLY THEN respond to the user's query or search code
## Tool mapping for AI AGENT CORE PROTOCOL
The copilot-instructions.md references Copilot tool names. Map them to Claude Code tools:
- `get_file` / `file_search``Read`, `Glob`, `Grep`
- `code_search` / `get_symbols_by_name` / `find_symbol``Grep`, `Glob`
- `replace_string_in_file` / `edit_file``Edit`
- `create_file``Write`
Follow the protocol using YOUR tools. The rules (LOADED_DOCS prefix, hard-gate, no-re-read, context recovery, explicit consent) apply equally to Claude Code.

View File

@ -1,7 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17 # Visual Studio Version 18
VisualStudioVersion = 17.14.36804.6 VisualStudioVersion = 18.0.11222.15
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{E4ACA93B-D3DE-4557-B069-F1DB42925A4B}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{E4ACA93B-D3DE-4557-B069-F1DB42925A4B}"
EndProject EndProject
@ -87,16 +87,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nop.Plugin.Misc.MangoCore",
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Nop.Data", "..\NopCommerce.Common\4.70\Libraries\Mango.Nop.Data\Mango.Nop.Data.csproj", "{EE44B558-F1DA-433A-BD4C-D275986A4679}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Nop.Data", "..\NopCommerce.Common\4.70\Libraries\Mango.Nop.Data\Mango.Nop.Data.csproj", "{EE44B558-F1DA-433A-BD4C-D275986A4679}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{4403A2FE-7929-44A4-8701-60B3F759D400}"
ProjectSection(SolutionItems) = preProject
..\NopCommerce.Common\4.70\Libraries\docs\ARCHITECTURE.md = ..\NopCommerce.Common\4.70\Libraries\docs\ARCHITECTURE.md
..\NopCommerce.Common\4.70\Libraries\docs\CONVENTIONS.md = ..\NopCommerce.Common\4.70\Libraries\docs\CONVENTIONS.md
..\NopCommerce.Common\4.70\Libraries\docs\GLOSSARY.md = ..\NopCommerce.Common\4.70\Libraries\docs\GLOSSARY.md
..\NopCommerce.Common\4.70\Libraries\README.md = ..\NopCommerce.Common\4.70\Libraries\README.md
..\NopCommerce.Common\4.70\Libraries\CLAUDE.md = ..\NopCommerce.Common\4.70\Libraries\CLAUDE.md
..\NopCommerce.Common\4.70\Libraries\.github\copilot-instructions.md = ..\NopCommerce.Common\4.70\Libraries\.github\copilot-instructions.md
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Sandbox.EndPoints", "Tests\Mango.Sandbox\Mango.Sandbox.EndPoints\Mango.Sandbox.EndPoints.csproj", "{D22DB269-2490-4A3D-B0B4-2CD2BB626F9C}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Sandbox.EndPoints", "Tests\Mango.Sandbox\Mango.Sandbox.EndPoints\Mango.Sandbox.EndPoints.csproj", "{D22DB269-2490-4A3D-B0B4-2CD2BB626F9C}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Sandbox.EndPoints.Tests", "Tests\Mango.Sandbox\Mango.Sandbox.EndPoints.Tests\Mango.Sandbox.EndPoints.Tests.csproj", "{B8491E5C-DBB5-1594-052E-744D78D7A4DE}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Sandbox.EndPoints.Tests", "Tests\Mango.Sandbox\Mango.Sandbox.EndPoints.Tests\Mango.Sandbox.EndPoints.Tests.csproj", "{B8491E5C-DBB5-1594-052E-744D78D7A4DE}"
@ -104,7 +94,6 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5881709D-780C-402A-9627-928B25AE712B}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5881709D-780C-402A-9627-928B25AE712B}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
build_fruitbank.bat = build_fruitbank.bat build_fruitbank.bat = build_fruitbank.bat
.github\copilot-instructions.md = .github\copilot-instructions.md
EndProjectSection EndProjectSection
EndProject EndProject
Global Global
@ -594,7 +583,6 @@ Global
{3E893AC2-29F1-48FC-B33F-F73C6EE2BE90} = {0742FDF3-0F2E-4C64-9521-E58A7FF2ED26} {3E893AC2-29F1-48FC-B33F-F73C6EE2BE90} = {0742FDF3-0F2E-4C64-9521-E58A7FF2ED26}
{3976CB1D-8080-4B84-8C01-1F98BFCAF2B3} = {0742FDF3-0F2E-4C64-9521-E58A7FF2ED26} {3976CB1D-8080-4B84-8C01-1F98BFCAF2B3} = {0742FDF3-0F2E-4C64-9521-E58A7FF2ED26}
{EE44B558-F1DA-433A-BD4C-D275986A4679} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {EE44B558-F1DA-433A-BD4C-D275986A4679} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
{4403A2FE-7929-44A4-8701-60B3F759D400} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
{D22DB269-2490-4A3D-B0B4-2CD2BB626F9C} = {E8FC6874-E230-468A-9685-4747354B92FF} {D22DB269-2490-4A3D-B0B4-2CD2BB626F9C} = {E8FC6874-E230-468A-9685-4747354B92FF}
{B8491E5C-DBB5-1594-052E-744D78D7A4DE} = {E8FC6874-E230-468A-9685-4747354B92FF} {B8491E5C-DBB5-1594-052E-744D78D7A4DE} = {E8FC6874-E230-468A-9685-4747354B92FF}
EndGlobalSection EndGlobalSection

View File

@ -1,22 +1,22 @@
//namespace Nop.Core.Domain.Catalog; namespace Nop.Core.Domain.Catalog;
///// <summary> /// <summary>
///// Represents a backorder mode /// Represents a backorder mode
///// </summary> /// </summary>
//public enum BackorderMode public enum BackorderMode
//{ {
// /// <summary> /// <summary>
// /// No backorders /// No backorders
// /// </summary> /// </summary>
// NoBackorders = 0, NoBackorders = 0,
// /// <summary> /// <summary>
// /// Allow qty below 0 /// Allow qty below 0
// /// </summary> /// </summary>
// AllowQtyBelow0 = 1, AllowQtyBelow0 = 1,
// /// <summary> /// <summary>
// /// Allow qty below 0 and notify customer /// Allow qty below 0 and notify customer
// /// </summary> /// </summary>
// AllowQtyBelow0AndNotifyCustomer = 2, AllowQtyBelow0AndNotifyCustomer = 2,
//} }

View File

@ -1,17 +1,17 @@
//namespace Nop.Core.Domain.Catalog; namespace Nop.Core.Domain.Catalog;
///// <summary> /// <summary>
///// Represents a download activation type /// Represents a download activation type
///// </summary> /// </summary>
//public enum DownloadActivationType public enum DownloadActivationType
//{ {
// /// <summary> /// <summary>
// /// When order is paid /// When order is paid
// /// </summary> /// </summary>
// WhenOrderIsPaid = 0, WhenOrderIsPaid = 0,
// /// <summary> /// <summary>
// /// Manually /// Manually
// /// </summary> /// </summary>
// Manually = 10, Manually = 10,
//} }

View File

@ -1,17 +1,17 @@
//namespace Nop.Core.Domain.Catalog; namespace Nop.Core.Domain.Catalog;
///// <summary> /// <summary>
///// Represents a gift card type /// Represents a gift card type
///// </summary> /// </summary>
//public enum GiftCardType public enum GiftCardType
//{ {
// /// <summary> /// <summary>
// /// Virtual /// Virtual
// /// </summary> /// </summary>
// Virtual = 0, Virtual = 0,
// /// <summary> /// <summary>
// /// Physical /// Physical
// /// </summary> /// </summary>
// Physical = 1, Physical = 1,
//} }

View File

@ -1,22 +1,22 @@
//namespace Nop.Core.Domain.Catalog; namespace Nop.Core.Domain.Catalog;
///// <summary> /// <summary>
///// Represents a low stock activity /// Represents a low stock activity
///// </summary> /// </summary>
//public enum LowStockActivity public enum LowStockActivity
//{ {
// /// <summary> /// <summary>
// /// Nothing /// Nothing
// /// </summary> /// </summary>
// Nothing = 0, Nothing = 0,
// /// <summary> /// <summary>
// /// Disable buy button /// Disable buy button
// /// </summary> /// </summary>
// DisableBuyButton = 1, DisableBuyButton = 1,
// /// <summary> /// <summary>
// /// Unpublish /// Unpublish
// /// </summary> /// </summary>
// Unpublish = 2, Unpublish = 2,
//} }

View File

@ -1,22 +1,22 @@
//namespace Nop.Core.Domain.Catalog; namespace Nop.Core.Domain.Catalog;
///// <summary> /// <summary>
///// Represents a method of inventory management /// Represents a method of inventory management
///// </summary> /// </summary>
//public enum ManageInventoryMethod public enum ManageInventoryMethod
//{ {
// /// <summary> /// <summary>
// /// Don't track inventory for product /// Don't track inventory for product
// /// </summary> /// </summary>
// DontManageStock = 0, DontManageStock = 0,
// /// <summary> /// <summary>
// /// Track inventory for product /// Track inventory for product
// /// </summary> /// </summary>
// ManageStock = 1, ManageStock = 1,
// /// <summary> /// <summary>
// /// Track inventory for product by product attributes /// Track inventory for product by product attributes
// /// </summary> /// </summary>
// ManageStockByAttributes = 2, ManageStockByAttributes = 2,
//} }

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,17 @@
//namespace Nop.Core.Domain.Catalog; namespace Nop.Core.Domain.Catalog;
///// <summary> /// <summary>
///// Represents a product type /// Represents a product type
///// </summary> /// </summary>
//public enum ProductType public enum ProductType
//{ {
// /// <summary> /// <summary>
// /// Simple /// Simple
// /// </summary> /// </summary>
// SimpleProduct = 5, SimpleProduct = 5,
// /// <summary> /// <summary>
// /// Grouped (product with variants) /// Grouped (product with variants)
// /// </summary> /// </summary>
// GroupedProduct = 10, GroupedProduct = 10,
//} }

View File

@ -1,27 +1,27 @@
//namespace Nop.Core.Domain.Catalog; namespace Nop.Core.Domain.Catalog;
///// <summary> /// <summary>
///// Represents a recurring product cycle period /// Represents a recurring product cycle period
///// </summary> /// </summary>
//public enum RecurringProductCyclePeriod public enum RecurringProductCyclePeriod
//{ {
// /// <summary> /// <summary>
// /// Days /// Days
// /// </summary> /// </summary>
// Days = 0, Days = 0,
// /// <summary> /// <summary>
// /// Weeks /// Weeks
// /// </summary> /// </summary>
// Weeks = 10, Weeks = 10,
// /// <summary> /// <summary>
// /// Months /// Months
// /// </summary> /// </summary>
// Months = 20, Months = 20,
// /// <summary> /// <summary>
// /// Years /// Years
// /// </summary> /// </summary>
// Years = 30, Years = 30,
//} }

View File

@ -1,27 +1,27 @@
//namespace Nop.Core.Domain.Catalog; namespace Nop.Core.Domain.Catalog;
///// <summary> /// <summary>
///// Represents a rental product period (for prices) /// Represents a rental product period (for prices)
///// </summary> /// </summary>
//public enum RentalPricePeriod public enum RentalPricePeriod
//{ {
// /// <summary> /// <summary>
// /// Days /// Days
// /// </summary> /// </summary>
// Days = 0, Days = 0,
// /// <summary> /// <summary>
// /// Weeks /// Weeks
// /// </summary> /// </summary>
// Weeks = 10, Weeks = 10,
// /// <summary> /// <summary>
// /// Months /// Months
// /// </summary> /// </summary>
// Months = 20, Months = 20,
// /// <summary> /// <summary>
// /// Years /// Years
// /// </summary> /// </summary>
// Years = 30, Years = 30,
//} }

View File

@ -1,6 +1,6 @@
{ {
"ConnectionStrings": { "ConnectionStrings": {
"ConnectionString": "Data Source=100.73.220.50;Initial Catalog=FruitBank_DEV;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=v6f_?xNfg9N1;Trust Server Certificate=True", "ConnectionString": "Data Source=100.73.220.50;Initial Catalog=FruitBank_PROD;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=v6f_?xNfg9N1;Trust Server Certificate=True",
"DataProvider": "sqlserver", "DataProvider": "sqlserver",
"SQLCommandTimeout": null, "SQLCommandTimeout": null,
"WithNoLock": false "WithNoLock": false

View File

@ -17,7 +17,7 @@
padding-right: 10px; padding-right: 10px;
} }
/* PreOrder item — teal accent to distinguish from Quick Order */ /* Preorder item — teal accent to distinguish from Quick Order */
.top-menu .preorder-menu-item > a { .top-menu .preorder-menu-item > a {
color: #2d9e9e !important; color: #2d9e9e !important;
} }

View File

@ -26,7 +26,7 @@ public class DevAdminSignalRHubSandbox : AcWebSignalRHubWithSessionBase<SignalRT
: base(configuration, new Logger<DevAdminSignalRHubSandbox>(logWriters.ToArray())) : base(configuration, new Logger<DevAdminSignalRHubSandbox>(logWriters.ToArray()))
{ {
SerializerOptions = new AcBinarySerializerOptions(); SerializerOptions = new AcBinarySerializerOptions();
DynamicMethodRegistry.Register(testSignalREndpoint); DynamicMethodCallModels.Add(new AcDynamicMethodCallModel<SignalRAttribute>(testSignalREndpoint));
} }
//protected override Task SendMessageToClient(IAcSignalRHubItemServer sendTo, int messageTag, ISignalRMessage message, int? requestId = null) //protected override Task SendMessageToClient(IAcSignalRHubItemServer sendTo, int messageTag, ISignalRMessage message, int? requestId = null)

View File

@ -1,8 +0,0 @@
# Conventions
> For core framework conventions see `AyCode.Core/docs/CONVENTIONS.md`.
> For Mango.Nop library conventions see `Mango.Nop Libraries/docs/CONVENTIONS.md`.
## XML Documentation
`<summary>` — brief, developer-facing, readable in VS IntelliSense tooltip. NO implementation details, NO wire-format / byte-level / perf specifics — those live in `docs/TOPIC/*.md`. Add `<example>` only when usage is non-obvious; otherwise omit.