Skip to content

Commit 940a314

Browse files
Copilotconniey
andauthored
DI Refactor: Azure.Mcp.Tools.Marketplace (#2064)
* Initial plan * DI refactor: inject IMarketplaceService via constructor in ProductGetCommand and ProductListCommand Co-authored-by: conniey <10136526+conniey@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: conniey <10136526+conniey@users.noreply.github.com>
1 parent 8076681 commit 940a314

4 files changed

Lines changed: 10 additions & 15 deletions

File tree

tools/Azure.Mcp.Tools.Marketplace/src/Commands/Product/ProductGetCommand.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414

1515
namespace Azure.Mcp.Tools.Marketplace.Commands.Product;
1616

17-
public sealed class ProductGetCommand(ILogger<ProductGetCommand> logger) : SubscriptionCommand<ProductGetOptions>
17+
public sealed class ProductGetCommand(ILogger<ProductGetCommand> logger, IMarketplaceService marketplaceService) : SubscriptionCommand<ProductGetOptions>
1818
{
1919
private const string CommandTitle = "Get Marketplace Product";
2020
private readonly ILogger<ProductGetCommand> _logger = logger;
21+
private readonly IMarketplaceService _marketplaceService = marketplaceService;
2122

2223
public override string Id => "729a12ee-9c63-4a31-b1b8-4a81ad093564";
2324

@@ -81,12 +82,8 @@ public override async Task<CommandResponse> ExecuteAsync(CommandContext context,
8182

8283
try
8384
{
84-
85-
// Get the marketplace service from DI
86-
var marketplaceService = context.GetService<IMarketplaceService>();
87-
8885
// Call service operation with required parameters
89-
var result = await marketplaceService.GetProduct(
86+
var result = await _marketplaceService.GetProduct(
9087
options.ProductId!,
9188
options.Subscription!,
9289
options.IncludeStopSoldPlans,

tools/Azure.Mcp.Tools.Marketplace/src/Commands/Product/ProductListCommand.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414

1515
namespace Azure.Mcp.Tools.Marketplace.Commands.Product;
1616

17-
public sealed class ProductListCommand(ILogger<ProductListCommand> logger) : SubscriptionCommand<ProductListOptions>
17+
public sealed class ProductListCommand(ILogger<ProductListCommand> logger, IMarketplaceService marketplaceService) : SubscriptionCommand<ProductListOptions>
1818
{
1919
private const string CommandTitle = "List Marketplace Products";
2020
private readonly ILogger<ProductListCommand> _logger = logger;
21+
private readonly IMarketplaceService _marketplaceService = marketplaceService;
2122

2223
public override string Id => "0485e8f9-61bf-4baf-b914-7fa5530a6f78";
2324

@@ -81,11 +82,8 @@ public override async Task<CommandResponse> ExecuteAsync(CommandContext context,
8182
}
8283

8384

84-
// Get the marketplace service from DI
85-
var marketplaceService = context.GetService<IMarketplaceService>();
86-
8785
// Call service operation with required parameters
88-
var results = await marketplaceService.ListProducts(
86+
var results = await _marketplaceService.ListProducts(
8987
options.Subscription!,
9088
options.Language,
9189
options.Search,

tools/Azure.Mcp.Tools.Marketplace/tests/Azure.Mcp.Tools.Marketplace.UnitTests/Product/ProductGetCommandTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ public ProductGetCommandTests()
3030
_marketplaceService = Substitute.For<IMarketplaceService>();
3131
_logger = Substitute.For<ILogger<ProductGetCommand>>();
3232

33-
var collection = new ServiceCollection().AddSingleton(_marketplaceService);
33+
var collection = new ServiceCollection();
3434
_serviceProvider = collection.BuildServiceProvider();
3535

36-
_command = new(_logger);
36+
_command = new(_logger, _marketplaceService);
3737
_context = new(_serviceProvider);
3838
_commandDefinition = _command.GetCommand();
3939
}

tools/Azure.Mcp.Tools.Marketplace/tests/Azure.Mcp.Tools.Marketplace.UnitTests/Product/ProductListCommandTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ public ProductListCommandTests()
2828
_marketplaceService = Substitute.For<IMarketplaceService>();
2929
_logger = Substitute.For<ILogger<ProductListCommand>>();
3030

31-
var collection = new ServiceCollection().AddSingleton(_marketplaceService);
31+
var collection = new ServiceCollection();
3232
_serviceProvider = collection.BuildServiceProvider();
3333

34-
_command = new(_logger);
34+
_command = new(_logger, _marketplaceService);
3535
_context = new(_serviceProvider);
3636
}
3737

0 commit comments

Comments
 (0)