FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Reduced nesting levels through block-scoped `using`s by Lehonti · Pull Request #183 · ControlzEx/ControlzEx · GitHub

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .cs  (3) All 1 file type selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,9 @@ public void TestGenerateGlowBitmaps()

var fileName = Path.Combine(directory, $"{value}.png");

using (var stream = File.Create(fileName))
{
encoder.Save(stream);
}
using var stream = File.Create(fileName);

encoder.Save(stream);
}
}
}
Expand Down
66 changes: 30 additions & 36 deletions src/ControlzEx.Tests/Theming/ThemeManagerTests.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,9 @@ public void ChangeThemeForAppShouldThrowArgumentNullException()
[Test]
public void ChangeThemeForWindowShouldThrowArgumentNullException()
{
using (var window = new TestWindow())
{
Assert.Throws<ArgumentNullException>(() => this.testThemeManager.ChangeTheme((Window)null, this.testThemeManager.GetTheme("Light.Red")));
Assert.Throws<ArgumentNullException>(() => this.testThemeManager.ChangeTheme(Application.Current.MainWindow, this.testThemeManager.GetTheme("UnknownTheme")));
}
using var window = new TestWindow();
Assert.Throws<ArgumentNullException>(() => this.testThemeManager.ChangeTheme((Window)null, this.testThemeManager.GetTheme("Light.Red")));
Assert.Throws<ArgumentNullException>(() => this.testThemeManager.ChangeTheme(Application.Current.MainWindow, this.testThemeManager.GetTheme("UnknownTheme")));
}

[Test]
Expand Down Expand Up @@ -105,14 +103,13 @@ public void NewThemeAddsNewBaseColorAndColorScheme()
[Test]
public void ChangingAppThemeChangesWindowTheme()
{
using (var window = new TestWindow())
{
var expectedTheme = this.testThemeManager.GetTheme("Dark.Teal");
this.testThemeManager.ChangeTheme(Application.Current, expectedTheme);
using var window = new TestWindow();

Assert.That(this.testThemeManager.DetectTheme(Application.Current), Is.EqualTo(expectedTheme));
Assert.That(this.testThemeManager.DetectTheme(window), Is.EqualTo(expectedTheme));
}
var expectedTheme = this.testThemeManager.GetTheme("Dark.Teal");
this.testThemeManager.ChangeTheme(Application.Current, expectedTheme);

Assert.That(this.testThemeManager.DetectTheme(Application.Current), Is.EqualTo(expectedTheme));
Assert.That(this.testThemeManager.DetectTheme(window), Is.EqualTo(expectedTheme));
}

[Test]
Expand All @@ -131,16 +128,15 @@ public void ChangeBaseColor()
}

{
using (var window = new TestWindow())
{
var currentTheme = this.testThemeManager.DetectTheme(window);
using var window = new TestWindow();

Assert.That(currentTheme, Is.Not.Null);
this.testThemeManager.ChangeThemeBaseColor(window, this.testThemeManager.GetInverseTheme(currentTheme).BaseColorScheme);
var currentTheme = this.testThemeManager.DetectTheme(window);

Assert.That(this.testThemeManager.DetectTheme(window).BaseColorScheme, Is.Not.EqualTo(currentTheme.BaseColorScheme));
Assert.That(this.testThemeManager.DetectTheme(window).ColorScheme, Is.EqualTo(currentTheme.ColorScheme));
}
Assert.That(currentTheme, Is.Not.Null);
this.testThemeManager.ChangeThemeBaseColor(window, this.testThemeManager.GetInverseTheme(currentTheme).BaseColorScheme);

Assert.That(this.testThemeManager.DetectTheme(window).BaseColorScheme, Is.Not.EqualTo(currentTheme.BaseColorScheme));
Assert.That(this.testThemeManager.DetectTheme(window).ColorScheme, Is.EqualTo(currentTheme.ColorScheme));
}

{
Expand Down Expand Up @@ -172,16 +168,15 @@ public void ChangeColorScheme()
}

{
using (var window = new TestWindow())
{
var currentTheme = this.testThemeManager.DetectTheme(window);
using var window = new TestWindow();

Assert.That(currentTheme, Is.Not.Null);
this.testThemeManager.ChangeThemeColorScheme(window, "Green");
var currentTheme = this.testThemeManager.DetectTheme(window);

Assert.That(this.testThemeManager.DetectTheme(window).BaseColorScheme, Is.EqualTo(currentTheme.BaseColorScheme));
Assert.That(this.testThemeManager.DetectTheme(window).ColorScheme, Is.EqualTo("Green"));
}
Assert.That(currentTheme, Is.Not.Null);
this.testThemeManager.ChangeThemeColorScheme(window, "Green");

Assert.That(this.testThemeManager.DetectTheme(window).BaseColorScheme, Is.EqualTo(currentTheme.BaseColorScheme));
Assert.That(this.testThemeManager.DetectTheme(window).ColorScheme, Is.EqualTo("Green"));
}

{
Expand Down Expand Up @@ -215,16 +210,15 @@ public void ChangeBaseColorAndColorScheme()
}

{
using (var window = new TestWindow())
{
var currentTheme = this.testThemeManager.DetectTheme(window);
using var window = new TestWindow();

Assert.That(currentTheme, Is.Not.Null);
this.testThemeManager.ChangeTheme(window, ThemeManager.BaseColorLight, "Green");
var currentTheme = this.testThemeManager.DetectTheme(window);

Assert.That(this.testThemeManager.DetectTheme(window).BaseColorScheme, Is.EqualTo(ThemeManager.BaseColorLight));
Assert.That(this.testThemeManager.DetectTheme(window).ColorScheme, Is.EqualTo("Green"));
}
Assert.That(currentTheme, Is.Not.Null);
this.testThemeManager.ChangeTheme(window, ThemeManager.BaseColorLight, "Green");

Assert.That(this.testThemeManager.DetectTheme(window).BaseColorScheme, Is.EqualTo(ThemeManager.BaseColorLight));
Assert.That(this.testThemeManager.DetectTheme(window).ColorScheme, Is.EqualTo("Green"));
}

{
Expand Down
51 changes: 23 additions & 28 deletions src/ControlzEx/Theming/LibraryThemeProvider.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,16 @@ protected LibraryThemeProvider(bool registerAtThemeManager)
continue;
}

using (var stream = this.assembly.GetManifestResourceStream(resourceName))
{
if (stream is null)
{
continue;
}
using var stream = this.assembly.GetManifestResourceStream(resourceName);

using (var reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
if (stream is null)
{
continue;
}

using var reader = new StreamReader(stream);

return reader.ReadToEnd();
}

return null;
Expand All @@ -70,18 +68,16 @@ protected LibraryThemeProvider(bool registerAtThemeManager)
continue;
}

using (var stream = this.assembly.GetManifestResourceStream(resourceName))
{
if (stream is null)
{
continue;
}
using var stream = this.assembly.GetManifestResourceStream(resourceName);

using (var reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
if (stream is null)
{
continue;
}

using var reader = new StreamReader(stream);

return reader.ReadToEnd();
}

return null;
Expand Down Expand Up @@ -139,16 +135,15 @@ public virtual IEnumerable<LibraryTheme> GetLibraryThemes()
continue;
}

using (var reader = new ResourceReader(resourceStream))
using var reader = new ResourceReader(resourceStream);

foreach (var dictionaryEntry in reader.OfType<DictionaryEntry>())
{
foreach (var dictionaryEntry in reader.OfType<DictionaryEntry>())
{
var theme = this.GetLibraryTheme(dictionaryEntry);
var theme = this.GetLibraryTheme(dictionaryEntry);

if (theme is not null)
{
yield return theme;
}
if (theme is not null)
{
yield return theme;
}
}
}
Expand Down

Back | FazBrowse Home | New Git URL