Skip to content

Commit 9364824

Browse files
committed
Removed vsix project and fixed code issues
1 parent 048d9f5 commit 9364824

16 files changed

+106
-161
lines changed

.github/workflows/dotnet.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@ jobs:
1919
uses: microsoft/setup-msbuild@v2
2020
- name: Update version
2121
run: |
22-
(Get-Content -Path src\LoggerVisualizerVsix\source.extension.vsixmanifest) |
23-
ForEach-Object {$_ -Replace '0.1.0', '0.1.${{ github.run_number }}'} |
24-
Set-Content -Path src\LoggerVisualizerVsix\source.extension.vsixmanifest
22+
(Get-Content -Path src\LoggerVisualizer\LoggerVisualizer.csproj) |
23+
ForEach-Object {$_ -Replace '<AssemblyVersion>0.1.0</AssemblyVersion>', '<AssemblyVersion>0.1.${{ github.run_number }}</AssemblyVersion>'} |
24+
Set-Content -Path src\LoggerVisualizer\LoggerVisualizer.csproj
2525
- name: Restore
2626
run: nuget restore
2727
- name: Build
2828
run: msbuild /p:configuration=Release /p:DeployExtension=false /p:ZipPackageCompressionLevel=normal /v:m
2929
- uses: actions/upload-artifact@v3
3030
with:
3131
name: LoggerVisualizer.vsix
32-
path: src\LoggerVisualizerVsix\bin\Release\net8.0-windows\LoggerVisualizerVsix.vsix
32+
path: src\LoggerVisualizer\bin\Release\net8.0-windows\LoggerVisualizer.vsix
3333
- name: Create Release
3434
id: create_release
3535
if: ${{ github.event_name == 'push' }}
@@ -47,6 +47,6 @@ jobs:
4747
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4848
with:
4949
upload_url: ${{ steps.create_release.outputs.upload_url }}
50-
asset_path: src\LoggerVisualizerVsix\bin\Release\net8.0-windows\LoggerVisualizerVsix.vsix
51-
asset_name: LoggerVisualizerVsix.vsix
50+
asset_path: src\LoggerVisualizer\bin\Release\net8.0-windows\LoggerVisualizer.vsix
51+
asset_name: LoggerVisualizer.vsix
5252
asset_content_type: application/zip

LoggerVisualizer.sln

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoggerVisualizer", "src\Log
99
EndProject
1010
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LoggerVisualizerSource", "src\LoggerVisualizerSource\LoggerVisualizerSource.csproj", "{A1FF4041-D57C-431F-B349-B133BC77D579}"
1111
EndProject
12-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoggerVisualizerVsix", "src\LoggerVisualizerVsix\LoggerVisualizerVsix.csproj", "{1BC66681-8DB1-4401-B9D3-A8DF34E072AC}"
13-
EndProject
1412
Global
1513
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1614
Debug|Any CPU = Debug|Any CPU
@@ -25,18 +23,13 @@ Global
2523
{A1FF4041-D57C-431F-B349-B133BC77D579}.Debug|Any CPU.Build.0 = Debug|Any CPU
2624
{A1FF4041-D57C-431F-B349-B133BC77D579}.Release|Any CPU.ActiveCfg = Release|Any CPU
2725
{A1FF4041-D57C-431F-B349-B133BC77D579}.Release|Any CPU.Build.0 = Release|Any CPU
28-
{1BC66681-8DB1-4401-B9D3-A8DF34E072AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
29-
{1BC66681-8DB1-4401-B9D3-A8DF34E072AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
30-
{1BC66681-8DB1-4401-B9D3-A8DF34E072AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
31-
{1BC66681-8DB1-4401-B9D3-A8DF34E072AC}.Release|Any CPU.Build.0 = Release|Any CPU
3226
EndGlobalSection
3327
GlobalSection(SolutionProperties) = preSolution
3428
HideSolutionNode = FALSE
3529
EndGlobalSection
3630
GlobalSection(NestedProjects) = preSolution
3731
{782FFF6B-3794-4082-BB88-869CE205B6EC} = {09C88280-ACF9-4043-8326-9F8D891B375E}
3832
{A1FF4041-D57C-431F-B349-B133BC77D579} = {09C88280-ACF9-4043-8326-9F8D891B375E}
39-
{1BC66681-8DB1-4401-B9D3-A8DF34E072AC} = {09C88280-ACF9-4043-8326-9F8D891B375E}
4033
EndGlobalSection
4134
GlobalSection(ExtensibilityGlobals) = postSolution
4235
SolutionGuid = {E2F3EFB2-8BF1-4571-A7D4-43F97741FF09}
File renamed without changes.

src/LoggerVisualizer/ExtensionEntrypoint.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,13 @@ public class ExtensionEntrypoint : Extension
1111
Metadata = new(
1212
id: "LoggerVisualizer",
1313
version: this.ExtensionAssemblyVersion,
14-
publisherName: "elmah.io",
14+
publisherName: "elmahio",
1515
displayName: "ILogger Debugger Visualizer Extension",
16-
description:"djlkæjklæ"),
16+
description: "Logger Debug Visualizer for Visual Studio.")
17+
{
18+
Tags = ["visualizer", "logging", "logger", "ilogger", "debug", "debugging"],
19+
Icon = "icon.png",
20+
}
1721
};
1822

1923
/// <inheritdoc />

src/LoggerVisualizer/LoggerDebuggerVisualizerProvider.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@
55
using LoggerVisualizerSource;
66
using System.Collections.ObjectModel;
77
using LoggerVisualizer.Models;
8-
using System.Windows.Media.Imaging;
98
using System.Windows;
109

1110
namespace LoggerVisualizer
1211
{
1312
[VisualStudioContribution]
1413
internal class LoggerDebuggerVisualizerProvider : DebuggerVisualizerProvider
1514
{
15+
[System.Diagnostics.CodeAnalysis.SuppressMessage("ConstantExpressionEvaluator", "CEE0027:String not localized", Justification = "")]
1616
public override DebuggerVisualizerProviderConfiguration DebuggerVisualizerProviderConfiguration => new("Logger Visualizer", typeof(Logger<>))
1717
{
1818
VisualizerObjectSourceType = new(typeof(LoggerObjectSource)),
1919
};
2020
public override async Task<IRemoteUserControl> CreateVisualizerAsync(VisualizerTarget visualizerTarget, CancellationToken cancellationToken)
2121
{
22-
LoggerModel? model = null;
22+
LoggerModel? model;
2323
try
2424
{
2525
model = await visualizerTarget
@@ -35,7 +35,7 @@ public override async Task<IRemoteUserControl> CreateVisualizerAsync(VisualizerT
3535
return await Task.FromResult<IRemoteUserControl>(new LoggerVisualizerUserControl(ToViewModel(model)));
3636
}
3737

38-
private LoggerRootViewModel ToViewModel(LoggerModel logger)
38+
private LoggerRootViewModel? ToViewModel(LoggerModel? logger)
3939
{
4040
if (logger == null) return null;
4141
var viewModel = new LoggerRootViewModel
Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3-
<PropertyGroup>
4-
<TargetFramework>net8.0-windows</TargetFramework>
5-
<ImplicitUsings>enable</ImplicitUsings>
6-
<Nullable>enable</Nullable>
7-
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
8-
</PropertyGroup>
3+
<PropertyGroup>
4+
<AssemblyVersion>0.1.0</AssemblyVersion>
5+
<TargetFramework>net8.0-windows</TargetFramework>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
<LangVersion>12</LangVersion>
9+
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
10+
</PropertyGroup>
911

10-
<ItemGroup>
11-
<PackageReference Include="Elmah.Io.Client" Version="5.1.76" />
12-
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
13-
<PackageReference Include="Microsoft.VisualStudio.Extensibility.Sdk" Version="17.11.40261" />
14-
<PackageReference Include="Microsoft.VisualStudio.Extensibility.Build" Version="17.11.40261" />
15-
</ItemGroup>
12+
<ItemGroup>
13+
<None Remove="icon.png" />
14+
</ItemGroup>
15+
16+
<ItemGroup>
17+
<PackageReference Include="Elmah.Io.Client" Version="5.1.76" />
18+
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
19+
<PackageReference Include="Microsoft.VisualStudio.Extensibility.Sdk" Version="17.11.40261" />
20+
<PackageReference Include="Microsoft.VisualStudio.Extensibility.Build" Version="17.11.40261" />
21+
</ItemGroup>
1622

17-
<ItemGroup>
18-
<ProjectReference Include="..\LoggerVisualizerSource\LoggerVisualizerSource.csproj" />
19-
</ItemGroup>
23+
<ItemGroup>
24+
<ProjectReference Include="..\LoggerVisualizerSource\LoggerVisualizerSource.csproj" />
25+
</ItemGroup>
2026

2127
<ItemGroup>
2228
<Page Remove="LoggerVisualizerUserControl.xaml" />
@@ -27,7 +33,8 @@
2733
<Content Include="bin\$(Configuration)\net8.0-windows\Microsoft.Extensions.Logging.dll" Link="netstandard2.0\Microsoft.Extensions.Logging.dll">
2834
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
2935
</Content>
36+
<Content Include="icon.png">
37+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
38+
</Content>
3039
</ItemGroup>
31-
32-
3340
</Project>

src/LoggerVisualizer/LoggerVisualizerUserControl.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace LoggerVisualizer
1111
{
1212
internal class LoggerVisualizerUserControl : RemoteUserControl
1313
{
14-
public LoggerVisualizerUserControl(LoggerRootViewModel model) : base(model)
14+
public LoggerVisualizerUserControl(LoggerRootViewModel? model) : base(model)
1515
{
1616
}
1717
}

src/LoggerVisualizer/Models/LoggerViewModel.cs

Lines changed: 43 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,20 @@
44
using System.Diagnostics;
55
using System.Runtime.Serialization;
66
using System.Windows;
7-
using System.Windows.Media.Imaging;
87

98
namespace LoggerVisualizer.Models
109
{
1110
[DataContract]
1211
public class LoggerRootViewModel
1312
{
1413
[DataMember]
15-
public string Name { get; set; }
14+
public string? Name { get; set; }
1615

1716
[DataMember]
18-
public string Enabled { get; set; }
17+
public string? Enabled { get; set; }
1918

2019
[DataMember]
21-
public string MinLevel { get; set; }
20+
public string? MinLevel { get; set; }
2221

2322
[DataMember]
2423
public string MinLevelColor { get; set; } = "#6c757d";
@@ -30,46 +29,57 @@ public class LoggerRootViewModel
3029
[DataContract]
3130
public class LoggerViewModel
3231
{
33-
private static readonly HttpClient httpClient = new HttpClient();
32+
private static readonly HttpClient httpClient = new();
3433

3534
[DataMember]
36-
public string ShortName { get; set; }
35+
public string? ShortName { get; set; }
3736

3837
[DataMember]
39-
public string Name { get; set; }
38+
public string? Name { get; set; }
4039

4140
[DataMember]
42-
public string ExternalScope { get; set; }
41+
public string? ExternalScope { get; set; }
4342

4443
[DataMember]
45-
public string MinLevel { get; set; }
44+
public string? MinLevel { get; set; }
4645
[DataMember]
4746
public string MinLevelColor { get; set; } = "#6c757d";
4847

4948
[DataMember]
50-
public string FormatterName { get; set; }
49+
public string? FormatterName { get; set; }
50+
5151
[DataMember]
52-
public string DisableColors { get; set; }
52+
public string? DisableColors { get; set; }
53+
5354
[DataMember]
54-
public string LogToStandardErrorThreshold { get; set; }
55+
public string? LogToStandardErrorThreshold { get; set; }
56+
5557
[DataMember]
56-
public string MaxQueueLength { get; set; }
58+
public string? MaxQueueLength { get; set; }
59+
5760
[DataMember]
58-
public string QueueFullMode { get; set; }
61+
public string? QueueFullMode { get; set; }
62+
5963
[DataMember]
60-
public string TimestampFormat { get; set; }
64+
public string? TimestampFormat { get; set; }
65+
6166
[DataMember]
62-
public string UseUtcTimestamp { get; set; }
67+
public string? UseUtcTimestamp { get; set; }
68+
6369
[DataMember]
64-
public string MachineName { get; set; }
70+
public string? MachineName { get; set; }
71+
6572
[DataMember]
66-
public string SourceName { get; set; }
73+
public string? SourceName { get; set; }
74+
6775
[DataMember]
68-
public string LogName { get; set; }
76+
public string? LogName { get; set; }
77+
6978
[DataMember]
70-
public string ApiKey { get; set; }
79+
public string? ApiKey { get; set; }
80+
7181
[DataMember]
72-
public string LogId { get; set; }
82+
public string? LogId { get; set; }
7383

7484
[DataMember]
7585
public Visibility IsConsole { get; set; } = Visibility.Collapsed;
@@ -85,16 +95,18 @@ public class LoggerViewModel
8595

8696
[DataMember]
8797
public IAsyncCommand Diagnose { get; set; } = new DiagnoseCommand();
88-
private class DiagnoseCommand : IAsyncCommand
98+
99+
private sealed class DiagnoseCommand : IAsyncCommand
89100
{
90101
public bool CanExecute => true;
91102

92103
public async Task ExecuteAsync(object? parameter, IClientContext clientContext, CancellationToken cancellationToken)
93104
{
94-
var model = parameter as LoggerViewModel;
105+
if (parameter is not LoggerViewModel model) return;
106+
95107
try
96108
{
97-
var result = await httpClient.GetStringAsync($"https://api.elmah.io/v3/logs/{model.LogId}/_diagnose?api_key={model.ApiKey}");
109+
var result = await httpClient.GetStringAsync($"https://api.elmah.io/v3/logs/{model.LogId}/_diagnose?api_key={model.ApiKey}", cancellationToken);
98110
MessageBox.Show(result);
99111
}
100112
catch (Exception e)
@@ -106,18 +118,21 @@ public async Task ExecuteAsync(object? parameter, IClientContext clientContext,
106118

107119
[DataMember]
108120
public bool CanBrowse { get; set; } = false;
121+
109122
[DataMember]
110123
public bool CanDiagnose { get; set; } = false;
124+
111125
[DataMember]
112126
public IAsyncCommand Browse { get; set; } = new BrowseCommand();
113127

114-
private class BrowseCommand : IAsyncCommand
128+
private sealed class BrowseCommand : IAsyncCommand
115129
{
116130
public bool CanExecute => true;
117131

118132
public Task ExecuteAsync(object? parameter, IClientContext clientContext, CancellationToken cancellationToken)
119133
{
120-
var model = parameter as LoggerViewModel;
134+
if (parameter is not LoggerViewModel model) return Task.CompletedTask;
135+
121136
if (!string.IsNullOrWhiteSpace(model.LogId))
122137
{
123138
Process.Start(new ProcessStartInfo { FileName = $"https://app.elmah.io/errorlog/search/?logId={model.LogId}", UseShellExecute = true });
@@ -130,7 +145,7 @@ public Task ExecuteAsync(object? parameter, IClientContext clientContext, Cancel
130145
[DataMember]
131146
public IAsyncCommand ProcessLauncher { get; set; } = new ProcessLauncherCommand();
132147

133-
private class ProcessLauncherCommand : IAsyncCommand
148+
private sealed class ProcessLauncherCommand : IAsyncCommand
134149
{
135150
public bool CanExecute => true;
136151

@@ -140,6 +155,7 @@ public Task ExecuteAsync(object? parameter, IClientContext clientContext, Cancel
140155
if ((string.IsNullOrWhiteSpace(command))) return Task.CompletedTask;
141156

142157
Process.Start(new ProcessStartInfo { FileName = command, UseShellExecute = true });
158+
143159
return Task.CompletedTask;
144160
}
145161
}

src/LoggerVisualizer/Telemetry.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace LoggerVisualizer
1010
/// </summary>
1111
public static class Telemetry
1212
{
13-
private static IElmahioAPI elmahIoClient;
13+
private static IElmahioAPI? elmahIoClient;
1414

1515
public static bool Enabled { get; set; }
1616

@@ -49,10 +49,10 @@ public static void TrackException(Exception ex)
4949
User = WindowsIdentity.GetCurrent().Name,
5050
Hostname = Hostname(),
5151
Application = "Exception Visualizer",
52-
ServerVariables = new List<Item>
53-
{
54-
new Item("User-Agent", $"X-ELMAHIO-APPLICATION; OS=Windows; OSVERSION={Environment.OSVersion.Version}; ENGINE=VisualStudio"),
55-
}
52+
ServerVariables =
53+
[
54+
new("User-Agent", $"X-ELMAHIO-APPLICATION; OS=Windows; OSVERSION={Environment.OSVersion.Version}; ENGINE=VisualStudio"),
55+
]
5656
};
5757

5858
elmahIoClient.Messages.CreateAndNotify(new Guid("934272cb-2133-4fa7-b2b6-3113cb0b272b"), createMessage);
@@ -75,7 +75,7 @@ private static List<Item> PropertiesToData(Exception exception)
7575
return items;
7676
}
7777

78-
private static string Hostname()
78+
private static string? Hostname()
7979
{
8080
var machineName = Environment.MachineName;
8181
if (!string.IsNullOrWhiteSpace(machineName)) return machineName;

src/LoggerVisualizer/icon.png

3.49 KB
Loading

0 commit comments

Comments
 (0)