From 7739ca20a9b932b814de99ceee2f468bdebf341b Mon Sep 17 00:00:00 2001 From: Slava Vedernikov Date: Sat, 16 Mar 2024 14:08:49 +0000 Subject: [PATCH] Added support for partial Interface Aliases in Use Flows of YAML AaC --- .../C4InterFlow.Automation.csproj | 4 +-- .../Readers/JObjectStructuresResolver.cs | 32 +++++++++++++++++++ C4InterFlow.Cli/C4InterFlow.Cli.csproj | 2 +- C4InterFlow.Cli/CLI Commands.txt | 2 +- .../Properties/launchSettings.json | 2 +- C4InterFlow/C4InterFlow.csproj | 4 +-- .../SoftwareSystems/Basket Service.yaml | 10 +++--- .../Buying And Merchandising App.yaml | 12 +++---- .../SoftwareSystems/Buying Service.yaml | 26 +++++++-------- .../Architecture/SoftwareSystems/CRM App.yaml | 4 +-- .../SoftwareSystems/Fraud Service.yaml | 16 +++++----- .../SoftwareSystems/Fulfilment Service.yaml | 12 +++---- .../SoftwareSystems/Order Service.yaml | 22 ++++++------- .../Architecture/SoftwareSystems/PIM App.yaml | 6 ++-- .../SoftwareSystems/Payment Service.yaml | 10 +++--- .../SoftwareSystems/Pricing Service.yaml | 18 +++++------ .../SoftwareSystems/Product Service.yaml | 26 +++++++-------- .../SoftwareSystems/Search Service.yaml | 18 +++++------ .../SoftwareSystems/Storefront App.yaml | 14 ++++---- .../SoftwareSystems/Storefront Bff.yaml | 16 +++++----- 20 files changed, 144 insertions(+), 112 deletions(-) diff --git a/C4InterFlow.Automation/C4InterFlow.Automation.csproj b/C4InterFlow.Automation/C4InterFlow.Automation.csproj index f1a23af7f..418ce8e11 100644 --- a/C4InterFlow.Automation/C4InterFlow.Automation.csproj +++ b/C4InterFlow.Automation/C4InterFlow.Automation.csproj @@ -7,12 +7,12 @@ true true snupkg - 0.37.0 + 0.38.0 C4InterFlow.Automation - 0.37.0 + 0.38.0 Slava Vedernikov Revolutionise your Application Architecture Documentation with C4InterFlow. Designed for Architects and Engineers, this tool leverages the widely-recognised C4 Model (Architecture Visualisation framework), enhanced with unique features like Interface and Flow, to describe your Application Architecture as Code. Experience an intuitive, efficient way to document complex systems, ensuring clarity and consistency across your teams and products. Copyright 2024 Slava Vedernikov diff --git a/C4InterFlow.Automation/Readers/JObjectStructuresResolver.cs b/C4InterFlow.Automation/Readers/JObjectStructuresResolver.cs index f51486bcc..19d8412f0 100644 --- a/C4InterFlow.Automation/Readers/JObjectStructuresResolver.cs +++ b/C4InterFlow.Automation/Readers/JObjectStructuresResolver.cs @@ -19,6 +19,7 @@ public JObjectStructuresResolver() public JObjectStructuresResolver(JObject rootJObject) { RootJObject = rootJObject; + CompletePartialUseFlowExpressions(); } public T? GetInstance(string? alias) where T : Structure @@ -234,6 +235,37 @@ public IEnumerable GetNestedInstances(string? alias) where T : Structure return result; } + public void CompletePartialUseFlowExpressions() + { + var interfaces = RootJObject.SelectTokens("..Interfaces.*"); + + foreach (var @interface in interfaces) + { + var useFlows = @interface.SelectTokens("..[?(@.Type=='Use')]"); + + foreach (var useFlow in useFlows) + { + var usesInterfaceAlias = useFlow["Expression"].ToString(); + var usesInterface = RootJObject.SelectToken(usesInterfaceAlias); + + if (usesInterface == null) + { + var parent = @interface; + do + { + parent = parent.Parent; + usesInterface = parent.SelectToken(usesInterfaceAlias); + } while (usesInterface == null && parent.Parent != null); + + if(usesInterface != null) + { + useFlow["Expression"] = usesInterface.Path; + } + } + } + } + } + public void Validate(out IEnumerable errors) { var errorsInternal = new List(); diff --git a/C4InterFlow.Cli/C4InterFlow.Cli.csproj b/C4InterFlow.Cli/C4InterFlow.Cli.csproj index aabf26eba..408c0b05b 100644 --- a/C4InterFlow.Cli/C4InterFlow.Cli.csproj +++ b/C4InterFlow.Cli/C4InterFlow.Cli.csproj @@ -5,7 +5,7 @@ net6.0 enable enable - 0.37.0 + 0.38.0 true true win-x64 diff --git a/C4InterFlow.Cli/CLI Commands.txt b/C4InterFlow.Cli/CLI Commands.txt index 75d0b176f..150713c80 100644 --- a/C4InterFlow.Cli/CLI Commands.txt +++ b/C4InterFlow.Cli/CLI Commands.txt @@ -2,4 +2,4 @@ execute-aac-strategy --aac-root-namespace "BigBankPlc" --aac-output-path "Archit draw-diagrams --aac-input-paths "C:\C4InterFlow\Samples\Internet Banking System\CSV\Architecture\Yaml" --aac-reader-strategy "C4InterFlow.Automation.Readers.YamlAaCReaderStrategy,C4InterFlow.Automation" --interfaces BigBankPlc.SoftwareSystems.*.Containers.*.Interfaces.* --business-processes BigBankPlc.BusinessProcesses.* --levels-of-details context container --output-dir "C:\C4InterFlow\Samples\Internet Banking System\CSV\Diagrams" -draw-diagrams --aac-input-paths "C:\C4InterFlow\Samples\E-Commerce Platform\Yaml\Architecture" --aac-reader-strategy "C4InterFlow.Automation.Readers.YamlAaCReaderStrategy,C4InterFlow.Automation" --interfaces ECommercePlatform.SoftwareSystems.*.Containers.*.Interfaces.* --output-dir "C:\C4InterFlow\Samples\E-Commerce Platform\Yaml\Diagrams" \ No newline at end of file +draw-diagrams --aac-input-paths "C:\C4InterFlow\Samples\E-Commerce Platform\Yaml\Architecture" --aac-reader-strategy "C4InterFlow.Automation.Readers.YamlAaCReaderStrategy,C4InterFlow.Automation" --interfaces ECommercePlatform.SoftwareSystems.*.Interfaces.* ECommercePlatform.SoftwareSystems.*.Containers.*.Interfaces.* --levels-of-details context container --output-dir "C:\C4InterFlow\Samples\E-Commerce Platform\Yaml\Diagrams" \ No newline at end of file diff --git a/C4InterFlow.Cli/Properties/launchSettings.json b/C4InterFlow.Cli/Properties/launchSettings.json index 7821c9e23..5abe6993a 100644 --- a/C4InterFlow.Cli/Properties/launchSettings.json +++ b/C4InterFlow.Cli/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "C4InterFlow.Cli": { "commandName": "Project", - "commandLineArgs": "draw-diagrams --aac-input-paths \"C:\\C4InterFlow\\Samples\\Internet Banking System\\CSV\\Architecture\\Yaml\" --aac-reader-strategy \"C4InterFlow.Automation.Readers.YamlAaCReaderStrategy,C4InterFlow.Automation\" --interfaces BigBankPlc.SoftwareSystems.*.Containers.*.Interfaces.* --business-processes BigBankPlc.BusinessProcesses.* --levels-of-details context container --output-dir \"C:\\C4InterFlow\\Samples\\Internet Banking System\\CSV\\Diagrams\"\r\n", + "commandLineArgs": "draw-diagrams --aac-input-paths \"C:\\C4InterFlow\\Samples\\E-Commerce Platform\\Yaml\\Architecture\" --aac-reader-strategy \"C4InterFlow.Automation.Readers.YamlAaCReaderStrategy,C4InterFlow.Automation\" --interfaces ECommercePlatform.SoftwareSystems.*.Interfaces.* ECommercePlatform.SoftwareSystems.*.Containers.*.Interfaces.* --levels-of-details context container --output-dir \"C:\\C4InterFlow\\Samples\\E-Commerce Platform\\Yaml\\Diagrams\"", "workingDirectory": "C:\\C4InterFlow\\Samples\\Internet Banking System\\CSV" } } diff --git a/C4InterFlow/C4InterFlow.csproj b/C4InterFlow/C4InterFlow.csproj index a95378464..456657f67 100644 --- a/C4InterFlow/C4InterFlow.csproj +++ b/C4InterFlow/C4InterFlow.csproj @@ -7,12 +7,12 @@ true true snupkg - 0.37.0 + 0.38.0 C4InterFlow - 0.37.0 + 0.38.0 Slava Vedernikov Revolutionise your Application Architecture Documentation with C4InterFlow. Designed for Architects and Engineers, this tool leverages the widely-recognised C4 Model (Architecture Visualisation framework), enhanced with unique features like Interface and Flow, to describe your Application Architecture as Code. Experience an intuitive, efficient way to document complex systems, ensuring clarity and consistency across your teams and products. Copyright 2024 Slava Vedernikov diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Basket Service.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Basket Service.yaml index a934760a3..1aba9a594 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Basket Service.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Basket Service.yaml @@ -8,27 +8,27 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Database.Interfaces.SelectItems + Expression: Database.Interfaces.SelectItems AddItem: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Database.Interfaces.InsertItem + Expression: Database.Interfaces.InsertItem UpdateItem: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Database.Interfaces.UpdateItem + Expression: Database.Interfaces.UpdateItem DeleteItem: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Database.Interfaces.DeleteItem + Expression: Database.Interfaces.DeleteItem DeleteBasket: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Database.Interfaces.DeleteBasket + Expression: Database.Interfaces.DeleteBasket Database: Interfaces: InsertItem: {} diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Buying And Merchandising App.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Buying And Merchandising App.yaml index a06c3e25e..9130b7b10 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Buying And Merchandising App.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Buying And Merchandising App.yaml @@ -6,29 +6,29 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Api.Interfaces.GetPurchaseOrders + Expression: BuyingService.Containers.Api.Interfaces.GetPurchaseOrders CreatePurchaseOrder: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Api.Interfaces.CreatePurchaseOrder + Expression: BuyingService.Containers.Api.Interfaces.CreatePurchaseOrder UpdatePurchaseOrder: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Api.Interfaces.UpdatePurchaseOrder + Expression: BuyingService.Containers.Api.Interfaces.UpdatePurchaseOrder DeletePurchaseOrder: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Api.Interfaces.DeletePurchaseOrder + Expression: BuyingService.Containers.Api.Interfaces.DeletePurchaseOrder ViewProductPrices: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Api.Interfaces.GetProductPrices + Expression: PricingService.Containers.Api.Interfaces.GetProductPrices UpdateProductPrices: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Api.Interfaces.UpdateProductPrices \ No newline at end of file + Expression: PricingService.Containers.Api.Interfaces.UpdateProductPrices \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Buying Service.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Buying Service.yaml index efdc962e4..55b761b4e 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Buying Service.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Buying Service.yaml @@ -8,28 +8,28 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Database.Interfaces.SelectPurchaseOrder + Expression: Database.Interfaces.SelectPurchaseOrder CreatePurchaseOrder: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Database.Interfaces.InsertPurchaseOrder + Expression: Database.Interfaces.InsertPurchaseOrder - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.SendPurchaseOrderCreatedEvent + Expression: Messaging.Interfaces.SendPurchaseOrderCreatedEvent UpdatePurchaseOrder: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Database.Interfaces.UpdatePurchaseOrder + Expression: Database.Interfaces.UpdatePurchaseOrder - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.SendPurchaseOrderUpdatedEvent + Expression: Messaging.Interfaces.SendPurchaseOrderUpdatedEvent DeletePurchaseOrder: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Database.Interfaces.DeletePurchaseOrder + Expression: Database.Interfaces.DeletePurchaseOrder - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.SendPurchaseOrderDeletedEvent + Expression: Messaging.Interfaces.SendPurchaseOrderDeletedEvent Database: Interfaces: InsertPurchaseOrder: {} @@ -50,20 +50,20 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderCreatedEvent + Expression: Messaging.Interfaces.ReceivePurchaseOrderCreatedEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.WMS.Interfaces.CreatePurchaseOrder + Expression: WMS.Interfaces.CreatePurchaseOrder HandlePurchaseOrderUpdatedEvent: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderUpdatedEvent + Expression: Messaging.Interfaces.ReceivePurchaseOrderUpdatedEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.WMS.Interfaces.UpdatePurchaseOrder + Expression: WMS.Interfaces.UpdatePurchaseOrder HandlePurchaseOrderDeletedEvent: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderDeletedEvent + Expression: Messaging.Interfaces.ReceivePurchaseOrderDeletedEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.WMS.Interfaces.DeletePurchaseOrder \ No newline at end of file + Expression: WMS.Interfaces.DeletePurchaseOrder \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/CRM App.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/CRM App.yaml index 6d89b2ec9..a10794cce 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/CRM App.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/CRM App.yaml @@ -6,9 +6,9 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudService.Containers.Api.Interfaces.GetHighRiskOrders + Expression: FraudService.Containers.Api.Interfaces.GetHighRiskOrders UpdateOrderFraudCheckResult: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudService.Containers.Api.Interfaces.UpdateOrderFraudCheckResult \ No newline at end of file + Expression: FraudService.Containers.Api.Interfaces.UpdateOrderFraudCheckResult \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Fraud Service.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Fraud Service.yaml index 362945606..1b8bffb34 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Fraud Service.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Fraud Service.yaml @@ -8,14 +8,14 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudService.Containers.Database.Interfaces.SelectHighRiskOrders + Expression: Database.Interfaces.SelectHighRiskOrders UpdateOrderFraudCheckResult: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudService.Containers.Database.Interfaces.UpdateFraudCheckResult + Expression: Database.Interfaces.UpdateFraudCheckResult - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudService.Containers.Messaging.Interfaces.SendFraudCheckResultEvent + Expression: Messaging.Interfaces.SendFraudCheckResultEvent Database: Interfaces: InsertOrder: {} @@ -32,12 +32,12 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Messaging.Interfaces.ReceiveOrderCreatedEvent + Expression: OrderService.Containers.Messaging.Interfaces.ReceiveOrderCreatedEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudService.Containers.Database.Interfaces.InsertOrder + Expression: Database.Interfaces.InsertOrder - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudEngine.Interfaces.GetFraudCheckResult + Expression: FraudEngine.Interfaces.GetFraudCheckResult - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudService.Containers.Database.Interfaces.InsertFraudCheckResult + Expression: Database.Interfaces.InsertFraudCheckResult - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudService.Containers.Messaging.Interfaces.SendFraudCheckResultEvent \ No newline at end of file + Expression: Messaging.Interfaces.SendFraudCheckResultEvent \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Fulfilment Service.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Fulfilment Service.yaml index ea7b2fa5c..4915d3eaf 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Fulfilment Service.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Fulfilment Service.yaml @@ -8,9 +8,9 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FulfilmentService.Containers.Database.Interfaces.UpdateOrderStatus + Expression: Database.Interfaces.UpdateOrderStatus - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FulfilmentService.Containers.Messaging.Interfaces.SendOrderShippedEvent + Expression: Messaging.Interfaces.SendOrderShippedEvent Database: Interfaces: InsertOrder: {} @@ -25,13 +25,13 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Messaging.Interfaces.ReceiveOrderStatusChangedEvent + Expression: OrderService.Containers.Messaging.Interfaces.ReceiveOrderStatusChangedEvent - Type: If Expression: Order Status is 'Pending Shipment' Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FulfilmentService.Containers.Database.Interfaces.InsertOrder + Expression: Database.Interfaces.InsertOrder - Type: Use - Expression: ECommercePlatform.SoftwareSystems.WMS.Interfaces.ShipOrder + Expression: WMS.Interfaces.ShipOrder - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FulfilmentService.Containers.Database.Interfaces.UpdateOrderStatus \ No newline at end of file + Expression: Database.Interfaces.UpdateOrderStatus \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Order Service.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Order Service.yaml index a0ace1247..0903f5717 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Order Service.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Order Service.yaml @@ -8,9 +8,9 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Database.Interfaces.InsertOrder + Expression: Database.Interfaces.InsertOrder - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Messaging.Interfaces.SendOrderCreatedEvent + Expression: Messaging.Interfaces.SendOrderCreatedEvent Database: Interfaces: InsertOrder: {} @@ -27,26 +27,26 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FraudService.Containers.Messaging.Interfaces.ReceiveFraudCheckResultEvent + Expression: FraudService.Containers.Messaging.Interfaces.ReceiveFraudCheckResultEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Database.Interfaces.UpdateOrderStatus + Expression: Database.Interfaces.UpdateOrderStatus - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Messaging.Interfaces.SendOrderStatusChangedEvent + Expression: Messaging.Interfaces.SendOrderStatusChangedEvent HandlePaymentResultEvent: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PaymentService.Containers.Messaging.Interfaces.ReceivePaymentResultEvent + Expression: PaymentService.Containers.Messaging.Interfaces.ReceivePaymentResultEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Database.Interfaces.UpdateOrderStatus + Expression: Database.Interfaces.UpdateOrderStatus - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Messaging.Interfaces.SendOrderStatusChangedEvent + Expression: Messaging.Interfaces.SendOrderStatusChangedEvent HandleOrderShippedEvent: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.FulfilmentService.Containers.Messaging.Interfaces.ReceiveOrderShippedEvent + Expression: FulfilmentService.Containers.Messaging.Interfaces.ReceiveOrderShippedEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Database.Interfaces.UpdateOrderStatus + Expression: Database.Interfaces.UpdateOrderStatus - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Messaging.Interfaces.SendOrderStatusChangedEvent + Expression: Messaging.Interfaces.SendOrderStatusChangedEvent diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/PIM App.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/PIM App.yaml index 3060ede7b..93edbe225 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/PIM App.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/PIM App.yaml @@ -6,14 +6,14 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Api.Interfaces.GetProducts + Expression: ProductService.Containers.Api.Interfaces.GetProducts UpdateProduct: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Api.Interfaces.UpdateProduct + Expression: ProductService.Containers.Api.Interfaces.UpdateProduct DeleteProduct: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Api.Interfaces.DeleteProduct \ No newline at end of file + Expression: ProductService.Containers.Api.Interfaces.DeleteProduct \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Payment Service.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Payment Service.yaml index 95898be3c..11df490a3 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Payment Service.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Payment Service.yaml @@ -8,9 +8,9 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PaymentService.Containers.Database.Interfaces.InsertPaymentResult + Expression: Database.Interfaces.InsertPaymentResult - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PaymentService.Containers.Messaging.Interfaces.SendPaymentResultEvent + Expression: Messaging.Interfaces.SendPaymentResultEvent Database: Interfaces: InsertPaymentResult: {} @@ -25,11 +25,11 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Messaging.Interfaces.ReceiveOrderStatusChangedEvent + Expression: OrderService.Containers.Messaging.Interfaces.ReceiveOrderStatusChangedEvent - Type: If Expression: Order Status is 'Pending Payment' Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PaymentService.Containers.Database.Interfaces.InsertOrder + Expression: Database.Interfaces.InsertOrder - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PaymentProvider.Interfaces.ProcessPayment \ No newline at end of file + Expression: PaymentProvider.Interfaces.ProcessPayment \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Pricing Service.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Pricing Service.yaml index e4318fde4..29bd2c2e3 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Pricing Service.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Pricing Service.yaml @@ -8,14 +8,14 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Database.Interfaces.SelectProductPrices + Expression: Database.Interfaces.SelectProductPrices UpdateProductPrices: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Database.Interfaces.UpdateProductPrices + Expression: Database.Interfaces.UpdateProductPrices - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Messaging.Interfaces.SendProductPriceChangedEvent + Expression: Messaging.Interfaces.SendProductPriceChangedEvent Database: Interfaces: InsertProduct: {} @@ -32,29 +32,29 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderCreatedEvent + Expression: BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderCreatedEvent - Type: Loop Expression: For each Product in Purchase Order Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Database.Interfaces.SelectProducts + Expression: Database.Interfaces.SelectProducts - Type: If Expression: Product Not Found Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Database.Interfaces.InsertProduct + Expression: Database.Interfaces.InsertProduct HandlePurchaseOrderUpdatedEvent: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderUpdatedEvent + Expression: BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderUpdatedEvent - Type: Loop Expression: For each Product in Purchase Order Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Database.Interfaces.SelectProducts + Expression: Database.Interfaces.SelectProducts - Type: If Expression: Product Not Found Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Database.Interfaces.InsertProduct \ No newline at end of file + Expression: Database.Interfaces.InsertProduct \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Product Service.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Product Service.yaml index 780571dda..19319100d 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Product Service.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Product Service.yaml @@ -8,21 +8,21 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Database.Interfaces.SelectProducts + Expression: Database.Interfaces.SelectProducts UpdateProduct: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Database.Interfaces.UpdateProduct + Expression: Database.Interfaces.UpdateProduct - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Messaging.Interfaces.SendProductUpdatedEvent + Expression: Messaging.Interfaces.SendProductUpdatedEvent DeleteProduct: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Database.Interfaces.DeleteProduct + Expression: Database.Interfaces.DeleteProduct - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Messaging.Interfaces.SendProductDeletedEvent + Expression: Messaging.Interfaces.SendProductDeletedEvent Database: Interfaces: SelectProducts: {} @@ -43,33 +43,33 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderCreatedEvent + Expression: BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderCreatedEvent - Type: Loop Expression: For each Product in Purchase Order Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Database.Interfaces.SelectProducts + Expression: Database.Interfaces.SelectProducts - Type: If Expression: Product Not Found Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Database.Interfaces.InsertProduct + Expression: Database.Interfaces.InsertProduct - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Messaging.Interfaces.SendProductCreatedEvent + Expression: Messaging.Interfaces.SendProductCreatedEvent HandlePurchaseOrderUpdatedEvent: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderUpdatedEvent + Expression: BuyingService.Containers.Messaging.Interfaces.ReceivePurchaseOrderUpdatedEvent - Type: Loop Expression: For each Product in Purchase Order Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Database.Interfaces.SelectProducts + Expression: Database.Interfaces.SelectProducts - Type: If Expression: Product Not Found Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Database.Interfaces.InsertProduct + Expression: Database.Interfaces.InsertProduct - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Messaging.Interfaces.SendProductCreatedEvent \ No newline at end of file + Expression: Messaging.Interfaces.SendProductCreatedEvent \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Search Service.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Search Service.yaml index 5abbf9650..42a06b7da 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Search Service.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Search Service.yaml @@ -8,7 +8,7 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.SearchService.Containers.Database.Interfaces.SelectProducts + Expression: Database.Interfaces.SelectProducts Database: Interfaces: SelectProducts: {} @@ -22,27 +22,27 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.PricingService.Containers.Messaging.Interfaces.ReceiveProductPriceChangedEvent + Expression: PricingService.Containers.Messaging.Interfaces.ReceiveProductPriceChangedEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.SearchService.Containers.Database.Interfaces.UpdateProductPrices + Expression: Database.Interfaces.UpdateProductPrices HandleProductCreatedEvent: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Messaging.Interfaces.ReceiveProductCreatedEvent + Expression: ProductService.Containers.Messaging.Interfaces.ReceiveProductCreatedEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.SearchService.Containers.Database.Interfaces.InsertProduct + Expression: Database.Interfaces.InsertProduct HandleProductUpdatedEvent: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Messaging.Interfaces.ReceiveProductUpdatedEvent + Expression: ProductService.Containers.Messaging.Interfaces.ReceiveProductUpdatedEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.SearchService.Containers.Database.Interfaces.UpdateProduct + Expression: Database.Interfaces.UpdateProduct HandleProductDeletedEvent: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Messaging.Interfaces.ReceiveProductDeletedEvent + Expression: ProductService.Containers.Messaging.Interfaces.ReceiveProductDeletedEvent - Type: Use - Expression: ECommercePlatform.SoftwareSystems.SearchService.Containers.Database.Interfaces.DeleteProduct \ No newline at end of file + Expression: Database.Interfaces.DeleteProduct \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Storefront App.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Storefront App.yaml index a85943e9b..0fda395ff 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Storefront App.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Storefront App.yaml @@ -6,34 +6,34 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.StorefrontBff.Interfaces.GetProducts + Expression: StorefrontBff.Interfaces.GetProducts SearchProducts: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.StorefrontBff.Interfaces.SearchProducts + Expression: StorefrontBff.Interfaces.SearchProducts ViewBasket: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.StorefrontBff.Interfaces.GetBasket + Expression: StorefrontBff.Interfaces.GetBasket AddProductToBasket: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.StorefrontBff.Interfaces.AddBasketItem + Expression: StorefrontBff.Interfaces.AddBasketItem UpdateBasketItem: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.StorefrontBff.Interfaces.UpdateBasketItem + Expression: StorefrontBff.Interfaces.UpdateBasketItem DeleteBasketItem: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.StorefrontBff.Interfaces.DeleteBasketItem + Expression: StorefrontBff.Interfaces.DeleteBasketItem Checkout : Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.StorefrontBff.Interfaces.Checkout \ No newline at end of file + Expression: StorefrontBff.Interfaces.Checkout \ No newline at end of file diff --git a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Storefront Bff.yaml b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Storefront Bff.yaml index c1aca1ac2..e50850ece 100644 --- a/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Storefront Bff.yaml +++ b/Samples/E-Commerce Platform/Yaml/Architecture/SoftwareSystems/Storefront Bff.yaml @@ -6,37 +6,37 @@ ECommercePlatform: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.ProductService.Containers.Api.Interfaces.GetProducts + Expression: ProductService.Containers.Api.Interfaces.GetProducts SearchProducts: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.SearchService.Containers.Api.Interfaces.SearchProducts + Expression: SearchService.Containers.Api.Interfaces.SearchProducts GetBasket: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Api.Interfaces.GetItems + Expression: BasketService.Containers.Api.Interfaces.GetItems AddBasketItem: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Api.Interfaces.AddItem + Expression: BasketService.Containers.Api.Interfaces.AddItem UpdateBasketItem: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Api.Interfaces.UpdateItem + Expression: BasketService.Containers.Api.Interfaces.UpdateItem DeleteBasketItem: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Api.Interfaces.DeleteItem + Expression: BasketService.Containers.Api.Interfaces.DeleteItem Checkout: Flow: Flows: - Type: Use - Expression: ECommercePlatform.SoftwareSystems.OrderService.Containers.Api.Interfaces.CreateOrder + Expression: OrderService.Containers.Api.Interfaces.CreateOrder - Type: Use - Expression: ECommercePlatform.SoftwareSystems.BasketService.Containers.Api.Interfaces.DeleteBasket + Expression: BasketService.Containers.Api.Interfaces.DeleteBasket \ No newline at end of file