Browse Source

Refactor TelemetryService usage to constructor injection

Replaces property-based ITelemetryService injection with constructor injection and private readonly fields across CLI command and service classes. This change improves dependency management and aligns with best practices for service injection.
pull/24395/head
SALİH ÖZKARA 2 months ago
parent
commit
d64d4574ee
  1. 12
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs
  2. 9
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddModuleCommand.cs
  3. 11
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs
  4. 9
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanCommand.cs
  5. 7
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ListModulesCommand.cs
  6. 9
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs
  7. 7
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/UpdateCommand.cs

12
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs

@ -22,8 +22,8 @@ namespace Volo.Abp.Cli;
public class CliService : ITransientDependency
{
private readonly MemoryService _memoryService;
private readonly ITelemetryService _telemetryService;
public ILogger<CliService> Logger { get; set; }
public ITelemetryService TelemetryService { get; set; }
protected ICommandLineArgumentParser CommandLineArgumentParser { get; }
protected ICommandSelector CommandSelector { get; }
protected IServiceScopeFactory ServiceScopeFactory { get; }
@ -38,7 +38,8 @@ public class CliService : ITransientDependency
PackageVersionCheckerService nugetService,
ICmdHelper cmdHelper,
MemoryService memoryService,
CliVersionService cliVersionService)
CliVersionService cliVersionService,
ITelemetryService telemetryService)
{
_memoryService = memoryService;
CommandLineArgumentParser = commandLineArgumentParser;
@ -47,6 +48,7 @@ public class CliService : ITransientDependency
PackageVersionCheckerService = nugetService;
CmdHelper = cmdHelper;
CliVersionService = cliVersionService;
_telemetryService = telemetryService;
Logger = NullLogger<CliService>.Instance;
}
@ -67,7 +69,7 @@ public class CliService : ITransientDependency
try
{
await using var _ = TelemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliRun);
await using var _ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliRun);
if (commandLineArgs.IsCommand("prompt"))
{
await RunPromptAsync();
@ -88,13 +90,13 @@ public class CliService : ITransientDependency
}
catch (Exception ex)
{
await TelemetryService.AddErrorActivityAsync(ex.Message);
await _telemetryService.AddErrorActivityAsync(ex.Message);
Logger.LogException(ex);
throw;
}
finally
{
await TelemetryService.AddActivityAsync(ActivityNameConsts.AbpCliExit);
await _telemetryService.AddActivityAsync(ActivityNameConsts.AbpCliExit);
}
}

9
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddModuleCommand.cs

@ -22,8 +22,9 @@ public class AddModuleCommand : IConsoleCommand, ITransientDependency
public const string Name = "add-module";
private AddModuleInfoOutput _lastAddedModuleInfo;
private readonly ITelemetryService _telemetryService;
public ILogger<AddModuleCommand> Logger { get; set; }
public ITelemetryService TelemetryService { get; set; }
protected SolutionModuleAdder SolutionModuleAdder { get; }
public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; }
@ -42,11 +43,13 @@ public class AddModuleCommand : IConsoleCommand, ITransientDependency
public AddModuleCommand(
SolutionModuleAdder solutionModuleAdder,
SolutionPackageVersionFinder solutionPackageVersionFinder,
IOptions<AbpCliOptions> options)
IOptions<AbpCliOptions> options,
ITelemetryService telemetryService)
{
_options = options.Value;
SolutionModuleAdder = solutionModuleAdder;
SolutionPackageVersionFinder = solutionPackageVersionFinder;
_telemetryService = telemetryService;
Logger = NullLogger<AddModuleCommand>.Instance;
}
@ -70,7 +73,7 @@ public class AddModuleCommand : IConsoleCommand, ITransientDependency
var newTemplate = commandLineArgs.Options.ContainsKey(Options.NewTemplate.Long);
await using var _ = TelemetryService.TrackActivityAsync(newTemplate
await using var _ = _telemetryService.TrackActivityAsync(newTemplate
? ActivityNameConsts.AbpCliCommandsInstallLocalModule
: ActivityNameConsts.AbpCliCommandsInstallModule);

11
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs

@ -18,18 +18,19 @@ public class AddPackageCommand : IConsoleCommand, ITransientDependency
{
public const string Name = "add-package";
public ILogger<AddPackageCommand> Logger { get; set; }
private readonly ITelemetryService _telemetryService;
public ITelemetryService TelemetryService { get; set; }
public ILogger<AddPackageCommand> Logger { get; set; }
protected ProjectNugetPackageAdder ProjectNugetPackageAdder { get; }
public ProjectNpmPackageAdder ProjectNpmPackageAdder { get; }
public AddPackageCommand(ProjectNugetPackageAdder projectNugetPackageAdder, ProjectNpmPackageAdder projectNpmPackageAdder)
public AddPackageCommand(ProjectNugetPackageAdder projectNugetPackageAdder, ProjectNpmPackageAdder projectNpmPackageAdder, ITelemetryService telemetryService)
{
ProjectNugetPackageAdder = projectNugetPackageAdder;
ProjectNpmPackageAdder = projectNpmPackageAdder;
_telemetryService = telemetryService;
Logger = NullLogger<AddPackageCommand>.Instance;
}
@ -44,8 +45,8 @@ public class AddPackageCommand : IConsoleCommand, ITransientDependency
);
}
await using var _ = TelemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsNewPackage);
await using var __ = TelemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsAddPackage);
await using var _ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsNewPackage);
await using var __ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsAddPackage);
var isNpmPackage = false;
var isNugetPackage = true;

9
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanCommand.cs

@ -18,20 +18,21 @@ public class CleanCommand : IConsoleCommand, ITransientDependency
public const string Name = "clean";
public ILogger<CleanCommand> Logger { get; set; }
public ITelemetryService TelemetryService { get; set; }
protected ICmdHelper CmdHelper { get; }
private readonly ITelemetryService _telemetryService;
public CleanCommand(ICmdHelper cmdHelper)
public CleanCommand(ICmdHelper cmdHelper, ITelemetryService telemetryService)
{
CmdHelper = cmdHelper;
_telemetryService = telemetryService;
Logger = NullLogger<CleanCommand>.Instance;
}
public async Task ExecuteAsync(CommandLineArgs commandLineArgs)
{
await using var _ = TelemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsClean);
await using var _ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsClean);
var binEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "bin", SearchOption.AllDirectories);
var objEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "obj", SearchOption.AllDirectories);

7
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ListModulesCommand.cs

@ -18,18 +18,19 @@ public class ListModulesCommand : IConsoleCommand, ITransientDependency
public ModuleInfoProvider ModuleInfoProvider { get; }
public ILogger<ListModulesCommand> Logger { get; set; }
public ITelemetryService TelemetryService { get; set; }
private readonly ITelemetryService _telemetryService;
public ListModulesCommand(ModuleInfoProvider moduleInfoProvider)
public ListModulesCommand(ModuleInfoProvider moduleInfoProvider, ITelemetryService telemetryService)
{
ModuleInfoProvider = moduleInfoProvider;
_telemetryService = telemetryService;
Logger = NullLogger<ListModulesCommand>.Instance;
}
public async Task ExecuteAsync(CommandLineArgs commandLineArgs)
{
await using var _ = TelemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsListModules);
await using var _ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsListModules);
var modules = await ModuleInfoProvider.GetModuleListAsync();
var freeModules = modules.Where(m => !m.IsPro).ToList();

9
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs

@ -29,7 +29,8 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
protected TemplateProjectBuilder TemplateProjectBuilder { get; }
public ITemplateInfoProvider TemplateInfoProvider { get; }
public ITelemetryService TelemetryService { get; set; }
private readonly ITelemetryService _telemetryService;
public NewCommand(
ConnectionStringProvider connectionStringProvider,
@ -45,7 +46,8 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
ITemplateInfoProvider templateInfoProvider,
TemplateProjectBuilder templateProjectBuilder,
AngularThemeConfigurer angularThemeConfigurer,
CliVersionService cliVersionService) :
CliVersionService cliVersionService,
ITelemetryService telemetryService) :
base(connectionStringProvider,
solutionPackageVersionFinder,
cmdHelper,
@ -61,6 +63,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
{
TemplateInfoProvider = templateInfoProvider;
TemplateProjectBuilder = templateProjectBuilder;
_telemetryService = telemetryService;
}
public async Task ExecuteAsync(CommandLineArgs commandLineArgs)
@ -107,7 +110,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
activityName = ActivityNameConsts.AbpCliCommandsNewModule;
}
await TelemetryService.AddActivityAsync(activityName, o =>
await _telemetryService.AddActivityAsync(activityName, o =>
{
o[ActivityPropertyNames.CreationTool] = AbpTool.OldCli;
o[ActivityPropertyNames.Template] = template;

7
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/UpdateCommand.cs

@ -19,23 +19,24 @@ public class UpdateCommand : IConsoleCommand, ITransientDependency
public const string Name = "update";
public ILogger<UpdateCommand> Logger { get; set; }
public ITelemetryService TelemetryService { get; set; }
private readonly VoloNugetPackagesVersionUpdater _nugetPackagesVersionUpdater;
private readonly NpmPackagesUpdater _npmPackagesUpdater;
private readonly ITelemetryService _telemetryService;
public UpdateCommand(VoloNugetPackagesVersionUpdater nugetPackagesVersionUpdater,
NpmPackagesUpdater npmPackagesUpdater)
NpmPackagesUpdater npmPackagesUpdater, ITelemetryService telemetryService)
{
_nugetPackagesVersionUpdater = nugetPackagesVersionUpdater;
_npmPackagesUpdater = npmPackagesUpdater;
_telemetryService = telemetryService;
Logger = NullLogger<UpdateCommand>.Instance;
}
public async Task ExecuteAsync(CommandLineArgs commandLineArgs)
{
await using var _ = TelemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsUpdate);
await using var _ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsUpdate);
var updateNpm = commandLineArgs.Options.ContainsKey(Options.Packages.Npm);
var updateNuget = commandLineArgs.Options.ContainsKey(Options.Packages.NuGet);

Loading…
Cancel
Save