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 10 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 public class CliService : ITransientDependency
{ {
private readonly MemoryService _memoryService; private readonly MemoryService _memoryService;
private readonly ITelemetryService _telemetryService;
public ILogger<CliService> Logger { get; set; } public ILogger<CliService> Logger { get; set; }
public ITelemetryService TelemetryService { get; set; }
protected ICommandLineArgumentParser CommandLineArgumentParser { get; } protected ICommandLineArgumentParser CommandLineArgumentParser { get; }
protected ICommandSelector CommandSelector { get; } protected ICommandSelector CommandSelector { get; }
protected IServiceScopeFactory ServiceScopeFactory { get; } protected IServiceScopeFactory ServiceScopeFactory { get; }
@ -38,7 +38,8 @@ public class CliService : ITransientDependency
PackageVersionCheckerService nugetService, PackageVersionCheckerService nugetService,
ICmdHelper cmdHelper, ICmdHelper cmdHelper,
MemoryService memoryService, MemoryService memoryService,
CliVersionService cliVersionService) CliVersionService cliVersionService,
ITelemetryService telemetryService)
{ {
_memoryService = memoryService; _memoryService = memoryService;
CommandLineArgumentParser = commandLineArgumentParser; CommandLineArgumentParser = commandLineArgumentParser;
@ -47,6 +48,7 @@ public class CliService : ITransientDependency
PackageVersionCheckerService = nugetService; PackageVersionCheckerService = nugetService;
CmdHelper = cmdHelper; CmdHelper = cmdHelper;
CliVersionService = cliVersionService; CliVersionService = cliVersionService;
_telemetryService = telemetryService;
Logger = NullLogger<CliService>.Instance; Logger = NullLogger<CliService>.Instance;
} }
@ -67,7 +69,7 @@ public class CliService : ITransientDependency
try try
{ {
await using var _ = TelemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliRun); await using var _ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliRun);
if (commandLineArgs.IsCommand("prompt")) if (commandLineArgs.IsCommand("prompt"))
{ {
await RunPromptAsync(); await RunPromptAsync();
@ -88,13 +90,13 @@ public class CliService : ITransientDependency
} }
catch (Exception ex) catch (Exception ex)
{ {
await TelemetryService.AddErrorActivityAsync(ex.Message); await _telemetryService.AddErrorActivityAsync(ex.Message);
Logger.LogException(ex); Logger.LogException(ex);
throw; throw;
} }
finally 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"; public const string Name = "add-module";
private AddModuleInfoOutput _lastAddedModuleInfo; private AddModuleInfoOutput _lastAddedModuleInfo;
private readonly ITelemetryService _telemetryService;
public ILogger<AddModuleCommand> Logger { get; set; } public ILogger<AddModuleCommand> Logger { get; set; }
public ITelemetryService TelemetryService { get; set; }
protected SolutionModuleAdder SolutionModuleAdder { get; } protected SolutionModuleAdder SolutionModuleAdder { get; }
public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; } public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; }
@ -42,11 +43,13 @@ public class AddModuleCommand : IConsoleCommand, ITransientDependency
public AddModuleCommand( public AddModuleCommand(
SolutionModuleAdder solutionModuleAdder, SolutionModuleAdder solutionModuleAdder,
SolutionPackageVersionFinder solutionPackageVersionFinder, SolutionPackageVersionFinder solutionPackageVersionFinder,
IOptions<AbpCliOptions> options) IOptions<AbpCliOptions> options,
ITelemetryService telemetryService)
{ {
_options = options.Value; _options = options.Value;
SolutionModuleAdder = solutionModuleAdder; SolutionModuleAdder = solutionModuleAdder;
SolutionPackageVersionFinder = solutionPackageVersionFinder; SolutionPackageVersionFinder = solutionPackageVersionFinder;
_telemetryService = telemetryService;
Logger = NullLogger<AddModuleCommand>.Instance; Logger = NullLogger<AddModuleCommand>.Instance;
} }
@ -70,7 +73,7 @@ public class AddModuleCommand : IConsoleCommand, ITransientDependency
var newTemplate = commandLineArgs.Options.ContainsKey(Options.NewTemplate.Long); var newTemplate = commandLineArgs.Options.ContainsKey(Options.NewTemplate.Long);
await using var _ = TelemetryService.TrackActivityAsync(newTemplate await using var _ = _telemetryService.TrackActivityAsync(newTemplate
? ActivityNameConsts.AbpCliCommandsInstallLocalModule ? ActivityNameConsts.AbpCliCommandsInstallLocalModule
: ActivityNameConsts.AbpCliCommandsInstallModule); : 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 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; } protected ProjectNugetPackageAdder ProjectNugetPackageAdder { get; }
public ProjectNpmPackageAdder ProjectNpmPackageAdder { get; } public ProjectNpmPackageAdder ProjectNpmPackageAdder { get; }
public AddPackageCommand(ProjectNugetPackageAdder projectNugetPackageAdder, ProjectNpmPackageAdder projectNpmPackageAdder) public AddPackageCommand(ProjectNugetPackageAdder projectNugetPackageAdder, ProjectNpmPackageAdder projectNpmPackageAdder, ITelemetryService telemetryService)
{ {
ProjectNugetPackageAdder = projectNugetPackageAdder; ProjectNugetPackageAdder = projectNugetPackageAdder;
ProjectNpmPackageAdder = projectNpmPackageAdder; ProjectNpmPackageAdder = projectNpmPackageAdder;
_telemetryService = telemetryService;
Logger = NullLogger<AddPackageCommand>.Instance; 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.AbpCliCommandsNewPackage);
await using var __ = TelemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsAddPackage); await using var __ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsAddPackage);
var isNpmPackage = false; var isNpmPackage = false;
var isNugetPackage = true; 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 const string Name = "clean";
public ILogger<CleanCommand> Logger { get; set; } public ILogger<CleanCommand> Logger { get; set; }
public ITelemetryService TelemetryService { get; set; }
protected ICmdHelper CmdHelper { get; } protected ICmdHelper CmdHelper { get; }
private readonly ITelemetryService _telemetryService;
public CleanCommand(ICmdHelper cmdHelper) public CleanCommand(ICmdHelper cmdHelper, ITelemetryService telemetryService)
{ {
CmdHelper = cmdHelper; CmdHelper = cmdHelper;
_telemetryService = telemetryService;
Logger = NullLogger<CleanCommand>.Instance; Logger = NullLogger<CleanCommand>.Instance;
} }
public async Task ExecuteAsync(CommandLineArgs commandLineArgs) 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 binEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "bin", SearchOption.AllDirectories);
var objEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "obj", 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 ModuleInfoProvider ModuleInfoProvider { get; }
public ILogger<ListModulesCommand> Logger { get; set; } 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; ModuleInfoProvider = moduleInfoProvider;
_telemetryService = telemetryService;
Logger = NullLogger<ListModulesCommand>.Instance; Logger = NullLogger<ListModulesCommand>.Instance;
} }
public async Task ExecuteAsync(CommandLineArgs commandLineArgs) 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 modules = await ModuleInfoProvider.GetModuleListAsync();
var freeModules = modules.Where(m => !m.IsPro).ToList(); 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; } protected TemplateProjectBuilder TemplateProjectBuilder { get; }
public ITemplateInfoProvider TemplateInfoProvider { get; } public ITemplateInfoProvider TemplateInfoProvider { get; }
public ITelemetryService TelemetryService { get; set; }
private readonly ITelemetryService _telemetryService;
public NewCommand( public NewCommand(
ConnectionStringProvider connectionStringProvider, ConnectionStringProvider connectionStringProvider,
@ -45,7 +46,8 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
ITemplateInfoProvider templateInfoProvider, ITemplateInfoProvider templateInfoProvider,
TemplateProjectBuilder templateProjectBuilder, TemplateProjectBuilder templateProjectBuilder,
AngularThemeConfigurer angularThemeConfigurer, AngularThemeConfigurer angularThemeConfigurer,
CliVersionService cliVersionService) : CliVersionService cliVersionService,
ITelemetryService telemetryService) :
base(connectionStringProvider, base(connectionStringProvider,
solutionPackageVersionFinder, solutionPackageVersionFinder,
cmdHelper, cmdHelper,
@ -61,6 +63,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
{ {
TemplateInfoProvider = templateInfoProvider; TemplateInfoProvider = templateInfoProvider;
TemplateProjectBuilder = templateProjectBuilder; TemplateProjectBuilder = templateProjectBuilder;
_telemetryService = telemetryService;
} }
public async Task ExecuteAsync(CommandLineArgs commandLineArgs) public async Task ExecuteAsync(CommandLineArgs commandLineArgs)
@ -107,7 +110,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
activityName = ActivityNameConsts.AbpCliCommandsNewModule; activityName = ActivityNameConsts.AbpCliCommandsNewModule;
} }
await TelemetryService.AddActivityAsync(activityName, o => await _telemetryService.AddActivityAsync(activityName, o =>
{ {
o[ActivityPropertyNames.CreationTool] = AbpTool.OldCli; o[ActivityPropertyNames.CreationTool] = AbpTool.OldCli;
o[ActivityPropertyNames.Template] = template; 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 const string Name = "update";
public ILogger<UpdateCommand> Logger { get; set; } public ILogger<UpdateCommand> Logger { get; set; }
public ITelemetryService TelemetryService { get; set; }
private readonly VoloNugetPackagesVersionUpdater _nugetPackagesVersionUpdater; private readonly VoloNugetPackagesVersionUpdater _nugetPackagesVersionUpdater;
private readonly NpmPackagesUpdater _npmPackagesUpdater; private readonly NpmPackagesUpdater _npmPackagesUpdater;
private readonly ITelemetryService _telemetryService;
public UpdateCommand(VoloNugetPackagesVersionUpdater nugetPackagesVersionUpdater, public UpdateCommand(VoloNugetPackagesVersionUpdater nugetPackagesVersionUpdater,
NpmPackagesUpdater npmPackagesUpdater) NpmPackagesUpdater npmPackagesUpdater, ITelemetryService telemetryService)
{ {
_nugetPackagesVersionUpdater = nugetPackagesVersionUpdater; _nugetPackagesVersionUpdater = nugetPackagesVersionUpdater;
_npmPackagesUpdater = npmPackagesUpdater; _npmPackagesUpdater = npmPackagesUpdater;
_telemetryService = telemetryService;
Logger = NullLogger<UpdateCommand>.Instance; Logger = NullLogger<UpdateCommand>.Instance;
} }
public async Task ExecuteAsync(CommandLineArgs commandLineArgs) 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 updateNpm = commandLineArgs.Options.ContainsKey(Options.Packages.Npm);
var updateNuget = commandLineArgs.Options.ContainsKey(Options.Packages.NuGet); var updateNuget = commandLineArgs.Options.ContainsKey(Options.Packages.NuGet);

Loading…
Cancel
Save