Skip to content

Commit 4d1afe1

Browse files
code refactoring
1 parent 661ccad commit 4d1afe1

File tree

4 files changed

+57
-93
lines changed

4 files changed

+57
-93
lines changed

Diff for: src/ArtifactoryUploader/Program.cs

+3-31
Original file line numberDiff line numberDiff line change
@@ -90,41 +90,13 @@ static async Task Main(string[] args)
9090
PackageUploadHelper.jFrogService = GetJfrogService(appSettings);
9191
UploadToArtifactory.jFrogService = GetJfrogService(appSettings);
9292
JfrogRepoUpdater.jFrogService = GetJfrogService(appSettings);
93-
await PackageUploader.UploadPackageToArtifactory(appSettings);
93+
await PackageUploader.UploadPackageToArtifactory(appSettings);
9494

9595
// Initialize telemetry with CATool version and instrumentation key only if Telemetry is enabled in appsettings
9696
if (appSettings.Telemetry.Enable == true)
9797
{
98-
Logger.Warn(TelemetryConstant.StartLogMessage);
99-
LCT.Telemetry.Telemetry telemetry = new LCT.Telemetry.Telemetry(TelemetryConstant.Type, new Dictionary<string, string>
100-
{
101-
102-
{ "InstrumentationKey", appSettings.Telemetry.ApplicationInsightInstrumentKey }
103-
});
104-
105-
try
106-
{
107-
TelemetryHelper.InitializeAndTrackEvent(telemetry, TelemetryConstant.ToolName, caToolInformation.CatoolVersion, TelemetryConstant.ArtifactoryUploader
108-
, appSettings);
109-
110-
// Track KPI data if available
111-
if (PackageUploader.uploaderKpiData != null)
112-
{
113-
TelemetryHelper.TrackKpiDataTelemetry(telemetry, TelemetryConstant.ArtifactoryUploaderKpiData, PackageUploader.uploaderKpiData);
114-
}
115-
telemetry.TrackExecutionTime();
116-
117-
}
118-
catch (Exception ex)
119-
{
120-
Logger.Error($"An error occurred: {ex.Message}");
121-
TelemetryHelper.TrackException(telemetry, ex);
122-
environmentHelper.CallEnvironmentExit(-1);
123-
}
124-
finally
125-
{
126-
telemetry.Flush(); // Ensure telemetry is sent before application exits
127-
}
98+
TelemetryHelper telemetryHelper = new TelemetryHelper(appSettings);
99+
telemetryHelper.StartTelemetry(caToolInformation.CatoolVersion, PackageUploader.uploaderKpiData, TelemetryConstant.ArtifactoryUploaderKpiData);
128100
}
129101
Logger.Logger.Log(null, Level.Notice, $"End of Artifactory Uploader execution : {DateTime.Now}\n", null);
130102
// publish logs and BOM file to pipeline artifact

Diff for: src/LCT.Common/TelemetryHelper.cs

+49-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
//
44
// SPDX-License-Identifier: MIT
55
// --------------------------------------------------------------------------------------------------------------------
6+
using LCT.Common.Constants;
7+
using LCT.Common.Interface;
68
using LCT.Telemetry;
9+
using log4net;
710
using System;
811
using System.Collections.Generic;
912
using System.ComponentModel;
@@ -15,12 +18,51 @@ namespace LCT.Common
1518
{
1619
public class TelemetryHelper
1720
{
18-
public static void InitializeAndTrackEvent(LCT.Telemetry.Telemetry telemetry, string toolName, string toolVersion, string eventName,
21+
private readonly ILog Logger;
22+
LCT.Telemetry.Telemetry telemetry_;
23+
EnvironmentHelper environmentHelper;
24+
CommonAppSettings appSettings_;
25+
26+
public TelemetryHelper(CommonAppSettings appSettings)
27+
{
28+
environmentHelper = new EnvironmentHelper();
29+
Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
30+
appSettings_ = appSettings ?? new CommonAppSettings();
31+
32+
telemetry_ = new LCT.Telemetry.Telemetry(TelemetryConstant.Type, new Dictionary<string, string>
33+
{
34+
{ "InstrumentationKey", appSettings.Telemetry.ApplicationInsightInstrumentKey }
35+
});
36+
}
37+
38+
public void StartTelemetry<T>(string catoolVersion, T kpiData,string telemetryFor)
39+
{
40+
// Initialize telemetry with CATool version and instrumentation key only if Telemetry is enabled in appsettings
41+
Logger.Warn(TelemetryConstant.StartLogMessage);
42+
try
43+
{
44+
InitializeAndTrackEvent(TelemetryConstant.ToolName, catoolVersion, telemetryFor
45+
, appSettings_);
46+
TrackKpiDataTelemetry(telemetryFor, kpiData);
47+
}
48+
catch (Exception ex)
49+
{
50+
Logger.Error($"An error occurred: {ex.Message}");
51+
TrackException(ex);
52+
environmentHelper.CallEnvironmentExit(-1);
53+
}
54+
finally
55+
{
56+
telemetry_.Flush(); // Ensure telemetry is sent before application exits
57+
}
58+
}
59+
60+
private void InitializeAndTrackEvent(string toolName, string toolVersion, string eventName,
1961
CommonAppSettings appSettings)
2062
{
21-
telemetry.Initialize(toolName, toolVersion);
63+
telemetry_.Initialize(toolName, toolVersion);
2264

23-
telemetry.TrackCustomEvent(eventName, new Dictionary<string, string>
65+
telemetry_.TrackCustomEvent(eventName, new Dictionary<string, string>
2466
{
2567
{ "CA Tool Version", toolVersion },
2668
{ "SW360 Project Name", appSettings.SW360.ProjectName },
@@ -30,8 +72,7 @@ public static void InitializeAndTrackEvent(LCT.Telemetry.Telemetry telemetry, st
3072
{ "Start Time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture) }
3173
});
3274
}
33-
34-
public static void TrackKpiDataTelemetry<T>(LCT.Telemetry.Telemetry telemetry, string eventName, T kpiData)
75+
private void TrackKpiDataTelemetry<T>(string eventName, T kpiData)
3576
{
3677
var properties = typeof(T).GetProperties();
3778
var telemetryData = properties.ToDictionary(
@@ -42,18 +83,18 @@ public static void TrackKpiDataTelemetry<T>(LCT.Telemetry.Telemetry telemetry, s
4283
telemetryData["Hashed User ID"] = HashUtility.GetHashString(Environment.UserName);
4384
telemetryData["Time stamp"] = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
4485

45-
telemetry.TrackCustomEvent(eventName, telemetryData);
86+
telemetry_.TrackCustomEvent(eventName, telemetryData);
4687
}
4788

48-
public static void TrackException(LCT.Telemetry.Telemetry telemetry, Exception ex)
89+
private void TrackException(Exception ex)
4990
{
5091
var exceptionData = new Dictionary<string, string>
5192
{
5293
{ "Error Time", DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture) },
5394
{ "Stack Trace", ex.StackTrace }
5495
};
5596

56-
telemetry.TrackException(ex, exceptionData);
97+
telemetry_.TrackException(ex, exceptionData);
5798
}
5899
}
59100
}

Diff for: src/LCT.PackageIdentifier/Program.cs

+3-28
Original file line numberDiff line numberDiff line change
@@ -111,36 +111,11 @@ static async Task Main(string[] args)
111111
await bomCreator.GenerateBom(appSettings, new BomHelper(), new FileOperations(), projectReleases,
112112
caToolInformation);
113113
}
114-
115-
// Initialize telemetry with CATool version and instrumentation key only if Telemetry is enabled in appsettings
114+
116115
if (appSettings.Telemetry.Enable == true)
117116
{
118-
Logger.Warn(TelemetryConstant.StartLogMessage);
119-
Telemetry.Telemetry telemetry = new Telemetry.Telemetry(TelemetryConstant.Type, new Dictionary<string, string>
120-
{
121-
{ "InstrumentationKey", appSettings.Telemetry.ApplicationInsightInstrumentKey }
122-
});
123-
try
124-
{
125-
TelemetryHelper.InitializeAndTrackEvent(telemetry, TelemetryConstant.ToolName, caToolInformation.CatoolVersion, TelemetryConstant.PackageIdentifier
126-
, appSettings);
127-
// Track KPI data if available
128-
if (BomCreator.bomKpiData != null)
129-
{
130-
TelemetryHelper.TrackKpiDataTelemetry(telemetry, TelemetryConstant.IdentifierKpiData, BomCreator.bomKpiData);
131-
}
132-
telemetry.TrackExecutionTime();
133-
}
134-
catch (Exception ex)
135-
{
136-
Logger.Error($"An error occurred: {ex.Message}");
137-
TelemetryHelper.TrackException(telemetry, ex);
138-
environmentHelper.CallEnvironmentExit(-1);
139-
}
140-
finally
141-
{
142-
telemetry.Flush(); // Ensure telemetry is sent before application exits
143-
}
117+
TelemetryHelper telemetryHelper = new TelemetryHelper(appSettings);
118+
telemetryHelper.StartTelemetry(caToolInformation.CatoolVersion, BomCreator.bomKpiData, TelemetryConstant.IdentifierKpiData);
144119
}
145120
Logger.Logger.Log(null, Level.Notice, $"End of Package Identifier execution : {DateTime.Now}\n", null);
146121
// publish logs and bom file to pipeline artifact

Diff for: src/LCT.SW360PackageCreator/Program.cs

+2-26
Original file line numberDiff line numberDiff line change
@@ -102,32 +102,8 @@ static async Task Main(string[] args)
102102
// Initialize telemetry with CATool version and instrumentation key only if Telemetry is enabled in appsettings
103103
if (appSettings.Telemetry.Enable == true)
104104
{
105-
Logger.Warn(TelemetryConstant.StartLogMessage);
106-
Telemetry.Telemetry telemetry = new Telemetry.Telemetry(TelemetryConstant.Type, new Dictionary<string, string>
107-
{
108-
{ "InstrumentationKey", appSettings.Telemetry.ApplicationInsightInstrumentKey }
109-
});
110-
try
111-
{
112-
TelemetryHelper.InitializeAndTrackEvent(telemetry, TelemetryConstant.ToolName, caToolInformation.CatoolVersion, TelemetryConstant.PackageCreator
113-
, appSettings);
114-
// Track KPI data if available
115-
if (ComponentCreator.kpiData != null)
116-
{
117-
TelemetryHelper.TrackKpiDataTelemetry(telemetry, TelemetryConstant.CreatorKpiData, ComponentCreator.kpiData);
118-
}
119-
telemetry.TrackExecutionTime();
120-
}
121-
catch (Exception ex)
122-
{
123-
Logger.Error($"An error occurred: {ex.Message}");
124-
TelemetryHelper.TrackException(telemetry, ex);
125-
environmentHelper.CallEnvironmentExit(-1);
126-
}
127-
finally
128-
{
129-
telemetry.Flush(); // Ensure telemetry is sent before application exits
130-
}
105+
TelemetryHelper telemetryHelper = new TelemetryHelper(appSettings);
106+
telemetryHelper.StartTelemetry(caToolInformation.CatoolVersion, ComponentCreator.kpiData,TelemetryConstant.CreatorKpiData);
131107
}
132108
Logger.Logger.Log(null, Level.Notice, $"End of Package Creator execution: {DateTime.Now}\n", null);
133109

0 commit comments

Comments
 (0)