Skip to content

Commit 6c61ca2

Browse files
committed
update with nullable and online provider
1 parent 89058c9 commit 6c61ca2

File tree

4 files changed

+35
-51
lines changed

4 files changed

+35
-51
lines changed

Analogy.LogViewer.Example/Analogy.LogViewer.Example.csproj

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<PublishRepositoryUrl>true</PublishRepositoryUrl>
77
<IncludeSymbols>true</IncludeSymbols>
88
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
9-
<Version>1.7.3</Version>
9+
<Version>1.7.4</Version>
1010
<Authors>Lior Banai</Authors>
1111
<Company>Analogy.LogViewer</Company>
1212
<Product>Analogy.LogViewer.Example</Product>
@@ -22,11 +22,13 @@
2222
<Description>Example implementation of Analogy Log Viewer Data Provider</Description>
2323
<PackageReleaseNotes>Example implementation of Analogy Log Viewer Data Provider</PackageReleaseNotes>
2424
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
25+
<Nullable>enable</Nullable>
26+
<LangVersion>8.0</LangVersion>
2527
</PropertyGroup>
2628

2729
<ItemGroup>
28-
<PackageReference Include="Analogy.LogViewer.Interfaces" Version="2.7.3" />
29-
<PackageReference Include="Analogy.LogViewer.Template" Version="1.6.4" />
30+
<PackageReference Include="Analogy.LogViewer.Interfaces" Version="2.7.4" />
31+
<PackageReference Include="Analogy.LogViewer.Template" Version="1.6.5" />
3032
<PackageReference Include="Microsoft.Build.Tasks.Git" Version="1.0.0">
3133
<PrivateAssets>all</PrivateAssets>
3234
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

Analogy.LogViewer.Example/IAnalogy/OfflineExampleDataProvider.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ namespace Analogy.LogViewer.Example
1414
class OfflineExampleDataProvider : OfflineDataProvider
1515
{
1616
public override Guid Id { get; set; }
17-
public override Image LargeImage { get; set; } = Resources.Analogy_image_32x32;
18-
public override Image SmallImage { get; set; } = Resources.Analogy_image_16x16;
17+
public override Image? LargeImage { get; set; } = Resources.Analogy_image_32x32;
18+
public override Image? SmallImage { get; set; } = Resources.Analogy_image_16x16;
1919

20-
public override string OptionalTitle { get; set; }
20+
public override string? OptionalTitle { get; set; }
2121
public override string FileOpenDialogFilters { get; set; } = "None (*.none)|*.none";
2222
public override IEnumerable<string> SupportFormats { get; set; } = new[] { "*.none" };
2323
public override string InitialFolderFullPath { get; } = Environment.CurrentDirectory;

Analogy.LogViewer.Example/IAnalogy/OnlineExampleDataProvider.cs

Lines changed: 24 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -10,93 +10,75 @@
1010

1111
namespace Analogy.LogViewer.Example
1212
{
13-
class OnlineExampleDataProvider : IAnalogyRealTimeDataProvider
13+
class OnlineExampleDataProvider : Analogy.LogViewer.Template.OnlineDataProvider
1414
{
15-
public string OptionalTitle { get; set; }
16-
public Guid Id { get; set; }
15+
public override string? OptionalTitle { get; set; }
16+
public override Guid Id { get; set; }
1717

18-
public Image ConnectedLargeImage { get; set; } = null;
19-
public Image ConnectedSmallImage { get; set; } = null;
20-
public Image DisconnectedLargeImage { get; set; } = null;
21-
public Image DisconnectedSmallImage { get; set; } = null;
22-
public event EventHandler<AnalogyDataSourceDisconnectedArgs> OnDisconnected;
23-
public event EventHandler<AnalogyLogMessageArgs> OnMessageReady;
24-
public event EventHandler<AnalogyLogMessagesArgs> OnManyMessagesReady;
25-
public async Task<bool> CanStartReceiving() => await Task.FromResult(true);
18+
public override async Task<bool> CanStartReceiving() => await Task.FromResult(true);
2619

27-
public IAnalogyOfflineDataProvider FileOperationsHandler { get; }
28-
private Timer SimulateOnlineMessages;
20+
private readonly Timer SimulateOnlineMessages;
2921
private int messageCount = 0;
30-
readonly Random random = new Random();
31-
readonly Array values = Enum.GetValues(typeof(AnalogyLogLevel));
22+
readonly Random _random = new Random();
23+
readonly Array _values = Enum.GetValues(typeof(AnalogyLogLevel));
3224
private readonly List<string> processes = Process.GetProcesses().Select(p => p.ProcessName).ToList();
3325
private readonly string prefixMessage;
34-
private Random rnd = new Random();
35-
private IAnalogyLogger Logger { get; set; }
36-
public bool UseCustomColors { get; set; } = false;
26+
private readonly Random rnd = new Random();
3727

38-
public IEnumerable<(string originalHeader, string replacementHeader)> GetReplacementHeaders()
28+
public override IEnumerable<(string originalHeader, string replacementHeader)> GetReplacementHeaders()
3929
{
4030
yield return ("Category", "Test");
4131
}
4232

43-
public (Color backgroundColor, Color foregroundColor) GetColorForMessage(IAnalogyLogMessage logMessage)
33+
public override (Color backgroundColor, Color foregroundColor) GetColorForMessage(IAnalogyLogMessage logMessage)
4434
=> logMessage.Level == AnalogyLogLevel.Unknown ? (Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256)), Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256))) : (Color.Empty, Color.Empty);
4535
public OnlineExampleDataProvider(string prefix, Guid guid)
4636
{
4737
prefixMessage = prefix;
4838
Id = guid;
4939
OptionalTitle = $"Analogy Example: Real time Data Provider {prefix}";
40+
SimulateOnlineMessages = new Timer(100);
41+
5042
}
51-
public Task InitializeDataProviderAsync(IAnalogyLogger logger)
43+
public override async Task InitializeDataProviderAsync(IAnalogyLogger logger)
5244
{
53-
Logger = logger;
54-
SimulateOnlineMessages = new Timer(100);
45+
await base.InitializeDataProviderAsync(logger);
5546

5647
SimulateOnlineMessages.Elapsed += (s, e) =>
5748
{
58-
if (OnMessageReady == null)
59-
return;
6049
unchecked
6150
{
62-
63-
AnalogyLogLevel randomLevel = (AnalogyLogLevel)values.GetValue(random.Next(values.Length));
64-
string randomProcess = processes[random.Next(processes.Count)];
51+
AnalogyLogLevel randomLevel = (AnalogyLogLevel)_values.GetValue(_random.Next(_values.Length))!;
52+
string randomProcess = processes[_random.Next(processes.Count)];
6553
AnalogyLogMessage m = new AnalogyLogMessage
6654
{
67-
Text = $"{prefixMessage}: Generated message #{messageCount++}" + string.Join(Environment.NewLine, Enumerable.Range(0, random.Next(1, 5)).Select(i => $"row {i}")),
55+
Text = $"{prefixMessage}: Generated message #{messageCount++}" + string.Join(Environment.NewLine, Enumerable.Range(0, _random.Next(1, 5)).Select(i => $"row {i}")),
6856
Level = randomLevel,
6957
Class = AnalogyLogClass.General,
7058
Source = "Example",
7159
User = Environment.UserName,
7260
Module = randomProcess,
7361
MachineName = Environment.MachineName,
7462
ThreadId = Thread.CurrentThread.ManagedThreadId,
75-
AdditionalInformation = new Dictionary<string, string>() { { "Random Column", random.Next(0, 10).ToString() }, { "Random Column 2", random.Next(0, 10).ToString() } }
63+
AdditionalInformation = new Dictionary<string, string>() { { "Random Column", _random.Next(0, 10).ToString() }, { "Random Column 2", _random.Next(0, 10).ToString() } }
7664

7765
};
7866

79-
OnMessageReady?.Invoke(this, new AnalogyLogMessageArgs(m, Environment.MachineName, "Example", Id));
67+
MessageReady(this, new AnalogyLogMessageArgs(m, Environment.MachineName, "Example", Id));
8068
}
8169
};
82-
return Task.CompletedTask;
8370
}
8471

85-
public void MessageOpened(AnalogyLogMessage message)
72+
public override Task StartReceiving()
8673
{
87-
//nop
88-
}
89-
90-
public async Task StartReceiving()
91-
{
92-
await InitializeDataProviderAsync(Logger);
93-
SimulateOnlineMessages?.Start();
74+
SimulateOnlineMessages.Start();
75+
return Task.CompletedTask;
9476
}
9577

96-
public Task StopReceiving()
78+
public override Task StopReceiving()
9779
{
9880
SimulateOnlineMessages?.Stop();
99-
OnDisconnected?.Invoke(this, new AnalogyDataSourceDisconnectedArgs("user disconnected", Environment.MachineName, Id));
81+
Disconnected(this, new AnalogyDataSourceDisconnectedArgs("user disconnected", Environment.MachineName, Id));
10082
return Task.CompletedTask;
10183
}
10284
}

Analogy.LogViewer.Example/IAnalogy/PrimaryFactory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using Analogy.Interfaces;
22
using Analogy.Interfaces.Factories;
3+
using Analogy.LogViewer.Example.Properties;
34
using System;
45
using System.Collections.Generic;
56
using System.Drawing;
6-
using Analogy.LogViewer.Example.Properties;
77

88
namespace Analogy.LogViewer.Example
99
{
@@ -13,8 +13,8 @@ public class PrimaryFactory : IAnalogyFactory
1313
public Guid FactoryId { get; set; } = Id;
1414

1515
public string Title { get; set; } = "Analogy Examples";
16-
public Image SmallImage { get; set; } = Resources.Analogy_image_16x16;
17-
public Image LargeImage { get; set; } = Resources.Analogy_image_32x32;
16+
public Image? SmallImage { get; set; } = Resources.Analogy_image_16x16;
17+
public Image? LargeImage { get; set; } = Resources.Analogy_image_32x32;
1818

1919
public IEnumerable<IAnalogyChangeLog> ChangeLog { get; set; } = new List<AnalogyChangeLog>
2020
{

0 commit comments

Comments
 (0)