Skip to content

Commit 317a84f

Browse files
Update to v2025.8.8.6 with new features and fixes
- Bump version number for `DotNetTips.Spargine` library to v2025.8.8.6 across multiple files. - Update creation and last modified dates in `WIP.cs`. - Modify `DiagnosticEntry` struct to change `Information` attributes from `New` to `Available` and add `GetDebuggerDisplay` method. - Update `ElapsedEventArgs` and `PerformanceStopwatch` classes with similar status changes. - Introduce new `IEasyDisposable` interface for simplified disposal management. - Add tests for `IEasyDisposable` in `IEasyDisposableTests.cs`. - Revise copyright information and enhance documentation comments for clarity.
1 parent 5ceb384 commit 317a84f

18 files changed

Lines changed: 214 additions & 172 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# DotNetTips.Spargine for Microsoft .NET 8: v2025.8.8.5
1+
# DotNetTips.Spargine for Microsoft .NET 8: v2025.8.8.6
22
![Spargine 8](docs/Graphics/SPARGINE-8-BANNER.png)
33

44
Open-source .NET assemblies from dotNetTips.com and **<a href="https://dotnettips.wordpress.com/about/" target="_blank">David (dotNetDave) McCarter</a>**.

source/Unit Tests/dotNetTips.Spargine.Core.Tests/DotNetTips.Spargine.Core.Tests.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
<PropertyGroup>
44
<AnalysisLevel>none</AnalysisLevel>
5-
<AssemblyVersion>2025.8.8.5</AssemblyVersion>
5+
<AssemblyVersion>2025.8.8.6</AssemblyVersion>
66
<BaseOutputPath>..\..\..\AppBin</BaseOutputPath>
77
<EnableNETAnalyzers>false</EnableNETAnalyzers>
8-
<FileVersion>2025.8.8.5</FileVersion>
8+
<FileVersion>2025.8.8.6</FileVersion>
99
<IsPackable>false</IsPackable>
1010
<RootNamespace>$(MSBuildProjectName.Replace(" ", "_"))</RootNamespace>
1111
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
1212
<RunAnalyzersDuringLiveAnalysis>false</RunAnalyzersDuringLiveAnalysis>
1313
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
14-
<Version>2025.8.8.5</Version>
14+
<Version>2025.8.8.6</Version>
1515
</PropertyGroup>
1616

1717
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// ***********************************************************************
2+
// Assembly : DotNetTips.Spargine.Core.Tests
3+
// Author : David McCarter
4+
// Created : 05-05-2023
5+
//
6+
// Last Modified By : David McCarter
7+
// Last Modified On : 01-07-2025
8+
// ***********************************************************************
9+
// <copyright file="IEasyDisposableTests.cs" company="McCarter Consulting">
10+
// Copyright (c) David McCarter - dotNetTips.com. All rights reserved.
11+
// </copyright>
12+
// <summary></summary>
13+
// ***********************************************************************
14+
15+
using System.Data;
16+
using System.Diagnostics.CodeAnalysis;
17+
using Microsoft.VisualStudio.TestTools.UnitTesting;
18+
19+
//`![Spargine 8 - #RockYourCode](6219C891F6330C65927FA249E739AC1F.png;https://bit.ly/Spargine )
20+
21+
namespace DotNetTips.Spargine.Core.Tests;
22+
23+
[ExcludeFromCodeCoverage]
24+
[TestClass]
25+
public class IEasyDisposableTests
26+
{
27+
public class TestDisposable : IEasyDisposable
28+
{
29+
private DataTable _field = new DataTable();
30+
31+
public bool IsDisposed { get; set; }
32+
}
33+
34+
35+
[TestMethod]
36+
public void DisposeFields_DisposesAllIDisposableFields()
37+
{
38+
using (var disposable = new TestDisposable())
39+
{
40+
}
41+
}
42+
}

source/Unit Tests/dotNetTips.Spargine.Core.Tests/WIP.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
// ***********************************************************************
22
// Assembly : DotNetTips.Spargine.Core.Tests
33
// Author : David McCarter
4-
// Created : 05-05-2023
4+
// Created : 10-22-2023
55
//
66
// Last Modified By : David McCarter
7-
// Last Modified On : 01-07-2025
7+
// Last Modified On : 08-05-2025
88
// ***********************************************************************
9-
// <copyright file="WIP.cs" company="McCarter Consulting">
10-
// Copyright (c) David McCarter - dotNetTips.com. All rights reserved.
9+
// <copyright file="WIP.cs" company="DotNetTips.Spargine.Core.Tests">
10+
// Copyright (c) McCarter Consulting. All rights reserved.
1111
// </copyright>
1212
// <summary></summary>
1313
// ***********************************************************************
1414

15+
using System;
1516
using System.Diagnostics.CodeAnalysis;
1617
using System.Globalization;
1718
using System.Linq;

source/Unit Tests/dotNetTips.Spargine.Extensions.Tests/DotNetTips.Spargine.Extensions.Tests.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
<PropertyGroup>
44
<AnalysisLevel>none</AnalysisLevel>
5-
<AssemblyVersion>2025.8.8.5</AssemblyVersion>
5+
<AssemblyVersion>2025.8.8.6</AssemblyVersion>
66
<BaseOutputPath>..\..\..\AppBin</BaseOutputPath>
77
<EnableNETAnalyzers>false</EnableNETAnalyzers>
8-
<FileVersion>2025.8.8.5</FileVersion>
8+
<FileVersion>2025.8.8.6</FileVersion>
99
<IsPackable>false</IsPackable>
1010
<RootNamespace>$(MSBuildProjectName.Replace(" ", "_"))</RootNamespace>
1111
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
1212
<RunAnalyzersDuringLiveAnalysis>false</RunAnalyzersDuringLiveAnalysis>
1313
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
14-
<Version>2025.8.8.5</Version>
14+
<Version>2025.8.8.6</Version>
1515
</PropertyGroup>
1616
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
1717
<OutputPath>..\..\..\AppBin</OutputPath>

source/Unit Tests/dotNetTips.Spargine.Tester.Tests/DotNetTips.Spargine.Tester.Tests.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
<PropertyGroup>
44
<AnalysisLevel>none</AnalysisLevel>
5-
<AssemblyVersion>2025.8.8.5</AssemblyVersion>
5+
<AssemblyVersion>2025.8.8.6</AssemblyVersion>
66
<BaseOutputPath>..\..\..\AppBin</BaseOutputPath>
77
<EnableNETAnalyzers>false</EnableNETAnalyzers>
8-
<FileVersion>2025.8.8.5</FileVersion>
8+
<FileVersion>2025.8.8.6</FileVersion>
99
<IsPackable>false</IsPackable>
1010
<RootNamespace>$(MSBuildProjectName.Replace(" ", "_"))</RootNamespace>
1111
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
1212
<RunAnalyzersDuringLiveAnalysis>false</RunAnalyzersDuringLiveAnalysis>
1313
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
14-
<Version>2025.8.8.5</Version>
14+
<Version>2025.8.8.6</Version>
1515
</PropertyGroup>
1616

1717
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

source/Unit Tests/dotNetTips.Spargine.Tests/DotNetTips.Spargine.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<AssemblyVersion>2024.8.3.1</AssemblyVersion>
66
<BaseOutputPath>..\..\..\AppBin</BaseOutputPath>
77
<EnableNETAnalyzers>false</EnableNETAnalyzers>
8-
<FileVersion>2025.8.8.5</FileVersion>
8+
<FileVersion>2025.8.8.6</FileVersion>
99
<IsPackable>false</IsPackable>
1010
<RootNamespace>$(MSBuildProjectName.Replace(" ", "_"))</RootNamespace>
1111
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>

source/dotNetTips.Spargine.8.Core/Diagnostics/DiagnosticEntry.cs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// Created : 05-08-2025
55
//
66
// Last Modified By : David McCarter
7-
// Last Modified On : 05-09-2025
7+
// Last Modified On : 08-05-2025
88
// ***********************************************************************
99
// <copyright file="DiagnosticEntry.cs" company="David McCarter - dotNetTips.com">
1010
// McCarter Consulting (David McCarter)
@@ -21,7 +21,7 @@ namespace DotNetTips.Spargine.Core.Diagnostics;
2121
/// <summary>
2222
/// Represents a single diagnostic message entry.
2323
/// </summary>
24-
[Information("DiagnosticEntry", "David McCarter", "05/08/2025", Status = Status.New)]
24+
[Information("DiagnosticEntry", "David McCarter", "05/08/2025", Status = Status.Available)]
2525
[DebuggerDisplay($"{{{nameof(GetDebuggerDisplay)}(),nq}}")]
2626
public readonly struct DiagnosticEntry : IEquatable<DiagnosticEntry>
2727
{
@@ -65,6 +65,12 @@ public DiagnosticEntry([NotNull] DateTimeOffset timestamp, [NotNull] string mess
6565
return left.Equals(right);
6666
}
6767

68+
/// <summary>
69+
/// Returns a string representation of the diagnostic entry for debugger display.
70+
/// </summary>
71+
/// <returns>
72+
/// A string representation of the diagnostic entry.
73+
/// </returns>
6874
private string GetDebuggerDisplay()
6975
{
7076
return this.ToString();
@@ -77,7 +83,7 @@ private string GetDebuggerDisplay()
7783
/// <returns>
7884
/// <c>true</c> if the specified object is equal to the current <see cref="DiagnosticEntry"/>; otherwise, <c>false</c>.
7985
/// </returns>
80-
[Information(nameof(Equals), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.New)]
86+
[Information(nameof(Equals), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.Available)]
8187
public override bool Equals(object obj)
8288
{
8389
return obj is DiagnosticEntry other && this.Equals(other);
@@ -90,7 +96,7 @@ public override bool Equals(object obj)
9096
/// <returns>
9197
/// <c>true</c> if the specified <see cref="DiagnosticEntry"/> is equal to the current instance; otherwise, <c>false</c>.
9298
/// </returns>
93-
[Information(nameof(Equals), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.New)]
99+
[Information(nameof(Equals), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.Available)]
94100
public bool Equals(DiagnosticEntry other)
95101
{
96102
return this.Timestamp == other.Timestamp && string.Equals(this.Message, other.Message, StringComparison.Ordinal) && this.Elapsed == other.Elapsed;
@@ -102,7 +108,7 @@ public bool Equals(DiagnosticEntry other)
102108
/// <returns>
103109
/// A hash code for the current <see cref="DiagnosticEntry"/>.
104110
/// </returns>
105-
[Information(nameof(GetHashCode), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.New)]
111+
[Information(nameof(GetHashCode), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.Available)]
106112
public override int GetHashCode()
107113
{
108114
return HashCode.Combine(this.Timestamp, this.Message, this.Elapsed);
@@ -112,7 +118,7 @@ public override int GetHashCode()
112118
/// Returns a string representation of the diagnostic entry.
113119
/// </summary>
114120
/// <returns>A string representation of the diagnostic entry.</returns>
115-
[Information(nameof(ToString), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.New)]
121+
[Information(nameof(ToString), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.Available)]
116122
public override string ToString()
117123
{
118124
return $"{this.Timestamp:u} - {this.Message} ({this.Elapsed.TotalMilliseconds} ms)";
@@ -121,18 +127,18 @@ public override string ToString()
121127
/// <summary>
122128
/// Gets the elapsed time when the diagnostic entry was recorded.
123129
/// </summary>
124-
[Information(nameof(Elapsed), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.New)]
130+
[Information(nameof(Elapsed), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.Available)]
125131
public TimeSpan Elapsed { get; }
126132

127133
/// <summary>
128134
/// Gets the content of the diagnostic message.
129135
/// </summary>
130-
[Information(nameof(Message), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.New)]
136+
[Information(nameof(Message), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.Available)]
131137
public string Message { get; }
132138

133139
/// <summary>
134140
/// Gets the UTC timestamp of the diagnostic entry.
135141
/// </summary>
136-
[Information(nameof(Timestamp), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.New)]
142+
[Information(nameof(Timestamp), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.Available)]
137143
public DateTimeOffset Timestamp { get; }
138144
}

source/dotNetTips.Spargine.8.Core/Diagnostics/ElapsedEventArgs.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// Created : 05-08-2025
55
//
66
// Last Modified By : David McCarter
7-
// Last Modified On : 05-08-2025
7+
// Last Modified On : 08-05-2025
88
// ***********************************************************************
99
// <copyright file="ElapsedEventArgs.cs" company="David McCarter - dotNetTips.com">
1010
// McCarter Consulting (David McCarter)
@@ -21,14 +21,14 @@ namespace DotNetTips.Spargine.Core.Diagnostics;
2121
/// <summary>
2222
/// Provides data for events that report elapsed time.
2323
/// </summary>
24-
[Information(nameof(ElapsedEventArgs), "David McCarter", "05/08/2025", Status = Status.New)]
24+
[Information(nameof(ElapsedEventArgs), "David McCarter", "05/08/2025", Status = Status.Available)]
2525
public class ElapsedEventArgs : EventArgs
2626
{
2727
/// <summary>
2828
/// Initializes a new instance of the <see cref="ElapsedEventArgs"/> class.
2929
/// </summary>
3030
/// <param name="elapsed">The elapsed time.</param>
31-
[Information(nameof(ElapsedEventArgs), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.New)]
31+
[Information(nameof(ElapsedEventArgs), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.Available)]
3232
public ElapsedEventArgs(TimeSpan elapsed)
3333
{
3434
this.Elapsed = elapsed;
@@ -38,6 +38,6 @@ public ElapsedEventArgs(TimeSpan elapsed)
3838
/// Gets the elapsed time.
3939
/// </summary>
4040
/// <value>The time span representing the elapsed time.</value>
41-
[Information(nameof(Elapsed), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.New)]
41+
[Information(nameof(Elapsed), "David McCarter", "05/08/2025", UnitTestStatus = UnitTestStatus.None, Status = Status.Available)]
4242
public TimeSpan Elapsed { get; }
4343
}

0 commit comments

Comments
 (0)