Browse Source

Refactor solution path retrieval in telemetry context

Moved solution path lookup logic from TelemetryCliSessionProvider to ActivityContext via a new TryGetValue method, simplifying property access and reducing duplication.
pull/24395/head
SALİH ÖZKARA 2 months ago
parent
commit
d7def2007f
  1. 19
      framework/src/Volo.Abp.Cli/Volo/Abp/Cli/Telemetry/TelemetryCliSessionProvider.cs
  2. 24
      framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/Activity/ActivityContext.cs

19
framework/src/Volo.Abp.Cli/Volo/Abp/Cli/Telemetry/TelemetryCliSessionProvider.cs

@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
@ -26,24 +25,6 @@ public class TelemetryCliSessionProvider : TelemetryActivityEventEnricher
context.Current[ActivityPropertyNames.SessionType] = SessionType.AbpCli;
context.Current[ActivityPropertyNames.SessionId] = Guid.NewGuid();
context.Current[ActivityPropertyNames.IsFirstSession] = !File.Exists(TelemetryPaths.ActivityStorage);
if (context.ExtraProperties.ContainsKey(ActivityPropertyNames.SolutionPath))
{
return Task.CompletedTask;
}
if(context.Current.TryGetValue(ActivityPropertyNames.SolutionPath, out var existingSolutionPath) && existingSolutionPath is string)
{
context.ExtraProperties[ActivityPropertyNames.SolutionPath] = existingSolutionPath;
return Task.CompletedTask;
}
if (context.Current.TryGetValue(ActivityPropertyNames.AdditionalProperties, out var additionalProperties) &&
additionalProperties is Dictionary<string, object> additionalPropertiesDict &&
additionalPropertiesDict.TryGetValue(ActivityPropertyNames.SolutionPath, out var solutionPath))
{
context.ExtraProperties[ActivityPropertyNames.SolutionPath] = solutionPath;
}
return Task.CompletedTask;
}

24
framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/Activity/ActivityContext.cs

@ -19,7 +19,7 @@ public class ActivityContext
public string? DeviceId => Current.Get<string?>(ActivityPropertyNames.DeviceId);
public string? SolutionPath => ExtraProperties.TryGetValue(ActivityPropertyNames.SolutionPath, out var solutionPath)
public string? SolutionPath => TryGetValue(ActivityPropertyNames.SolutionPath, out var solutionPath)
? solutionPath?.ToString()
: null;
@ -42,6 +42,28 @@ public class ActivityContext
return new ActivityContext(activity);
}
public bool TryGetValue(string key, out object? value)
{
if (Current.TryGetValue(key, out value))
{
return true;
}
if (ExtraProperties.TryGetValue(key, out value))
{
return true;
}
if (Current.TryGetValue(ActivityPropertyNames.AdditionalProperties, out var additionalProperties) &&
additionalProperties is Dictionary<string, object> additionalPropertiesDict &&
additionalPropertiesDict.TryGetValue(key, out value))
{
return true;
}
return false;
}
public void Terminate()
{

Loading…
Cancel
Save