diff --git a/CSharpBible/Basics/Basic_Del00_Template/Basic_Del00_Template_net.csproj b/CSharpBible/Basics/Basic_Del00_Template/Basic_Del00_Template_net.csproj index 9eefb845c..b609373df 100644 --- a/CSharpBible/Basics/Basic_Del00_Template/Basic_Del00_Template_net.csproj +++ b/CSharpBible/Basics/Basic_Del00_Template/Basic_Del00_Template_net.csproj @@ -2,7 +2,7 @@ Exe - net6.0;net7.0 + net6.0;net7.0;net8.0;net9.0 diff --git a/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_TemplateTests.csproj b/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_TemplateTests.csproj index 4175efe71..0abb2a214 100644 --- a/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_TemplateTests.csproj +++ b/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_TemplateTests.csproj @@ -14,9 +14,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_Template_netTests.csproj b/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_Template_netTests.csproj index 67127c042..ba82eef62 100644 --- a/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_Template_netTests.csproj +++ b/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_Template_netTests.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0 + net6.0;net7.0;net8.0;net9.0 true false @@ -14,15 +14,14 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_ActionTests.csproj b/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_ActionTests.csproj index baeb6e857..bae3c38d4 100644 --- a/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_ActionTests.csproj +++ b/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_ActionTests.csproj @@ -14,9 +14,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_Action_netTests.csproj b/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_Action_netTests.csproj index d13224db2..98e14beac 100644 --- a/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_Action_netTests.csproj +++ b/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_Action_netTests.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0 + net6.0;net7.0;net8.0;net9.0 true false @@ -14,9 +14,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_FilterTests.csproj b/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_FilterTests.csproj index 7226ac7c3..71c2cf3e6 100644 --- a/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_FilterTests.csproj +++ b/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_FilterTests.csproj @@ -14,9 +14,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_Filter_netTests.csproj b/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_Filter_netTests.csproj index b9031e50c..4f0f156d0 100644 --- a/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_Filter_netTests.csproj +++ b/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_Filter_netTests.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0 + net6.0;net7.0;net8.0;net9.0 true false @@ -14,9 +14,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_GeneralTests.csproj b/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_GeneralTests.csproj index 2ea5d4870..305a6cdc5 100644 --- a/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_GeneralTests.csproj +++ b/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_GeneralTests.csproj @@ -14,9 +14,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_General_netTests.csproj b/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_General_netTests.csproj index 442a32ed3..9c4b0782c 100644 --- a/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_General_netTests.csproj +++ b/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_General_netTests.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0 + net6.0;net7.0;net8.0;net9.0 true false @@ -14,9 +14,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuffTests.csproj b/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuffTests.csproj index ba1ea97d6..a52c1a369 100644 --- a/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuffTests.csproj +++ b/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuffTests.csproj @@ -14,9 +14,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuff_netTests.csproj b/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuff_netTests.csproj index 6d3e128ed..5c3efc85a 100644 --- a/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuff_netTests.csproj +++ b/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuff_netTests.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0 + net6.0;net7.0;net8.0;net9.0 true false @@ -14,9 +14,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/CSharpBible.sln b/CSharpBible/CSharpBible.sln index 0f4cb317f..14a7a9d28 100644 --- a/CSharpBible/CSharpBible.sln +++ b/CSharpBible/CSharpBible.sln @@ -181,7 +181,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tetris_BaseTests", "Games\T EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Werner_Flaschbier_Base", "Games\Werner_Flaschbier\Werner_Flaschbier_Base.csproj", "{A5D73D86-9D5C-45E1-AE27-DDF8A5EE52E5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Werner_Flaschbier_BaseTests", "Games\Werner_Flaschbier_BaseTests\Werner_Flaschbier_BaseTests.csproj", "{FA9F3597-4C9F-48FA-A507-54BF6825C637}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Werner_Flaschbier_ConsoleTests", "Games\Werner_Flaschbier_BaseTests\Werner_Flaschbier_ConsoleTests.csproj", "{FA9F3597-4C9F-48FA-A507-54BF6825C637}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Display_netTest", "Display_Test\Display_netTest.csproj", "{5B2D89EC-28CF-493C-B503-74DCB0F68D73}" EndProject @@ -1033,6 +1033,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPF_StickyNotesDemoTests", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPF_StickyNotesDemo_netTests", "WPFSamples_2\WPF_StickyNotesDemoTests\WPF_StickyNotesDemo_netTests.csproj", "{75BC162C-D512-4027-8665-FD5420ACB863}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GenInterfaces", "Libraries\GenInterfaces\GenInterfaces.csproj", "{0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2856,6 +2858,10 @@ Global {75BC162C-D512-4027-8665-FD5420ACB863}.Debug|Any CPU.Build.0 = Debug|Any CPU {75BC162C-D512-4027-8665-FD5420ACB863}.Release|Any CPU.ActiveCfg = Release|Any CPU {75BC162C-D512-4027-8665-FD5420ACB863}.Release|Any CPU.Build.0 = Release|Any CPU + {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3308,6 +3314,7 @@ Global {E072D6A6-758E-4ABD-9B45-6A1FD8C35BAF} = {174E6CB9-42E1-4C99-B8EF-A2C1F426758D} {C4C9533A-06C5-48CD-88DC-A1E7A81228E0} = {174E6CB9-42E1-4C99-B8EF-A2C1F426758D} {75BC162C-D512-4027-8665-FD5420ACB863} = {174E6CB9-42E1-4C99-B8EF-A2C1F426758D} + {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA} = {7BA535EF-38FA-47A6-A6BD-5D6333D5DB10} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DAF8B3ED-D51A-4CDA-8BF1-1E032CF0AC4F} diff --git a/CSharpBible/Calc/Calc32Tests/Calc32Tests.csproj b/CSharpBible/Calc/Calc32Tests/Calc32Tests.csproj index 58f60874d..60e1ef954 100644 --- a/CSharpBible/Calc/Calc32Tests/Calc32Tests.csproj +++ b/CSharpBible/Calc/Calc32Tests/Calc32Tests.csproj @@ -20,9 +20,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Calc/Calc32Tests/Calc32_netTests.csproj b/CSharpBible/Calc/Calc32Tests/Calc32_netTests.csproj index ef5c3a5aa..5a74a71f8 100644 --- a/CSharpBible/Calc/Calc32Tests/Calc32_netTests.csproj +++ b/CSharpBible/Calc/Calc32Tests/Calc32_netTests.csproj @@ -1,7 +1,7 @@  - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows disable true false @@ -24,9 +24,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Calc/Calc32WPFTests/Calc32WPFTests.csproj b/CSharpBible/Calc/Calc32WPFTests/Calc32WPFTests.csproj index 777b08c29..4c3f21167 100644 --- a/CSharpBible/Calc/Calc32WPFTests/Calc32WPFTests.csproj +++ b/CSharpBible/Calc/Calc32WPFTests/Calc32WPFTests.csproj @@ -25,9 +25,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Calc/Calc32WPFTests/Calc32WPF_netTests.csproj b/CSharpBible/Calc/Calc32WPFTests/Calc32WPF_netTests.csproj index 28143e6f1..e51493942 100644 --- a/CSharpBible/Calc/Calc32WPFTests/Calc32WPF_netTests.csproj +++ b/CSharpBible/Calc/Calc32WPFTests/Calc32WPF_netTests.csproj @@ -1,7 +1,7 @@  - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows true false @@ -25,9 +25,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Calc/Calc64BaseTests/Calc64BaseTests.csproj b/CSharpBible/Calc/Calc64BaseTests/Calc64BaseTests.csproj index 5ec6a67e5..56796bd28 100644 --- a/CSharpBible/Calc/Calc64BaseTests/Calc64BaseTests.csproj +++ b/CSharpBible/Calc/Calc64BaseTests/Calc64BaseTests.csproj @@ -20,9 +20,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Calc/Calc64BaseTests/Calc64Base_netTests.csproj b/CSharpBible/Calc/Calc64BaseTests/Calc64Base_netTests.csproj index 276ce9686..53e3b23ca 100644 --- a/CSharpBible/Calc/Calc64BaseTests/Calc64Base_netTests.csproj +++ b/CSharpBible/Calc/Calc64BaseTests/Calc64Base_netTests.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 @@ -20,9 +20,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Calc/Calc64WFTests/Calc64WFTests.csproj b/CSharpBible/Calc/Calc64WFTests/Calc64WFTests.csproj index 18c4365c3..590716e9e 100644 --- a/CSharpBible/Calc/Calc64WFTests/Calc64WFTests.csproj +++ b/CSharpBible/Calc/Calc64WFTests/Calc64WFTests.csproj @@ -15,9 +15,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Calc/Calc64WFTests/Calc64WF_netTests.csproj b/CSharpBible/Calc/Calc64WFTests/Calc64WF_netTests.csproj index 308428648..0c181eeb1 100644 --- a/CSharpBible/Calc/Calc64WFTests/Calc64WF_netTests.csproj +++ b/CSharpBible/Calc/Calc64WFTests/Calc64WF_netTests.csproj @@ -1,7 +1,7 @@  - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows true false @@ -20,9 +20,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Calc/Calc64WFTests/Visual/Converter/OperationModeToShortStringTests.cs b/CSharpBible/Calc/Calc64WFTests/Visual/Converter/OperationModeToShortStringTests.cs index dd0f5920b..8e26e8664 100644 --- a/CSharpBible/Calc/Calc64WFTests/Visual/Converter/OperationModeToShortStringTests.cs +++ b/CSharpBible/Calc/Calc64WFTests/Visual/Converter/OperationModeToShortStringTests.cs @@ -36,7 +36,7 @@ public class OperationModeToShortStringTests public void ConvertTest() { var vcTest = new OperationModeToShortString(); - foreach(var e in typeof(Calc64Model.EOpMode).GetEnumValues()) + foreach(var e in typeof(EOpMode).GetEnumValues()) { Assert.IsNotNull(vcTest.Convert(e, typeof(string), null, System.Globalization.CultureInfo.CurrentCulture)); } diff --git a/CSharpBible/Calc/Calc64_Wpf/App.xaml.cs b/CSharpBible/Calc/Calc64_Wpf/App.xaml.cs index 26433002b..c6785eef7 100644 --- a/CSharpBible/Calc/Calc64_Wpf/App.xaml.cs +++ b/CSharpBible/Calc/Calc64_Wpf/App.xaml.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.DependencyInjection; using Calc64Base; using MVVM.View.Extension; +using System; namespace Calc64_Wpf @@ -20,7 +21,7 @@ protected override void OnStartup(StartupEventArgs e) IServiceCollection BaseServices = new ServiceCollection() .AddSingleton(); - var serviceProvider = BaseServices.BuildServiceProvider(); + IServiceProvider serviceProvider = BaseServices.BuildServiceProvider(); IoC.Configure(serviceProvider); diff --git a/CSharpBible/Calc/Calc64_Wpf/Calc64_Wpf.csproj b/CSharpBible/Calc/Calc64_Wpf/Calc64_Wpf.csproj index fbcc390f8..b928c606b 100644 --- a/CSharpBible/Calc/Calc64_Wpf/Calc64_Wpf.csproj +++ b/CSharpBible/Calc/Calc64_Wpf/Calc64_Wpf.csproj @@ -2,7 +2,7 @@ WinExe - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows enable disable true @@ -14,6 +14,9 @@ + + + diff --git a/CSharpBible/Calc/Calc64_Wpf/ViewModels/CalculatorViewModel.cs b/CSharpBible/Calc/Calc64_Wpf/ViewModels/CalculatorViewModel.cs index 0faf4cdb9..246e58768 100644 --- a/CSharpBible/Calc/Calc64_Wpf/ViewModels/CalculatorViewModel.cs +++ b/CSharpBible/Calc/Calc64_Wpf/ViewModels/CalculatorViewModel.cs @@ -7,7 +7,7 @@ namespace Calc64_Wpf.ViewModels; -public class CalculatorViewModel:BaseViewModelCT +public partial class CalculatorViewModel:BaseViewModelCT { } diff --git a/CSharpBible/Calc/Calc_net.props b/CSharpBible/Calc/Calc_net.props index 42a6e622d..fddf244ff 100644 --- a/CSharpBible/Calc/Calc_net.props +++ b/CSharpBible/Calc/Calc_net.props @@ -1,9 +1,9 @@ ..\.. - ..\..\..\bin\$(MSBuildProjectName)\ - ..\..\..\obj.net\$(MSBuildProjectName)\ - 12.0 + $(UpDir)\..\bin\$(MSBuildProjectName)\ + $(UpDir)\..\obj.net\$(MSBuildProjectName)\ + latest enable disable JC-Soft diff --git a/CSharpBible/ConsoleDisplay/ConsoleDisplay_net.csproj b/CSharpBible/ConsoleDisplay/ConsoleDisplay_net.csproj index 84cd881b8..79d51d577 100644 --- a/CSharpBible/ConsoleDisplay/ConsoleDisplay_net.csproj +++ b/CSharpBible/ConsoleDisplay/ConsoleDisplay_net.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net8.0 @@ -13,8 +13,5 @@ - - - diff --git a/CSharpBible/ConsoleDisplay/View/IConsole.cs b/CSharpBible/ConsoleDisplay/View/IConsole.cs deleted file mode 100644 index 05fe63e42..000000000 --- a/CSharpBible/ConsoleDisplay/View/IConsole.cs +++ /dev/null @@ -1,39 +0,0 @@ -// *********************************************************************** -// Assembly : ConsoleDisplay -// Author : Mir -// Created : 07-16-2022 -// -// Last Modified By : Mir -// Last Modified On : 07-24-2022 -// *********************************************************************** -// -// Copyright (c) JC-Soft. All rights reserved. -// -// -// *********************************************************************** -using System; - -namespace ConsoleDisplay.View -{ - public interface IConsole - { - ConsoleColor ForegroundColor { get; set; } - ConsoleColor BackgroundColor { get; set; } - bool IsOutputRedirected { get; } - bool KeyAvailable { get; } - int LargestWindowHeight { get; } - string Title { get; set; } - int WindowHeight { get; set; } - int WindowWidth { get; set; } - - void Beep(int freq, int len); - void Clear(); - (int Left, int Top) GetCursorPosition(); - ConsoleKeyInfo? ReadKey(); - string ReadLine(); - void SetCursorPosition(int left, int top); - void Write(char ch); - void Write(string? st); - void WriteLine(string? st = ""); - } -} \ No newline at end of file diff --git a/CSharpBible/ConsoleDisplay/View/TileDisplay.cs b/CSharpBible/ConsoleDisplay/View/TileDisplay.cs index 532a916b7..4ce2ccf71 100644 --- a/CSharpBible/ConsoleDisplay/View/TileDisplay.cs +++ b/CSharpBible/ConsoleDisplay/View/TileDisplay.cs @@ -15,319 +15,331 @@ using System.Collections.Generic; using System.Drawing; -namespace ConsoleDisplay.View +namespace ConsoleDisplay.View; + + +/// +/// Class TileDisplay. +/// +/// The type of the enum. +public class TileDisplay: ITileDisplay { + #region Properties + #region static Properties + /// + /// The default tile + /// + public static T? defaultTile { get; set; } + /// + /// The default tile definition + /// + public static TileDefBase? tileDef { get; set; } + #endregion /// - /// Class TileDisplay. + /// Gets or sets the with the specified index. /// - /// The type of the enum. - public class TileDisplay - { - #region Properties - #region static Properties - /// - /// The default tile - /// - public static T? defaultTile { get; set; } - /// - /// The default tile definition - /// - public static TileDefBase? tileDef { get; set; } - #endregion - - /// - /// Gets or sets the with the specified index. - /// - /// The index. - /// T. - public T? this[Point Idx] { get => GetTile(Idx); set => SetTile(Idx,value); } - /// - /// Gets the position. - /// - /// The position. - public Point Position => _rect.Location; - /// - /// Gets the size of the display. - /// - /// The size of the display. - public Size DispSize => _size; - /// - /// Gets the size of the tile. - /// - /// The size of the tile. - public Size TileSize => _tileSize; - /// - /// My console - /// - public static MyConsoleBase myConsole= new MyConsole(); - /// - /// Gets or sets the tile definition. - /// it returns the default-tileDef when the local tileDef isn't set. - /// - /// The tile definition. - public TileDefBase? TileDef { get => _tileDef ?? tileDef; set => _tileDef = value; } + /// The index. + /// T. + public T? this[Point Idx] { get => GetTile(Idx); set => SetTile(Idx,value); } + /// + /// Gets the position. + /// + /// The position. + public Point Position => _rect.Location; + /// + /// Gets the size of the display. + /// + /// The size of the display. + public Size DispSize => _size; + /// + /// Gets the size of the tile. + /// + /// The size of the tile. + public Size TileSize => _tileSize; + + /// + /// Gets or sets the tile definition. + /// it returns the default-tileDef when the local tileDef isn't set. + /// + /// The tile definition. + public TileDefBase? TileDef { get => _tileDef ?? tileDef; set => _tileDef = value; } public Point DispOffset { get; set; } = Point.Empty; - public Func? FncGetTile; - public Func? FncOldPos; - #region Private Properties and Fields - - /// - /// The tiles - /// - private readonly Dictionary _tiles = new(); - /// - /// The rect - /// - private Rectangle _rect = new(); - /// - /// The size - /// - private Size _size; - /// - /// The tile size - /// - private Size _tileSize; - /// - /// The changed - /// - private bool _changed=false; - /// - /// The (local) tile-definition - /// - private TileDefBase? _tileDef; - #endregion - #endregion - - #region Methods - #region Static Methods - /// - /// Initializes static members of the class. - /// - static TileDisplay() { - defaultTile = default; - } + public Func? FncGetTile { get; set; } + public Func? FncOldPos { get; set; } - /// - /// Writes the tile. - /// - /// The offset. - /// The p. - /// The tile. - public static void WriteTile(Point Offset,PointF p, T tile)=>WriteTile(Offset,p,tile,Size.Empty); - - /// - /// Writes the tile. - /// - /// The offset. - /// The p. - /// The tile. - /// The ts. - public static void WriteTile(Point Offset,PointF p, T tile, Size ts) - { - var def = tileDef?.GetTileDef(tile as Enum) ?? default; - Size s = (ts == Size.Empty)?new Size(def.lines[0].Length, def.lines.Length):ts; - Point pc = new(); - for (pc.Y = 0; pc.Y < def.lines.Length; pc.Y++) - for (pc.X = 0; pc.X < def.lines[pc.Y].Length; pc.X++) - WriteTileChunk(Offset, p, def, s, pc); - } + public IConsole console { get; private set; } - /// - /// Writes the tile chunk. - /// - /// The offset. - /// The p. - /// The definition. - /// The s. - /// The pc. - private static void WriteTileChunk(Point Offset, PointF p, (string[] lines, (ConsoleColor fgr, ConsoleColor bgr)[] colors) def, Size s, Point pc) - { - myConsole.ForegroundColor = def.colors[pc.X + pc.Y * s.Width].fgr; - myConsole.BackgroundColor = def.colors[pc.X + pc.Y * s.Width].bgr; - myConsole.SetCursorPosition(Offset.X + (int)(p.X * s.Width) + pc.X, Offset.Y + (int)(p.Y * s.Height) + pc.Y); - myConsole.Write(def.lines[pc.Y][pc.X]); - } - #endregion - - /// - /// Initializes a new instance of the class. - /// - public TileDisplay() : this(Point.Empty,Size.Empty){} - - /// - /// Initializes a new instance of the class. - /// - /// The position. - /// The size. - public TileDisplay(Point position, Size size) : this(position, size,tileDef?.TileSize ?? new Size(4,2)) { } - - /// - /// Initializes a new instance of the class. - /// - /// The position. - /// The size. - /// The tile-definition. - public TileDisplay(Point position, Size size, TileDefBase aTileDef) : this(position, size, aTileDef.TileSize ) { - TileDef = aTileDef; - } + #region Private Properties and Fields - /// - /// Initializes a new instance of the class. - /// - /// The position. - /// The size. - /// Size of the tile. - public TileDisplay(Point position,Size size, Size tileSize) - { - _rect.Location = position; - _tileSize = tileSize != Size.Empty ? tileSize : new Size(4, 2); - if (size == Size.Empty) - _size = new Size(myConsole.WindowWidth / _tileSize.Width,myConsole.WindowHeight/_tileSize.Height); - else - _size = size; - _rect.Size = new Size(_size.Width * _tileSize.Width,_size.Height * _tileSize.Height); - } + /// + /// The tiles + /// + private readonly Dictionary _tiles = new(); + /// + /// The rect + /// + private Rectangle _rect = new(); + /// + /// The size + /// + private Size _size; + /// + /// The tile size + /// + private Size _tileSize; + /// + /// The changed + /// + private bool _changed=false; + /// + /// The (local) tile-definition + /// + private TileDefBase? _tileDef; + #endregion + #endregion - /// - /// Writes the tile. - /// - /// The p. - /// The tile. - public void WriteTile(PointF p, T tile) - { - var def = TileDef?.GetTileDef(tile as Enum) ?? default; - Size s = TileSize; - Point pc = new((int)p.X*s.Width,(int)p.Y*s.Height); - var _rect2 = new Rectangle(Point.Empty, _rect.Size); - _rect2.Inflate(s); - if (_rect2.Contains(pc)) - { - _rect2.Size = _rect.Size; - _rect2.Location = Point.Empty; - _rect2.Offset(new Point((int)(-p.X * s.Width),(int)(-p.Y * s.Height))); - for (pc.Y = 0; pc.Y < def.lines.Length; pc.Y++) - for (pc.X = 0; pc.X < def.lines[pc.Y].Length; pc.X++) - if (_rect2.Contains(pc)) - WriteTileChunk(Position, p, def, s, pc); - } - } + #region Methods + #region Static Methods + /// + /// Initializes static members of the class. + /// + static TileDisplay() { + defaultTile = default; + } - #region private Methods - - /// - /// Gets the tile. - /// - /// The index. - /// T. - private T? GetTile(Point Idx) { - if (Idx.X < 0 || Idx.X >= _size.Width || Idx.Y < 0 || Idx.Y >= _size.Height) return defaultTile; - if (_tiles.TryGetValue(Idx, out T? value)) return value; - return defaultTile; - } + /// + /// Writes the tile. + /// + /// The offset. + /// The p. + /// The tile. + public static void WriteTile(IConsole console, Point Offset,PointF p, T tile)=>WriteTile(console, Offset,p,tile,Size.Empty); + + /// + /// Writes the tile. + /// + /// The offset. + /// The p. + /// The tile. + /// The ts. + public static void WriteTile(IConsole console, Point Offset,PointF p, T tile, Size ts) + { + var def = tileDef?.GetTileDef(tile as Enum) ?? default; + Size s = (ts == Size.Empty)?new Size(def.lines[0].Length, def.lines.Length):ts; + Point pc = new(); + for (pc.Y = 0; pc.Y < def.lines.Length; pc.Y++) + for (pc.X = 0; pc.X < def.lines[pc.Y].Length; pc.X++) + WriteTileChunk(console, Offset, p, def, s, pc); + } - /// - /// Sets the tile. - /// - /// The index. - /// The value. - private void SetTile(Point Idx, T? value) + /// + /// Writes the tile chunk. + /// + /// The offset. + /// The p. + /// The definition. + /// The s. + /// The pc. + private static void WriteTileChunk(IConsole console,Point Offset, PointF p, (string[] lines, (ConsoleColor fgr, ConsoleColor bgr)[] colors) def, Size s, Point pc) + { + console.ForegroundColor = def.colors[pc.X + pc.Y * s.Width].fgr; + console.BackgroundColor = def.colors[pc.X + pc.Y * s.Width].bgr; + console.SetCursorPosition(Offset.X + (int)(p.X * s.Width) + pc.X, Offset.Y + (int)(p.Y * s.Height) + pc.Y); + console.Write(def.lines[pc.Y][pc.X]); + } + #endregion + + /// + /// Initializes a new instance of the class. + /// + public TileDisplay() : this(new MyConsole(),Point.Empty,Size.Empty){} + + /// + /// Initializes a new instance of the class. + /// + public TileDisplay(IConsole console) : this(console, Point.Empty, Size.Empty) { } + + /// + /// Initializes a new instance of the class. + /// + /// The position. + /// The size. + public TileDisplay(IConsole console,Point position, Size size) : this(console, position, size,tileDef?.TileSize ?? new Size(4,2)) { } + + /// + /// Initializes a new instance of the class. + /// + /// The position. + /// The size. + /// The tile-definition. + public TileDisplay(IConsole console,Point position, Size size, TileDefBase aTileDef) : this(console,position, size, aTileDef.TileSize ) { + TileDef = aTileDef; + } + + /// + /// Initializes a new instance of the class. + /// + /// The position. + /// The size. + /// Size of the tile. + public TileDisplay(IConsole console,Point position,Size size, Size tileSize) + { + this.console = console; + _rect.Location = position; + _tileSize = tileSize != Size.Empty ? tileSize : new Size(4, 2); + if (size == Size.Empty) + _size = new Size(console.WindowWidth / _tileSize.Width,console.WindowHeight/_tileSize.Height); + else + _size = size; + _rect.Size = new Size(_size.Width * _tileSize.Width,_size.Height * _tileSize.Height); + } + + #region private Methods + + /// + /// Gets the tile. + /// + /// The index. + /// T. + private T? GetTile(Point Idx) { + if (Idx.X < 0 || Idx.X >= _size.Width || Idx.Y < 0 || Idx.Y >= _size.Height) return defaultTile; + if (_tiles.TryGetValue(Idx, out T? value)) return value; + return defaultTile; + } + + /// + /// Sets the tile. + /// + /// The index. + /// The value. + private void SetTile(Point Idx, T? value) + { + if (Idx.X < 0 || Idx.X >= _size.Width || Idx.Y < 0 || Idx.Y >= _size.Height) return; + if (_tiles.TryGetValue(Idx, out T? v) && (v is T e) && e.Equals(value) ) return; + if (value!=null) + _tiles[Idx] = value; + else + _tiles.Remove(Idx); + _changed = true; + } + #endregion + + #region public Methods + /// + /// Writes the tile. + /// + /// The p. + /// The tile. + public void WriteTile(PointF p, T tile) + { + var def = TileDef?.GetTileDef(tile as Enum) ?? default; + Size s = TileSize; + Point pc = new((int)p.X*s.Width,(int)p.Y*s.Height); + var _rect2 = new Rectangle(Point.Empty, _rect.Size); + _rect2.Inflate(s); + if (_rect2.Contains(pc)) { - if (Idx.X < 0 || Idx.X >= _size.Width || Idx.Y < 0 || Idx.Y >= _size.Height) return; - if (_tiles.TryGetValue(Idx, out T? v) && (v is T e) && e.Equals(value) ) return; - if (value!=null) - _tiles[Idx] = value; - else - _tiles.Remove(Idx); - _changed = true; + _rect2.Size = _rect.Size; + _rect2.Location = Point.Empty; + _rect2.Offset(new Point((int)(-p.X * s.Width),(int)(-p.Y * s.Height))); + for (pc.Y = 0; pc.Y < def.lines.Length; pc.Y++) + for (pc.X = 0; pc.X < def.lines[pc.Y].Length; pc.X++) + if (_rect2.Contains(pc)) + WriteTileChunk(console, Position, p, def, s, pc); } + } - public void Update(bool e) - { - var diffFields = new List<(Point, T, Point?)>(); - var p = new Point(); - Point p3 = new(); - if (FncGetTile == null) return; + public void Update(bool e) + { + var diffFields = new List<(Point, T, Point?)>(); + var p = new Point(); + Point p3 = new(); + if (FncGetTile == null) return; + + for (p.Y = 0; p.Y < DispSize.Height; p.Y++) + for (p.X = 0; p.X < DispSize.Width; p.X++) + { + p3.X = p.X + DispOffset.X; + p3.Y = p.Y + DispOffset.Y; + T td = FncGetTile(p3)!; + T? ot = GetTile(p); + var po = FncOldPos?.Invoke(p3); + bool x1 = !td.Equals(ot); + bool x2 = (po != null) && (po != p3); - for (p.Y = 0; p.Y < DispSize.Height; p.Y++) - for (p.X = 0; p.X < DispSize.Width; p.X++) + if (x1 || x2) { - p3.X = p.X + DispOffset.X; - p3.Y = p.Y + DispOffset.Y; - T td = FncGetTile(p3)!; - T? ot = GetTile(p); - var po = FncOldPos?.Invoke(p3); - bool x1 = !td.Equals(ot); - bool x2 = (po != null) && (po != p3); - - if (x1 || x2) - { - Point pp = new(p.X, p.Y); - - diffFields.Add((pp, (T)td, Point.Subtract(po ?? p3, (Size)DispOffset))); - if (!e) - _tiles[p] = (T)td; - } + Point pp = new(p.X, p.Y); + diffFields.Add((pp, (T)td, Point.Subtract(po ?? p3, (Size)DispOffset))); + if (!e) + _tiles[p] = (T)td; } - if (e) - { - foreach (var f in diffFields) - if (f.Item1 == f.Item3) - { - WriteTile(f.Item1, f.Item2); - } - foreach (var f in diffFields) - if (f.Item1 != f.Item3 && Math.Abs(f.Item1.X - f.Item3?.X?? -1) < 2) - { - var zPos = new PointF((f.Item1.X + f.Item3?.X??0) * 0.5f, (f.Item1.Y + f.Item3?.Y??0) * 0.5f); - WriteTile(zPos, f.Item2); - } + } - else - foreach (var f in diffFields) + if (e) + { + foreach (var f in diffFields) + if (f.Item1 == f.Item3) { - if ((f.Item3 !=null) && ((f.Item1.X != f.Item3?.X) || (f.Item1.Y != f.Item3?.Y))) - { - var p1 = new Point(f.Item1.X, f.Item3?.Y??0); - WriteTile(p1, FncGetTile(Point.Add(p1,(Size)DispOffset))); - var p2 = new Point(f.Item3?.X??0, f.Item1.Y); - WriteTile(p2, FncGetTile(Point.Add(p2, (Size)DispOffset))); - } WriteTile(f.Item1, f.Item2); } + foreach (var f in diffFields) + if (f.Item1 != f.Item3 && Math.Abs(f.Item1.X - f.Item3?.X?? -1) < 2) + { + var zPos = new PointF((f.Item1.X + f.Item3?.X??0) * 0.5f, (f.Item1.Y + f.Item3?.Y??0) * 0.5f); + WriteTile(zPos, f.Item2); + } } + else + foreach (var f in diffFields) + { + if ((f.Item3 !=null) && ((f.Item1.X != f.Item3?.X) || (f.Item1.Y != f.Item3?.Y))) + { + var p1 = new Point(f.Item1.X, f.Item3?.Y??0); + WriteTile(p1, FncGetTile(Point.Add(p1,(Size)DispOffset))); + var p2 = new Point(f.Item3?.X??0, f.Item1.Y); + WriteTile(p2, FncGetTile(Point.Add(p2, (Size)DispOffset))); + } + WriteTile(f.Item1, f.Item2); + } + } - public void FullRedraw() - { - if (FncGetTile == null) return; - // Draw playfield - Point p = new(); + public void FullRedraw() + { + if (FncGetTile == null) return; + // Draw playfield + Point p = new(); Point p2 = new(); for (p.Y = 0; p.Y < DispSize.Height; p.Y++) - for (p.X = 0; p.X < DispSize.Width; p.X++) { + for (p.X = 0; p.X < DispSize.Width; p.X++) { p2.X = p.X + DispOffset.X; p2.Y = p.Y + DispOffset.Y; - WriteTile(p, _tiles[p] = FncGetTile(p2)); + WriteTile(p, _tiles[p] = FncGetTile(p2)); } - } - #endregion - #endregion } + #endregion + #endregion +} public class TileDisplay : TileDisplay { /// /// Initializes a new instance of the class. /// public TileDisplay() : base() { } + /// + /// Initializes a new instance of the class. + /// + public TileDisplay(IConsole console) : base(console) { } /// /// Initializes a new instance of the class. /// /// The position. /// The size. - public TileDisplay(Point position, Size size) : base(position, size) { } + public TileDisplay(IConsole console,Point position, Size size) : base(console, position, size) { } /// /// Initializes a new instance of the class. @@ -335,7 +347,7 @@ public TileDisplay(Point position, Size size) : base(position, size) { } /// The position. /// The size. /// The tile-definition. - public TileDisplay(Point position, Size size, TileDefBase aTileDef) : base(position, size, aTileDef) { } + public TileDisplay(IConsole console, Point position, Size size, TileDefBase aTileDef) : base(console, position, size, aTileDef) { } /// /// Initializes a new instance of the class. @@ -343,6 +355,5 @@ public TileDisplay(Point position, Size size, TileDefBase aTileDef) : base(posit /// The position. /// The size. /// Size of the tile. - public TileDisplay(Point position, Size size, Size tileSize) : base(position, size, tileSize) { } + public TileDisplay(IConsole console, Point position, Size size, Size tileSize) : base(console, position, size, tileSize) { } } -} diff --git a/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj b/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj index 6aba1fa08..1f2c4e62b 100644 --- a/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj +++ b/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj @@ -19,9 +19,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj.bak b/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj.bak index 83426d1ba..43bcd7f43 100644 --- a/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj.bak +++ b/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj.bak @@ -22,8 +22,7 @@ - - + diff --git a/CSharpBible/ConsoleDisplayTests/ConsoleDisplay_netTests.csproj b/CSharpBible/ConsoleDisplayTests/ConsoleDisplay_netTests.csproj index a43e43149..ea610354c 100644 --- a/CSharpBible/ConsoleDisplayTests/ConsoleDisplay_netTests.csproj +++ b/CSharpBible/ConsoleDisplayTests/ConsoleDisplay_netTests.csproj @@ -1,7 +1,7 @@  - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows true false @@ -18,9 +18,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/DB/FoxCon/FoxCon.csproj b/CSharpBible/DB/FoxCon/FoxCon.csproj index e0d592c01..23de3cf0e 100644 --- a/CSharpBible/DB/FoxCon/FoxCon.csproj +++ b/CSharpBible/DB/FoxCon/FoxCon.csproj @@ -20,6 +20,7 @@ + diff --git a/CSharpBible/DB/MdbBrowser/MdbBrowser.csproj b/CSharpBible/DB/MdbBrowser/MdbBrowser.csproj index 63c425502..30488ea38 100644 --- a/CSharpBible/DB/MdbBrowser/MdbBrowser.csproj +++ b/CSharpBible/DB/MdbBrowser/MdbBrowser.csproj @@ -2,35 +2,11 @@ WinExe - net481-windows;net472-windows;net462-windows;net6.0-windows;net7.0-windows;net8.0-windows + net481-windows;net472-windows;net462-windows;net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows enable true AnyCPU;x86 - - 7 - - - 7 - - - 7 - - - 7 - - - 7 - - - 7 - - - 7 - - - 7 - diff --git a/CSharpBible/Data/TraceCsv2realCsvTests/TraceCsv2realCsvTests.csproj b/CSharpBible/Data/TraceCsv2realCsvTests/TraceCsv2realCsvTests.csproj index ab6cb20ad..51aa55071 100644 --- a/CSharpBible/Data/TraceCsv2realCsvTests/TraceCsv2realCsvTests.csproj +++ b/CSharpBible/Data/TraceCsv2realCsvTests/TraceCsv2realCsvTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/DataGridExWPF/DataGridExWPF.csproj b/CSharpBible/DataGridExWPF/DataGridExWPF.csproj index 9946e3187..2105d657c 100644 --- a/CSharpBible/DataGridExWPF/DataGridExWPF.csproj +++ b/CSharpBible/DataGridExWPF/DataGridExWPF.csproj @@ -1,6 +1,5 @@  - Debug AnyCPU diff --git a/CSharpBible/DependencyInjection/CustomerRepositoryTests/CustomerRepositoryTests.csproj b/CSharpBible/DependencyInjection/CustomerRepositoryTests/CustomerRepositoryTests.csproj index c8a89a279..dc9bf5178 100644 --- a/CSharpBible/DependencyInjection/CustomerRepositoryTests/CustomerRepositoryTests.csproj +++ b/CSharpBible/DependencyInjection/CustomerRepositoryTests/CustomerRepositoryTests.csproj @@ -2,7 +2,7 @@ Library - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 @@ -11,14 +11,13 @@ - + - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -26,6 +25,8 @@ + + diff --git a/CSharpBible/Games/Asteroids/App.xaml b/CSharpBible/Games/Asteroids/App.xaml index 7f4d76d39..45ca579c5 100644 --- a/CSharpBible/Games/Asteroids/App.xaml +++ b/CSharpBible/Games/Asteroids/App.xaml @@ -1,9 +1,8 @@ - - - - + + diff --git a/CSharpBible/Games/CreateCards/CreateCards.csproj b/CSharpBible/Games/CreateCards/CreateCards.csproj index 7e80e6ee4..e22ab8d1f 100644 --- a/CSharpBible/Games/CreateCards/CreateCards.csproj +++ b/CSharpBible/Games/CreateCards/CreateCards.csproj @@ -2,7 +2,7 @@ Exe - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 diff --git a/CSharpBible/Games/CreateCards/Utilities/GraphicUtils.cs b/CSharpBible/Games/CreateCards/Utilities/GraphicUtils.cs index d35e21499..fdd93284f 100644 --- a/CSharpBible/Games/CreateCards/Utilities/GraphicUtils.cs +++ b/CSharpBible/Games/CreateCards/Utilities/GraphicUtils.cs @@ -27,7 +27,7 @@ public static Graphics GraphicsWriter(this Stream metaStream) } public static void DrawToScreen(this Image ig, Rectangle? r = null) - { + { using (Graphics g = Graphics.FromHdc(GetDC(IntPtr.Zero))) { if (r == null) diff --git a/CSharpBible/Games/CsEpiphany/Model/Entity.cs b/CSharpBible/Games/CsEpiphany/Model/Entity.cs index bc6a1352a..80003f54b 100644 --- a/CSharpBible/Games/CsEpiphany/Model/Entity.cs +++ b/CSharpBible/Games/CsEpiphany/Model/Entity.cs @@ -18,27 +18,24 @@ private void m_set_position_y(int y) { } protected bool m_just_checked; - protected Entity_Handle m_id; + protected Entity_Handle? m_id; - protected Entity_Type m_type; + protected Entity_Type? m_type; protected int m_position_x; protected int m_position_y; protected int m_speed; - protected Sprite m_sprite; + protected Sprite? m_sprite; //True if an entity exists - not used protected bool m_exists; - protected Level current_level; + protected Level? current_level; - - public Entity(); - - public Entity_Handle get_id() => m_id; + public Entity_Handle? get_id() => m_id; public void set_id(Entity_Handle handle) => m_id = handle; @@ -46,9 +43,9 @@ private void m_set_position_y(int y) { } public int get_position_y() => m_position_y; - public Entity_Type get_type() => m_type; + public Entity_Type? get_type() => m_type; - public Sprite get_sprite() => m_sprite; + public Sprite? get_sprite() => m_sprite; public void set_speed(int speed) => m_speed = speed; diff --git a/CSharpBible/Games/CsEpiphany/Model/EpiConfig.cs b/CSharpBible/Games/CsEpiphany/Model/EpiConfig.cs index 3d8bdce24..8bac54e1a 100644 --- a/CSharpBible/Games/CsEpiphany/Model/EpiConfig.cs +++ b/CSharpBible/Games/CsEpiphany/Model/EpiConfig.cs @@ -10,71 +10,71 @@ namespace CsEpiphany.Model; // Singleton class to store game configuration public class EpiConfig : IEpiConfig { - private int m_screen_size_x=640; - private int m_screen_size_y=480; - private int m_score_size_y=32; + private int _screen_size_x=640; + private int _screen_size_y=480; + private int _score_size_y=32; // int m_sprite_size; - private int m_map_size_x=32; - private int m_map_size_y=32; - static private int m_max_anim_drawn=8; + private int _map_size_x=32; + private int _map_size_y=32; + static private int _max_anim_drawn=8; // int m_max_anim; - private int m_moving_step= Sprite.size / m_max_anim_drawn; - private int m_msec_per_frame= 140 / m_max_anim_drawn; - private int m_volume_sound=8; - private int m_volume_music=8; + private int _moving_step= Sprite.size / _max_anim_drawn; + private int _msec_per_frame= 140 / _max_anim_drawn; + private int _volume_sound=8; + private int _volume_music=8; private int m_last_level=0; public void set_default_values() { //size in pixels - m_screen_size_x = 640; - m_screen_size_y = 480; - m_score_size_y = 32; + _screen_size_x = 640; + _screen_size_y = 480; + _score_size_y = 32; //size in cells - m_map_size_x = 32; - m_map_size_y = 32; + _map_size_x = 32; + _map_size_y = 32; //it must be a multiple of 2 - m_max_anim_drawn = 8; + _max_anim_drawn = 8; - m_moving_step = Sprite.size / m_max_anim_drawn; + _moving_step = Sprite.size / _max_anim_drawn; - //m_msec_per_frame=176/m_max_anim_drawn; - //m_msec_per_frame=150/m_max_anim_drawn; - //m_msec_per_frame=240/m_max_anim_drawn; - m_msec_per_frame = 140 / m_max_anim_drawn; + //_msec_per_frame=176/_max_anim_drawn; + //_msec_per_frame=150/_max_anim_drawn; + //_msec_per_frame=240/_max_anim_drawn; + _msec_per_frame = 140 / _max_anim_drawn; - m_volume_sound = 8; + _volume_sound = 8; - m_volume_music = 8; + _volume_music = 8; m_last_level = 0; } - public int get_screen_size_x()=> m_screen_size_x; - public int get_screen_size_y()=> m_screen_size_y; - public int get_score_size_y()=> m_score_size_y; + public int get_screen_size_x()=> _screen_size_x; + public int get_screen_size_y()=> _screen_size_y; + public int get_score_size_y()=> _score_size_y; // int get_sprite_size(); - public int get_map_size_x()=> m_map_size_x; - public int get_map_size_y()=> m_map_size_y; - public int get_max_anim_drawn()=> m_max_anim_drawn; + public int get_map_size_x()=> _map_size_x; + public int get_map_size_y()=> _map_size_y; + public int get_max_anim_drawn()=> _max_anim_drawn; // int get_max_anim(); - public int get_moving_step()=> m_moving_step; - public int get_msec_per_frame()=> m_msec_per_frame; - public int get_volume_sound(); - public int get_volume_music(); - public int get_last_level(); - public void set_last_level(int level); - public void set_volume_sound(int volume); - public void set_volume_music(int volume); - public void read_values_from_file(char* filename); - public void save_values_to_file(char* filename); - public void refresh_game_window_parameters(); + public int get_moving_step()=> _moving_step; + public int get_msec_per_frame()=> _msec_per_frame; + public int get_volume_sound()=>_volume_sound; + public int get_volume_music()=> _volume_music; + public int get_last_level()=>m_last_level; + public void set_last_level(int level)=>m_last_level=level; + public void set_volume_sound(int volume)=>_volume_sound=volume; + public void set_volume_music(int volume)=>_volume_music=volume; + public void read_values_from_file(string filename) { } + public void save_values_to_file(string filename) { } + public void refresh_game_window_parameters() { } // begin Singleton stuff diff --git a/CSharpBible/Games/Game_Base/Game_Base_net.csproj b/CSharpBible/Games/Game_Base/Game_Base_net.csproj index 39bad5247..62b5f38c4 100644 --- a/CSharpBible/Games/Game_Base/Game_Base_net.csproj +++ b/CSharpBible/Games/Game_Base/Game_Base_net.csproj @@ -2,7 +2,7 @@ Library - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 diff --git a/CSharpBible/Games/Game_Base/Model/Playfield2D.cs b/CSharpBible/Games/Game_Base/Model/Playfield2D.cs index cfb38fba6..d6cd0c137 100644 --- a/CSharpBible/Games/Game_Base/Model/Playfield2D.cs +++ b/CSharpBible/Games/Game_Base/Model/Playfield2D.cs @@ -31,7 +31,7 @@ namespace Game_Base.Model /// /// /// - public class Playfield2D: IHasChildren where T : class + public class Playfield2D: IPlayfield2D, IHasChildren where T : class { #region Properties #region private Properties @@ -77,6 +77,7 @@ public class Playfield2D: IHasChildren where T : class /// /// The default size. public static Size DefaultSize { get; set; } = new Size(20, 20); + #region this /// /// Gets or sets the with the specified p. diff --git a/CSharpBible/Games/Game_BaseTests/Game_BaseTests.csproj b/CSharpBible/Games/Game_BaseTests/Game_BaseTests.csproj index e348e74d7..2187d1d0f 100644 --- a/CSharpBible/Games/Game_BaseTests/Game_BaseTests.csproj +++ b/CSharpBible/Games/Game_BaseTests/Game_BaseTests.csproj @@ -8,9 +8,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Games/Game_BaseTests/Game_Base_netTests.csproj b/CSharpBible/Games/Game_BaseTests/Game_Base_netTests.csproj index cf30f016a..478a43c20 100644 --- a/CSharpBible/Games/Game_BaseTests/Game_Base_netTests.csproj +++ b/CSharpBible/Games/Game_BaseTests/Game_Base_netTests.csproj @@ -2,15 +2,14 @@ Library - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Games/Games.sln b/CSharpBible/Games/Games.sln index 002553f2a..0cd342ca4 100644 --- a/CSharpBible/Games/Games.sln +++ b/CSharpBible/Games/Games.sln @@ -101,6 +101,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MVVM_Converter_Grid2", "..\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Asteroids_Base", "Asteroids_Base\Asteroids_Base.csproj", "{15EA50ED-95FB-4195-87F6-F1D48DA8B5F1}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MVVM_TiledDisplay_net", "MVVM_TiledDisplay_net\MVVM_TiledDisplay_net.csproj", "{B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Snake_Console_net", "Snake_Console\Snake_Console_net.csproj", "{93E28010-05F4-4BF7-B97A-CC55AA958BC6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sudoku_Base", "Sudoku_Base\Sudoku_Base.csproj", "{F3E144AA-ABBE-48E4-8273-A1D910992C80}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sudoku_BaseTests", "Sudoku_BaseTests\Sudoku_BaseTests.csproj", "{84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VTileEdit", "VTileEdit\VTileEdit.csproj", "{571ED625-7F3B-4A13-8617-5FF852EED1A8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Werner_Flaschbier_ConsoleTests", "Werner_Flaschbier_BaseTests\Werner_Flaschbier_ConsoleTests.csproj", "{2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -263,6 +275,30 @@ Global {15EA50ED-95FB-4195-87F6-F1D48DA8B5F1}.Debug|Any CPU.Build.0 = Debug|Any CPU {15EA50ED-95FB-4195-87F6-F1D48DA8B5F1}.Release|Any CPU.ActiveCfg = Release|Any CPU {15EA50ED-95FB-4195-87F6-F1D48DA8B5F1}.Release|Any CPU.Build.0 = Release|Any CPU + {B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}.Release|Any CPU.Build.0 = Release|Any CPU + {93E28010-05F4-4BF7-B97A-CC55AA958BC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93E28010-05F4-4BF7-B97A-CC55AA958BC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93E28010-05F4-4BF7-B97A-CC55AA958BC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93E28010-05F4-4BF7-B97A-CC55AA958BC6}.Release|Any CPU.Build.0 = Release|Any CPU + {F3E144AA-ABBE-48E4-8273-A1D910992C80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3E144AA-ABBE-48E4-8273-A1D910992C80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3E144AA-ABBE-48E4-8273-A1D910992C80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3E144AA-ABBE-48E4-8273-A1D910992C80}.Release|Any CPU.Build.0 = Release|Any CPU + {84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}.Release|Any CPU.Build.0 = Release|Any CPU + {571ED625-7F3B-4A13-8617-5FF852EED1A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {571ED625-7F3B-4A13-8617-5FF852EED1A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {571ED625-7F3B-4A13-8617-5FF852EED1A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {571ED625-7F3B-4A13-8617-5FF852EED1A8}.Release|Any CPU.Build.0 = Release|Any CPU + {2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CSharpBible/Games/Snake_Base/Model/Apple.cs b/CSharpBible/Games/Snake_Base/Model/Apple.cs deleted file mode 100644 index 969e7486e..000000000 --- a/CSharpBible/Games/Snake_Base/Model/Apple.cs +++ /dev/null @@ -1,45 +0,0 @@ -// *********************************************************************** -// Assembly : Snake_Base -// Author : Mir -// Created : 08-25-2022 -// -// Last Modified By : Mir -// Last Modified On : 09-09-2022 -// *********************************************************************** -// -// Copyright (c) JC-Soft. All rights reserved. -// -// -// *********************************************************************** -using System.Drawing; - -/// -/// The Model namespace. -/// -/// -namespace Snake_Base.Model -{ - /// - /// Class Apple. - /// Implements the - /// - /// - public class Apple : SnakeGameObject - { - /// - /// Initializes a new instance of the class. - /// - public Apple():base() - { - } - - /// - /// Initializes a new instance of the class. - /// - /// The point. - /// The PLF. - public Apple(Point point, Playfield2D? plf = null) : base(point, plf) - { - } - } -} diff --git a/CSharpBible/Games/Snake_Base/Model/Direction.cs b/CSharpBible/Games/Snake_Base/Model/Direction.cs deleted file mode 100644 index d58821041..000000000 --- a/CSharpBible/Games/Snake_Base/Model/Direction.cs +++ /dev/null @@ -1,76 +0,0 @@ -// *********************************************************************** -// Assembly : Snake_Base -// Author : Mir -// Created : 08-25-2022 -// -// Last Modified By : Mir -// Last Modified On : 09-09-2022 -// *********************************************************************** -// -// Copyright (c) JC-Soft. All rights reserved. -// -// -// *********************************************************************** -using System.Drawing; - -/// -/// The Model namespace. -/// -/// -namespace Snake_Base.Model -{ - /// - /// Enum Direction - /// - public enum Direction - { - /// - /// The north - /// - North, - /// - /// The west - /// - West, - /// - /// The south - /// - South, - /// - /// The east - /// - East - } - - /// - /// Class Offsets. - /// - public static class Offsets - { - /// - /// The dir offsets - /// - /// - static Point[] DirOffsets = { new Point(0, -1), new Point(-1, 0), new Point(0, 1), new Point(1, 0) }; - /// - /// Dirs the offset. - /// - /// The d. - /// Point. - public static Point DirOffset(Direction d) => DirOffsets[(int)d]; - - /// - /// Dirs the offset. - /// - /// The dir. - /// The position. - /// Point. - public static Point DirOffset(Direction? dir, Point position) - { - var p = new Point(position.X,position.Y); - if (dir.HasValue) - p.Offset(DirOffset((Direction)dir)); - return p; - } - } -} \ No newline at end of file diff --git a/CSharpBible/Games/Snake_Base/Model/IPlacedObject.cs b/CSharpBible/Games/Snake_Base/Model/IPlacedObject.cs deleted file mode 100644 index 550046000..000000000 --- a/CSharpBible/Games/Snake_Base/Model/IPlacedObject.cs +++ /dev/null @@ -1,57 +0,0 @@ -// *********************************************************************** -// Assembly : Snake_Base -// Author : Mir -// Created : 08-24-2022 -// -// Last Modified By : Mir -// Last Modified On : 09-09-2022 -// *********************************************************************** -// -// Copyright (c) JC-Soft. All rights reserved. -// -// -// *********************************************************************** -using System; -using System.Drawing; -using System.Runtime.CompilerServices; - -/// -/// The Model namespace. -/// -/// -namespace Snake_Base.Model -{ - /// - /// Interface IPlacedObject - /// - public interface IPlacedObject - { - /// - /// Occurs when [on place change]. - /// - event EventHandler<(Point oP, Point nP)> OnPlaceChange; -#if NET6_0_OR_GREATER - /// - /// Gets or sets the place. - /// - /// The place. - Point Place { get => GetPlace(); set => SetPlace(value); } -#endif - /// - /// Sets the place. - /// - /// The value. - /// The name. - void SetPlace(Point value, [CallerMemberName] string Name=""); - /// - /// Gets the place. - /// - /// Point. - Point GetPlace(); - /// - /// Gets the old place. - /// - /// Point. - Point GetOldPlace(); - } -} \ No newline at end of file diff --git a/CSharpBible/Games/Snake_Base/Model/Playfield2D.cs b/CSharpBible/Games/Snake_Base/Model/Playfield2D.cs deleted file mode 100644 index 1188f91d0..000000000 --- a/CSharpBible/Games/Snake_Base/Model/Playfield2D.cs +++ /dev/null @@ -1,279 +0,0 @@ -// *********************************************************************** -// Assembly : Snake_Base -// Author : Mir -// Created : 08-24-2022 -// -// Last Modified By : Mir -// Last Modified On : 09-09-2022 -// *********************************************************************** -// -// Copyright (c) JC-Soft. All rights reserved. -// -// -// *********************************************************************** -using BaseLib.Helper; -using BaseLib.Interfaces; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Runtime.CompilerServices; - -/// -/// The Model namespace. -/// -/// -namespace Snake_Base.Model -{ - /// - /// Class Playfield2D. - /// Implements the - /// - /// - /// - public class Playfield2D: IHasChildren where T : class - { - #region Properties - #region private Properties - /// - /// The pf data - /// - /// - private readonly Dictionary _pfData = new Dictionary(); - /// - /// The pf rect - /// - /// - private Rectangle _pfRect; - /// - /// The pf size - /// - /// - private Size _pfSize; - #endregion - - /// - /// Gets or sets the size of the pf. - /// - /// The size of the pf. - public Size PfSize { get => _pfRect.Size; set => value.SetProperty(ref _pfSize, PfResize); } - /// - /// Gets the rect. - /// - /// The rect. - public Rectangle Rect { get => _pfRect; } - /// - /// Gets the items. - /// - /// The items. - public IEnumerable Items => GetItems(); - /// - /// Occurs when [on data changed]. - /// - public event EventHandler<(string prop,object? oldVal,object? newVal)>? OnDataChanged; - - /// - /// Gets or sets the default size. - /// - /// The default size. - public static Size DefaultSize { get; set; } = new Size(20, 20); - #region this - /// - /// Gets or sets the with the specified p. - /// - /// The p. - /// System.Nullable<T>. - public T? this[Point P] - { - get => _pfData.ContainsKey(P) ? _pfData[P] : default; set - { - if (IsInside(P)) - { - if (EqualityComparer.Default.Equals(this[P], value)) return; - if (value is IPlacedObject plo) - { -#if NET6_0_OR_GREATER - plo.Place = P; -#else - plo.SetPlace(P); -#endif - plo.OnPlaceChange += ChildPlaceChanged; - } - if (value is IParentedObject && EqualityComparer.Default.Equals(this[P], value)) return; - if (value != null) - { - _pfData[P] = value; -#if NET6_0_OR_GREATER - if (value is IParentedObject po && po.Parent != this) - po.Parent = (IHasChildren)this; -#else - if (value is IParentedObject po && po.GetParent() != this) - po.SetParent((IHasChildren)this); -#endif - OnDataChanged?.Invoke(this, ("Items", null, value)); - } - else if (_pfData.ContainsKey(P)) - { - var oldData = _pfData[P]; - _pfData.Remove(P); - if (oldData is IPlacedObject opl) - opl.OnPlaceChange -= ChildPlaceChanged; - if (oldData is IParentedObject opr) -#if NET6_0_OR_GREATER - opr.Parent = null; -#else - opr.SetParent(null); -#endif - OnDataChanged?.Invoke(this, ("Items", oldData, null)); - } - } - } - } - -#endregion -#endregion - -#region Methods - /// - /// Initializes a new instance of the class. - /// - public Playfield2D():this(DefaultSize){ - } - - /// - /// Initializes a new instance of the class. - /// - /// The size. - public Playfield2D(Size size) - { - PfSize = size; - } - - /// Determines whether the specified point p is inside the Playfield. - /// The point. - /// - /// true if the specified point p is inside; otherwise, false. - /// - public bool IsInside(Point P) - { - return P.X < _pfSize.Width && P.Y < _pfSize.Height && P.X >= 0 && P.Y >= 0; - } - /// - /// Pfs the resize. - /// - /// The arg1. - /// The arg2. - /// The arg3. - /// - private void PfResize(string arg1, Size arg2, Size arg3) - { - _pfRect = new Rectangle(Point.Empty, arg3); - OnDataChanged?.Invoke(this, (arg1, arg2, arg3)); - } - - /// - /// Adds the item. - /// - /// The value. - /// true if XXXX, false otherwise. - public bool AddItem(T value) - { - bool result = false; - if (value is IPlacedObject po -#if NET6_0_OR_GREATER - && !EqualityComparer.Default.Equals(this[po.Place], value)) -#else - && !EqualityComparer.Default.Equals(this[po.GetPlace()], value)) -#endif - { -#if NET6_0_OR_GREATER - this[po.Place] = value; -#else - this[po.GetPlace()] = value; -#endif - //po.OnPlaceChange += ChildPlaceChanged; - //OnDataChanged?.Invoke(this, ("Items", null, value)); - result = true; - } - return result; - } - - /// - /// Removes the item. - /// - /// The value. - /// true if XXXX, false otherwise. - public bool RemoveItem(T? value) - { - if (value is IPlacedObject plo) - { - plo.OnPlaceChange -= ChildPlaceChanged; -#if NET6_0_OR_GREATER - bool result =_pfData.Remove(plo.Place); -#else - bool result = _pfData.Remove(plo.GetPlace()); -#endif - if (value is IParentedObject pro) -#if NET6_0_OR_GREATER - pro.Parent = null; -#else - pro.SetParent(null); -#endif - OnDataChanged?.Invoke(this, ("Items", value, null)); - return result; - } - else - return false; - } - - /// - /// Gets the items. - /// - /// IEnumerable<T>. - public IEnumerable GetItems() - { - return _pfData.Values; - } - - /// - /// Notifies the child change. - /// - /// The child object. - /// The old value. - /// The new value. - /// The property. - public void NotifyChildChange(T childObject, object oldVal, object newVal, [CallerMemberName] string prop = "") - { - if (newVal is Point np && oldVal is Point op) - { //s.u. - } - else - OnDataChanged?.Invoke(childObject, (prop, oldVal, newVal)); - } - - /// - /// Childs the place changed. - /// - /// The sender. - /// The e. - /// - private void ChildPlaceChanged(object? sender, (Point oP, Point nP) e) - { - if (sender is T tObj) - { - if (EqualityComparer.Default.Equals(this[e.oP], tObj)) - _pfData.Remove(e.oP); - if (this[e.nP] == null) - _pfData.Add(e.nP, tObj); - OnDataChanged?.Invoke(sender, ("Place", e.oP, e.nP)); - } - } -#endregion - } - - /// - /// Class Playfield2D. - /// Implements the - /// - /// - public class Playfield2D : Playfield2D { public Playfield2D(Size size) : base(size) { } } -} diff --git a/CSharpBible/Games/Snake_Base/Model/Snake.cs b/CSharpBible/Games/Snake_Base/Model/Snake.cs deleted file mode 100644 index 704790619..000000000 --- a/CSharpBible/Games/Snake_Base/Model/Snake.cs +++ /dev/null @@ -1,261 +0,0 @@ -// *********************************************************************** -// Assembly : Snake_Base -// Author : Mir -// Created : 08-25-2022 -// -// Last Modified By : Mir -// Last Modified On : 09-09-2022 -// *********************************************************************** -// -// Copyright (c) JC-Soft. All rights reserved. -// -// -// *********************************************************************** -using BaseLib.Model; -using BaseLib.Helper; -using BaseLib.Interfaces; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Runtime.CompilerServices; - -/// -/// The Model namespace. -/// -/// -namespace Snake_Base.Model -{ - /// - /// Class SnakeBodyPart. - /// Implements the - /// Implements the - /// - /// - /// - public class SnakeBodyPart : SnakeGameObject, IParentedObject - { - #region Properties - #region private Properties - /// - /// The sn parent - /// - /// - private Snake? _snParent; - #endregion - /// - /// Gets or sets the snake. - /// - /// The snake. - public Snake? Snake { get => _snParent; set => SetParent(value); } - /// - /// Sets the parent. - /// - /// The value. - /// The caller member. - public void SetParent(Snake? value, [CallerMemberName] string CallerMember = "") => value.SetProperty(ref _snParent, null, CallerMember); - - /// - /// Gets or sets the next part. - /// - /// The next part. - public SnakeBodyPart? NextPart { get; set; } = null; - - /// - /// Gets or sets the previous part. - /// - /// The next part. - public SnakeBodyPart? PrevPart { get; set; }= null; - #endregion - - #region Methods - /// - /// Initializes a new instance of the class. - /// - public SnakeBodyPart() : this(null) { } - - /// - /// Gets the parent. - /// - /// System.Nullable<Snake>. - /// - Snake? IParentedObject.GetParent() => _snParent; - /// - /// Initializes a new instance of the class. - /// - /// The snake. - public SnakeBodyPart(Snake? snake):base() - { - _snParent = snake; - } - - /// - /// Initializes a new instance of the class. - /// - /// The place. - /// The snake. - /// The playfield. - public SnakeBodyPart(Point place,Snake? snake, Playfield2D? playfield = null) :base(place,playfield) - { - _snParent = snake; - } - #endregion - } - - /// - /// Class SnakeHead. - /// Implements the - /// - /// - public class SnakeHead : SnakeBodyPart - { - /// - /// Initializes a new instance of the class. - /// - /// The snake. - public SnakeHead(Snake? snake = null) : base(snake) { } - /// - /// Initializes a new instance of the class. - /// - /// The place. - /// The snake. - /// The playfield. - public SnakeHead(Point place, Snake? snake, Playfield2D? playfield = null):base(place,snake,playfield) { } - } - - /// - /// Class SnakeTail. - /// Implements the - /// - /// - public class SnakeTail : SnakeBodyPart - { - /// - /// Initializes a new instance of the class. - /// - /// The snake. - public SnakeTail(Snake? snake = null) : base(snake) { } - /// - /// Initializes a new instance of the class. - /// - /// The place. - /// The snake. - /// The playfield. - public SnakeTail(Point place, Snake? snake, Playfield2D? playfield = null) : base(place, snake, playfield) { } - } - - /// - /// Class Snake. - /// - public class Snake : NotificationObjectAdv - { - #region Properties - #region private Properties - /// - /// The playfield - /// - /// - private Playfield2D? _playfield; - /// - /// The sn head - /// - /// - private SnakeHead _snHead; - /// - /// The sn body - /// - /// - private List _snBody = new List(); - /// - /// The sn tail - /// - /// - private SnakeTail _snTail; - /// - /// The sn length - /// - /// - private int _snLength; - #endregion - /// - /// The alive - /// - public bool alive; - - /// - /// Gets the length. - /// - /// The length. - public int Length { get => _snLength; private set => SetProperty(ref _snLength,value); } - /// - /// Gets the head position. - /// - /// The head position. - public Point HeadPos { get => _snHead.Place; } - - public event EventHandler OnSnakeEatsApple; - #endregion - - #region Methods - /// - /// Initializes a new instance of the class. - /// - /// The start. - /// The playfield. - public Snake(Point start, Playfield2D? playfield=null) { - playfield ??= SnakeGameObject.DefaultParent; - _playfield = playfield; - _snTail = new SnakeTail(start,this); - _snHead = new SnakeHead(start,this); - _snHead.NextPart = _snTail; - _snTail.PrevPart = _snHead; - Length = 2; // Head & Tail; - alive = true; - } - - /// - /// Snakes the move. - /// - /// The dir. - public void SnakeMove(Direction dir) - { - var nextPlace = Offsets.DirOffset(dir, _snHead.Place); - if (!_playfield?.Rect.Contains(nextPlace) ?? false) { alive = false;return; } - if (_playfield?[nextPlace] is SnakeBodyPart) { alive = false; return; } - if (_playfield?[nextPlace] is Apple) { - OnSnakeEatsApple?.Invoke(this, new EventArgs()); - _playfield[nextPlace] = null; - Length++; - } - SnakeBodyPart? _mRun = _snHead; - var _nxtPlace = nextPlace; - var bCount = 1; - while ((_mRun != null) && (_mRun.NextPart != _snTail)) - { - (_mRun.Place, _nxtPlace) = (_nxtPlace, _mRun.Place); - if (bCount==1) - RaisePropertyChangedAdv(_mRun.OldPlace, _mRun.Place, nameof(HeadPos)); - _mRun = _mRun.NextPart; - bCount++; - } - if (bCount++ < _snLength && _mRun != null) { - (_mRun.Place, _nxtPlace) = (_nxtPlace, _mRun.Place); - if (bCount == 2) - RaisePropertyChangedAdv(_mRun.OldPlace, _mRun.Place, nameof(HeadPos)); - var _snBody = new SnakeBodyPart(_nxtPlace,this,_playfield); - _snBody.ResetOldPlace(); - _snBody.NextPart = _mRun.NextPart; - _snBody.PrevPart = _mRun; - _mRun.NextPart!.PrevPart = _snBody; - _mRun.NextPart= _snBody; - } - else if (_mRun != null) - { - (_mRun.Place, _nxtPlace) = (_nxtPlace, _mRun.Place); - if (bCount == 2) - RaisePropertyChangedAdv(_mRun.OldPlace, _mRun.Place, nameof(HeadPos)); - _snTail.Place = _nxtPlace; - } - } - #endregion - } -} diff --git a/CSharpBible/Games/Snake_Base/Model/SnakeGameObject.cs b/CSharpBible/Games/Snake_Base/Model/SnakeGameObject.cs deleted file mode 100644 index b14417dd7..000000000 --- a/CSharpBible/Games/Snake_Base/Model/SnakeGameObject.cs +++ /dev/null @@ -1,180 +0,0 @@ -// *********************************************************************** -// Assembly : Snake_Base -// Author : Mir -// Created : 08-25-2022 -// -// Last Modified By : Mir -// Last Modified On : 09-09-2022 -// *********************************************************************** -// -// Copyright (c) JC-Soft. All rights reserved. -// -// -// *********************************************************************** -using BaseLib.Helper; -using BaseLib.Interfaces; -using System; -using System.Drawing; -using System.Runtime.CompilerServices; - -/// -/// The Model namespace. -/// -/// -namespace Snake_Base.Model -{ - /// - /// Class SnakeGameObject. - /// Implements the - /// Implements the - /// - /// - /// - public abstract class SnakeGameObject : IPlacedObject, IParentedObject> - { - #region Properties - #region private Properties - /// - /// The place - /// - /// - private Point _place=Point.Empty; - /// - /// The old place - /// - /// - private Point _oldPlace; - /// - /// The pf parent - /// - /// - private Playfield2D? _pfParent; - #endregion - #region static Properties - /// - /// Gets or sets the default parent. - /// - /// The default parent. - public static Playfield2D? DefaultParent { get; set; } = null; - #endregion - - /// - /// Occurs when [data change event]. - /// - public event EventHandler<(string sender, object? oldVal, object? newVal)>? DataChangeEvent; - /// - /// Occurs when [on place change]. - /// - public event EventHandler<(Point oP, Point nP)> OnPlaceChange; - - /// - /// Gets the old place. - /// - /// The old place. - public Point OldPlace { get => GetOldPlace(); } - #region interface Properties - /// - /// Gets or sets the place. - /// - /// The place. - public Point Place { get => GetPlace();set=> SetPlace(value); } - /// - /// Gets or sets the parent. - /// - /// The parent. - public Playfield2D? Parent { get => GetParent(); set => SetParent(value); } - #endregion - #endregion - - #region Methods - /// - /// Initializes a new instance of the class. - /// - public SnakeGameObject() : this(Point.Empty) { } - - /// - /// Initializes a new instance of the class. - /// - /// The place. - /// The parent. - public SnakeGameObject(Point place, Playfield2D? parent=null) { - Place= place; - if (parent!=null) - Parent = parent; - else if (DefaultParent!=null) - Parent= DefaultParent; - } - - #region interface Methods - /// - /// Gets the old place. - /// - /// Point. - public virtual Point GetOldPlace() => _oldPlace; - /// - /// Gets the place. - /// - /// Point. - public virtual Point GetPlace() => _place; - /// - /// Sets the place. - /// - /// The value. - /// The name. - public virtual void SetPlace(Point value, [CallerMemberName] string Name = "") => value.SetProperty(ref _place, NtfyPlaceChange, Name); - - /// - /// Gets the parent. - /// - /// System.Nullable<Playfield2D<SnakeGameObject>>. - public virtual Playfield2D? GetParent() => _pfParent; - /// - /// Sets the parent. - /// - /// The value. - /// The caller member. - public virtual void SetParent(Playfield2D? value, [CallerMemberName] string CallerMember = "") => - value.SetProperty(ref _pfParent, NtfyParentChange, CallerMember); - #endregion - - /// - /// Ntfies the parent change. - /// - /// The arg1. - /// The arg2. - /// The arg3. - /// - protected virtual void NtfyParentChange(string arg1, Playfield2D? arg2, Playfield2D? arg3) - { - if (arg2 is IHasChildren hc) - hc.RemoveItem(this); - if (arg3 is IHasChildren hc2) - hc2.AddItem(this); - if (arg3 is IHasChildren hc3) - hc3.AddItem(this); - DataChangeEvent?.Invoke(this, (arg1, arg2, arg3)); - } - - /// - /// Ntfies the place change. - /// - /// The arg1. - /// The arg2. - /// The arg3. - /// - protected virtual void NtfyPlaceChange(string arg1, Point arg2, Point arg3) - { - _oldPlace = arg2; - if (_pfParent is IHasChildren hc) - hc.NotifyChildChange(this, arg2, arg3); - OnPlaceChange?.Invoke(this, (arg2, arg3)); - DataChangeEvent?.Invoke(this, (arg1, arg2, arg3)); - } - - public void ResetOldPlace() - { - _oldPlace = _place; - } - #endregion - } -} diff --git a/CSharpBible/Games/Snake_Base/Snake_Base.csproj b/CSharpBible/Games/Snake_Base/Snake_Base.csproj index 50b421e08..6c1852d00 100644 --- a/CSharpBible/Games/Snake_Base/Snake_Base.csproj +++ b/CSharpBible/Games/Snake_Base/Snake_Base.csproj @@ -1,21 +1,23 @@  - Library - net481;net48;net472;net462 - - - - - - - - - - - - - - + Library + net481;net48;net472;net462 + + + + + + + + + + + + + + + + diff --git a/CSharpBible/Games/Snake_Base/Snake_Base_net.csproj b/CSharpBible/Games/Snake_Base/Snake_Base_net.csproj index 73a3152f3..7e46e07a3 100644 --- a/CSharpBible/Games/Snake_Base/Snake_Base_net.csproj +++ b/CSharpBible/Games/Snake_Base/Snake_Base_net.csproj @@ -2,7 +2,7 @@ Library - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 @@ -11,7 +11,12 @@ + + + + + diff --git a/CSharpBible/Games/Snake_Base/ViewModels/Game.cs b/CSharpBible/Games/Snake_Base/ViewModels/Game.cs deleted file mode 100644 index 5b9c00c17..000000000 --- a/CSharpBible/Games/Snake_Base/ViewModels/Game.cs +++ /dev/null @@ -1,218 +0,0 @@ -// *********************************************************************** -// Assembly : Snake_Base -// Author : Mir -// Created : 08-25-2022 -// -// Last Modified By : Mir -// Last Modified On : 09-09-2022 -// *********************************************************************** -// -// Copyright (c) JC-Soft. All rights reserved. -// -// -// *********************************************************************** -using Snake_Base.Model; -using System; -using System.Drawing; - -/// -/// The ViewModel namespace. -/// -/// -namespace Snake_Base.ViewModel -{ - /// - /// Class Game. - /// - public class Game - { - #region Properties - #region private Properties - /// - /// The random - /// - /// - private static Random? _rnd; - #endregion - /// - /// Gets or sets the playfield. - /// - /// The playfield. - public Playfield2D Playfield { get; set; } = new Playfield2D(); - /// - /// Gets or sets the snake. - /// - /// The snake. - public Snake Snake { get; set; } - /// - /// The get next random - /// - public Func GetNextRnd = (i) => (_rnd ??= new Random()).Next(i); - public int Level; - public Action? visUpdate; - public Action? visFullRedraw; - private Direction sDir; - private bool _userQuit = false; - private bool xHalfStep; - public static readonly object? MaxLives; - - /// - /// Gets the with the specified p. - /// - /// The p. - /// Tiles. - public Tiles this[Point p] => GetTile(p); - - /// - /// Gets a value indicating whether this instance is running. - /// - /// true if this instance is running; otherwise, false. - public bool IsRunning => Snake.alive && !_userQuit; - - public object? Score { get; set; } - public object? Lives { get; set; } - public Size size { get => new Size(Playfield.PfSize.Width+2,Playfield.PfSize.Height+2); } - #endregion - - #region Methods - /// - /// Initializes a new instance of the class. - /// - public Game() - { - _rnd = new Random(); - Playfield.PfSize = new Size(20, 20); - Playfield.OnDataChanged += PfDataChange; - SnakeGameObject.DefaultParent = Playfield; - Snake = new Snake(new Point(10,10)); - Snake.OnSnakeEatsApple += OnSnakeEatsApple; - } - - private void OnSnakeEatsApple(object? sender, EventArgs e) - { - NewApple(); - } - - private void NewApple() - { - // Getplace for apple - Point p; - // Get Random Startplace - var w = Playfield.PfSize.Width; - var sp = _rnd?.Next(Playfield.PfSize.Height * w)??0; - while (Playfield[p=new Point(sp % w,sp / w)]!=null) - sp++; - // - var a=new Apple(p, Playfield); - a.ResetOldPlace(); - } - - /// - /// Pfs the data change. - /// - /// The sender. - /// The e. - /// - /// - private void PfDataChange(object? sender, (string prop, object? oldVal, object? newVal) e) - { - // throw new NotImplementedException(); - } - - /// - /// Games the step. - /// - /// System.Int32. - public int GameStep() - { - xHalfStep = !xHalfStep; - if (xHalfStep) - { - foreach (var i in Playfield.Items) - i.ResetOldPlace(); - Snake.SnakeMove(sDir); - } - visUpdate?.Invoke(this, xHalfStep); - return 150; - } - - /// - /// Gets the tile. - /// - /// The p. - /// Tiles. - public Tiles GetTile(Point p) - { - Tiles result = Tiles.Empty; - var field = Playfield[p]; - switch(field) - { - case Apple: - result = Tiles.Apple; break; - case SnakeHead sh: - { - var np = Point.Subtract(sh.Place, (Size?)sh.NextPart?.Place??Size.Empty); - switch ((np.X, np.Y)) - { - case (1, 0): result = Tiles.SnakeHead_E; break; - case (-1, 0): result = Tiles.SnakeHead_W; break; - case (0, 1): result = Tiles.SnakeHead_S; break; - case (0, -1): result = Tiles.SnakeHead_N; break; - } - break; - } - case SnakeTail st: { - var np = Point.Subtract(st.Place, (Size?)st.PrevPart?.Place??Size.Empty); - switch ((np.X, np.Y)) - { - case (1, 0): result = Tiles.SnakeTail_W; break; - case (-1, 0): result = Tiles.SnakeTail_E; break; - case (0, 1): result = Tiles.SnakeTail_N; break; - case (0, -1): result = Tiles.SnakeTail_S; break; - } - break; } - case SnakeBodyPart sb: { - var nx = Point.Subtract(sb.Place, (Size?)sb.NextPart?.Place ?? Size.Empty); - var np = Point.Subtract(sb.Place, (Size?)sb.PrevPart?.Place ?? Size.Empty); - switch ((np.X+nx.X, np.Y+nx.Y)) - { - case (0, 0) when nx.Y==0: result = Tiles.SnakeBody_WE; break; - case (0, 0) when nx.X == 0: result = Tiles.SnakeBody_NS; break; - case (1, 1): result = Tiles.SnakeBody_NE; break; - case (-1, 1): result = Tiles.SnakeBody_NW; break; - case (-1, -1): result = Tiles.SnakeBody_SW; break; - case (1, -1): result = Tiles.SnakeBody_SE; break; - } - break; - } - default: - if (Playfield.IsInside(p)) - result = Tiles.Empty; - else - result = Tiles.Wall; - break; - } - return result; - } - - public Point OldPos(Point arg) - { - return Playfield[arg]?.OldPlace ?? arg; - } - - public void HandleUserAct(UserAction action) { - if (action <= UserAction.GoEast) - sDir = (Direction)action; - else if (action <= UserAction.Quit) - _userQuit = true; - } - - public void Setup(int v) - { - NewApple(); - //throw new NotImplementedException(); - } - - #endregion - } -} diff --git a/CSharpBible/Games/Snake_Base/ViewModels/Tiles.cs b/CSharpBible/Games/Snake_Base/ViewModels/Tiles.cs deleted file mode 100644 index 373f6a0db..000000000 --- a/CSharpBible/Games/Snake_Base/ViewModels/Tiles.cs +++ /dev/null @@ -1,95 +0,0 @@ -// *********************************************************************** -// Assembly : Snake_Base -// Author : Mir -// Created : 08-26-2022 -// -// Last Modified By : Mir -// Last Modified On : 09-09-2022 -// *********************************************************************** -// -// Copyright (c) JC-Soft. All rights reserved. -// -// -// *********************************************************************** -/// -/// The ViewModel namespace. -/// -/// -namespace Snake_Base.ViewModel -{ - /// - /// Enum Tiles - /// - public enum Tiles - { - /// - /// The empty field - /// - Empty, //0 - /// - /// The wall - /// - Wall, //1 - /// - /// The apple - /// - Apple, //2 - /// - /// The snake head north - /// - SnakeHead_N,//3 - /// - /// The snake tail north - /// - SnakeTail_N,//4 - /// - /// The snake body north-south - /// - SnakeBody_NS,//5 - /// - /// The snake head west - /// - SnakeHead_W, - /// - /// The snake head south - /// - SnakeHead_S, - /// - /// The snake head east - /// - SnakeHead_E, - /// - /// The snake tail west - /// - SnakeTail_W, - /// - /// The snake tail south - /// - SnakeTail_S, - /// - /// The snake tail east - /// - SnakeTail_E, - /// - /// The snake body north-west - /// - SnakeBody_NW, - /// - /// The snake body south-west - /// - SnakeBody_SW, - /// - /// The snake body south-east - /// - SnakeBody_SE, - /// - /// The snake body north-east - /// - SnakeBody_NE, - /// - /// The snake body west-east - /// - SnakeBody_WE, - }; - -} diff --git a/CSharpBible/Games/Snake_Base/ViewModels/UserAction.cs b/CSharpBible/Games/Snake_Base/ViewModels/UserAction.cs index 174b14b0f..c5a719f42 100644 --- a/CSharpBible/Games/Snake_Base/ViewModels/UserAction.cs +++ b/CSharpBible/Games/Snake_Base/ViewModels/UserAction.cs @@ -11,9 +11,9 @@ // // // *********************************************************************** -using Snake_Base.Model; +using Snake_Base.Models; -namespace Snake_Base.ViewModel +namespace Snake_Base.ViewModels { /// diff --git a/CSharpBible/Games/Snake_BaseTests/Model/AppleTests.cs b/CSharpBible/Games/Snake_BaseTests/Model/AppleTests.cs index 905a8cfa8..0e945893c 100644 --- a/CSharpBible/Games/Snake_BaseTests/Model/AppleTests.cs +++ b/CSharpBible/Games/Snake_BaseTests/Model/AppleTests.cs @@ -18,7 +18,7 @@ /// The Tests namespace. /// /// -namespace Snake_Base.Model.Tests +namespace Snake_Base.Models.Tests { /// /// Defines test class AppleTests. @@ -38,28 +38,28 @@ public class AppleTests /// The c exp result0 /// /// - private readonly string cExpResult0= "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\n"; + private readonly string cExpResult0= "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\n"; /// /// The c exp result1 /// /// - private readonly string cExpResult1= "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\n"; + private readonly string cExpResult1= "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\n"; /// /// The c exp result2 /// /// - private readonly string cExpResult2 = "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\n"; + private readonly string cExpResult2 = "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\n"; /// /// The c exp result4 /// /// - private readonly string cExpResult4 = "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\n"; + private readonly string cExpResult4 = "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\n"; /// /// The c exp result move /// /// - private readonly string cExpResultMove= "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\nDataChange: Snake_Base.Model.Apple\to:{X=1,Y=2}\tn:{X=2,Y=0}\tp:Place\r\n"; + private readonly string cExpResultMove= "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\nDataChange: Snake_Base.Models.Apple\to:{X=1,Y=2}\tn:{X=2,Y=0}\tp:Place\r\n"; #endregion /// diff --git a/CSharpBible/Games/Snake_BaseTests/Model/Playfield2DTests.cs b/CSharpBible/Games/Snake_BaseTests/Model/Playfield2DTests.cs index 6732f4ef4..411c6939d 100644 --- a/CSharpBible/Games/Snake_BaseTests/Model/Playfield2DTests.cs +++ b/CSharpBible/Games/Snake_BaseTests/Model/Playfield2DTests.cs @@ -22,7 +22,7 @@ /// The Tests namespace. /// /// -namespace Snake_Base.Model.Tests +namespace Snake_Base.Models.Tests { /// /// Defines test class Playfield2DTests. @@ -110,13 +110,13 @@ public void Playfield2DTest() [DataTestMethod()] [TestProperty("Author", "J.C.")] [TestCategory("AddData")] - [DataRow("Nothing", new int[] { 0, 0 }, "Snake_Base.Model.Tests.TestItem", new string[] { - "New Parent: TestItem(,{X=0,Y=0})\to:\tn:Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\tp:AddItemTest1\r\n" })] - [DataRow("Apple", new int[] { 0, 1 }, "Snake_Base.Model.Apple", new string[] { - "OnDataChanged: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\n", + [DataRow("Nothing", new int[] { 0, 0 }, "Snake_Base.Models.Tests.TestItem", new string[] { + "New Parent: TestItem(,{X=0,Y=0})\to:\tn:Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\tp:AddItemTest1\r\n" })] + [DataRow("Apple", new int[] { 0, 1 }, "Snake_Base.Models.Apple", new string[] { + "OnDataChanged: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\n", ""})] - [DataRow("Snake", new int[] { 1, 0 }, "Snake_Base.Model.SnakeBodyPart", new string[] { - "OnDataChanged: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\n", + [DataRow("Snake", new int[] { 1, 0 }, "Snake_Base.Models.SnakeBodyPart", new string[] { + "OnDataChanged: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\n", "" })] public void AddItemTest1(string sName,int[] p, string tind, string[] sExp) { @@ -136,12 +136,12 @@ public void AddItemTest1(string sName,int[] p, string tind, string[] sExp) [DataTestMethod()] [TestProperty("Author", "J.C.")] [TestCategory("AddData")] - [DataRow("Nothing", new int[] { 0, 0 }, "Snake_Base.Model.Tests.TestItem", new string[] { - "New Parent: TestItem(,{X=0,Y=0})\to:\tn:Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\tp:AddItemTest2\r\n" })] - [DataRow("Apple", new int[] { 0, 1 }, "Snake_Base.Model.Apple", new string[] { - "OnDataChanged: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\nOnDataChanged: Snake_Base.Model.Apple\to:{X=0,Y=0}\tn:{X=0,Y=1}\tp:Place\r\n" })] - [DataRow("Snake", new int[] { 1, 0 }, "Snake_Base.Model.SnakeBodyPart", new string[] { - "OnDataChanged: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\nOnDataChanged: Snake_Base.Model.SnakeBodyPart\to:{X=0,Y=0}\tn:{X=1,Y=0}\tp:Place\r\n" })] + [DataRow("Nothing", new int[] { 0, 0 }, "Snake_Base.Models.Tests.TestItem", new string[] { + "New Parent: TestItem(,{X=0,Y=0})\to:\tn:Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\tp:AddItemTest2\r\n" })] + [DataRow("Apple", new int[] { 0, 1 }, "Snake_Base.Models.Apple", new string[] { + "OnDataChanged: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\nOnDataChanged: Snake_Base.Models.Apple\to:{X=0,Y=0}\tn:{X=0,Y=1}\tp:Place\r\n" })] + [DataRow("Snake", new int[] { 1, 0 }, "Snake_Base.Models.SnakeBodyPart", new string[] { + "OnDataChanged: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\nOnDataChanged: Snake_Base.Models.SnakeBodyPart\to:{X=0,Y=0}\tn:{X=1,Y=0}\tp:Place\r\n" })] public void AddItemTest2(string sName, int[] p, string tind, string[] sExp) { Type? t = Assembly.GetAssembly(typeof(Playfield2D))?.GetType(tind); @@ -177,13 +177,13 @@ public void RemoveItemTest() [TestCategory("GetItem")] [DataRow("00-Nothing", new int[] { 0, 0 }, "" )] [DataRow("01- ", new int[] { 0, 1 }, "")] - [DataRow("02-Tail", new int[] { 0, 2 }, "Snake_Base.Model.SnakeTail")] + [DataRow("02-Tail", new int[] { 0, 2 }, "Snake_Base.Models.SnakeTail")] [DataRow("10- ", new int[] { 1, 0 }, "")] - [DataRow("11-Body", new int[] { 1, 1 }, "Snake_Base.Model.SnakeBodyPart")] - [DataRow("12-Body", new int[] { 1, 2 }, "Snake_Base.Model.SnakeBodyPart")] + [DataRow("11-Body", new int[] { 1, 1 }, "Snake_Base.Models.SnakeBodyPart")] + [DataRow("12-Body", new int[] { 1, 2 }, "Snake_Base.Models.SnakeBodyPart")] [DataRow("20-Apple4", new int[] { 2, 0 }, "")] - [DataRow("21-Head", new int[] { 2, 1 }, "Snake_Base.Model.SnakeHead")] - [DataRow("22-Apple", new int[] { 2, 2 }, "Snake_Base.Model.Apple")] + [DataRow("21-Head", new int[] { 2, 1 }, "Snake_Base.Models.SnakeHead")] + [DataRow("22-Apple", new int[] { 2, 2 }, "Snake_Base.Models.Apple")] [DataRow("30- ", new int[] { 3, 0 }, "")] [DataRow("31- ", new int[] { 3, 1 }, "")]//?? [DataRow("32- ", new int[] { 3, 2 }, "")]//?? diff --git a/CSharpBible/Games/Snake_BaseTests/Model/SnakeTests.cs b/CSharpBible/Games/Snake_BaseTests/Model/SnakeTests.cs index 9e8a4575b..14e9cf20b 100644 --- a/CSharpBible/Games/Snake_BaseTests/Model/SnakeTests.cs +++ b/CSharpBible/Games/Snake_BaseTests/Model/SnakeTests.cs @@ -20,7 +20,7 @@ /// The Tests namespace. /// /// -namespace Snake_Base.Model.Tests +namespace Snake_Base.Models.Tests { /// /// Defines test class SnakeTests. @@ -47,7 +47,7 @@ public class SnakeTests /// The c exp snake test /// /// - private readonly string cExpSnakeTest = "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeHead\tp:Items\r\n"; + private readonly string cExpSnakeTest = "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeHead\tp:Items\r\n"; #endregion #endregion #region Methods @@ -104,11 +104,11 @@ public void SnakeTest() [DataTestMethod()] [TestProperty("Author", "J.C.")] [TestCategory("Movement")] - [DataRow("1-E",new int[] { 2, 1 },new Direction[] {Direction.East }, 2,true,new int[] {3,1},new string[] { "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeHead\tp:Items\r\nDataChange: Snake_Base.Model.SnakeHead\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\n" })] - [DataRow("2-E", new int[] { 3, 1 }, new Direction[] { Direction.East }, 1, false, new int[] { 3, 1 }, new string[] { "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeHead\tp:Items\r\n" })] - [DataRow("3-2E", new int[] { 2, 1 }, new Direction[] { Direction.East, Direction.North }, 2, true, new int[] { 3, 0 }, new string[] { "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeHead\tp:Items\r\nDataChange: Snake_Base.Model.SnakeHead\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Model.SnakeHead\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Model.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\n" })] - [DataRow("4-2E+A", new int[] { 2, 1 ,3,1,3,0}, new Direction[] { Direction.East, Direction.North,Direction.West }, 4, true, new int[] { 2, 0 }, new string[] { "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeHead\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:Snake_Base.Model.Apple\tn:\tp:Items\r\nDataChange: Snake_Base.Model.SnakeHead\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:Snake_Base.Model.Apple\tn:\tp:Items\r\nDataChange: Snake_Base.Model.SnakeHead\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Model.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Model.SnakeHead\to:{X=3,Y=0}\tn:{X=2,Y=0}\tp:Place\r\nDataChange: Snake_Base.Model.SnakeBodyPart\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Model.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\n" })] - [DataRow("5-2E+A", new int[] { 2, 1, 3, 1, 3, 0 }, new Direction[] { Direction.East, Direction.North, Direction.West,Direction.South }, 4, false, new int[] { 2, 0 }, new string[] { "DataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeHead\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.Apple\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:Snake_Base.Model.Apple\tn:\tp:Items\r\nDataChange: Snake_Base.Model.SnakeHead\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:Snake_Base.Model.Apple\tn:\tp:Items\r\nDataChange: Snake_Base.Model.SnakeHead\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Model.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Model.SnakeHead\to:{X=3,Y=0}\tn:{X=2,Y=0}\tp:Place\r\nDataChange: Snake_Base.Model.SnakeBodyPart\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Model.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Model.Playfield2D`1[Snake_Base.Model.SnakeGameObject]\to:\tn:Snake_Base.Model.SnakeBodyPart\tp:Items\r\n" })] + [DataRow("1-E",new int[] { 2, 1 },new Direction[] {Direction.East }, 2,true,new int[] {3,1},new string[] { "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeHead\tp:Items\r\nDataChange: Snake_Base.Models.SnakeHead\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\n" })] + [DataRow("2-E", new int[] { 3, 1 }, new Direction[] { Direction.East }, 1, false, new int[] { 3, 1 }, new string[] { "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeHead\tp:Items\r\n" })] + [DataRow("3-2E", new int[] { 2, 1 }, new Direction[] { Direction.East, Direction.North }, 2, true, new int[] { 3, 0 }, new string[] { "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeHead\tp:Items\r\nDataChange: Snake_Base.Models.SnakeHead\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Models.SnakeHead\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Models.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\n" })] + [DataRow("4-2E+A", new int[] { 2, 1 ,3,1,3,0}, new Direction[] { Direction.East, Direction.North,Direction.West }, 4, true, new int[] { 2, 0 }, new string[] { "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeHead\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:Snake_Base.Models.Apple\tn:\tp:Items\r\nDataChange: Snake_Base.Models.SnakeHead\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:Snake_Base.Models.Apple\tn:\tp:Items\r\nDataChange: Snake_Base.Models.SnakeHead\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Models.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Models.SnakeHead\to:{X=3,Y=0}\tn:{X=2,Y=0}\tp:Place\r\nDataChange: Snake_Base.Models.SnakeBodyPart\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Models.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\n" })] + [DataRow("5-2E+A", new int[] { 2, 1, 3, 1, 3, 0 }, new Direction[] { Direction.East, Direction.North, Direction.West,Direction.South }, 4, false, new int[] { 2, 0 }, new string[] { "DataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeTail\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeHead\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.Apple\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:Snake_Base.Models.Apple\tn:\tp:Items\r\nDataChange: Snake_Base.Models.SnakeHead\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:Snake_Base.Models.Apple\tn:\tp:Items\r\nDataChange: Snake_Base.Models.SnakeHead\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Models.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\nDataChange: Snake_Base.Models.SnakeHead\to:{X=3,Y=0}\tn:{X=2,Y=0}\tp:Place\r\nDataChange: Snake_Base.Models.SnakeBodyPart\to:{X=3,Y=1}\tn:{X=3,Y=0}\tp:Place\r\nDataChange: Snake_Base.Models.SnakeBodyPart\to:{X=2,Y=1}\tn:{X=3,Y=1}\tp:Place\r\nDataChange: Snake_Base.Models.Playfield2D`1[Snake_Base.Models.SnakeGameObject]\to:\tn:Snake_Base.Models.SnakeBodyPart\tp:Items\r\n" })] public void SnakeMoveTest(string TestName, int[] start,Direction[] dir,int iExpCount,bool xExpAlive ,int[] expPos, string[] sExpSnakeTest) { var testSnake = new Snake(new Point(start[0], start[1])); diff --git a/CSharpBible/Games/Snake_BaseTests/Snake_Base_netTests.csproj b/CSharpBible/Games/Snake_BaseTests/Snake_Base_netTests.csproj index 14dd3bd5a..f735a6112 100644 --- a/CSharpBible/Games/Snake_BaseTests/Snake_Base_netTests.csproj +++ b/CSharpBible/Games/Snake_BaseTests/Snake_Base_netTests.csproj @@ -15,7 +15,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Games/Snake_Console/Program.cs b/CSharpBible/Games/Snake_Console/Program.cs index 529d215c3..877419a57 100644 --- a/CSharpBible/Games/Snake_Console/Program.cs +++ b/CSharpBible/Games/Snake_Console/Program.cs @@ -1,30 +1,63 @@ -using Snake_Base.ViewModel; +using ConsoleDisplay.View; +using Microsoft.Extensions.DependencyInjection; +using Snake_Base.Models; +using Snake_Base.Models.Data; +using Snake_Base.Models.Interfaces; +using Snake_Base.ViewModels; +using BaseLib.Interfaces; +using BaseLib.Helper; using Snake_Console.View; +using System; using System.Threading; namespace Snake_Console { public static class Program { - private static Game _game; + private static ISnakeGame _game; private static UserAction action; private static int iDelay; + private static IVisual _visual; - static Program() + private static void OnStartUp() { - _game = new Game(); - Visual.SetGame(_game); + var sc = new ServiceCollection() + .AddTransient() + .AddTransient() + .AddSingleton() + .AddSingleton() + .AddSingleton, TileDisplay>() + .AddSingleton(); + var sp = sc.BuildServiceProvider(); + + IoC.Configure(sp); } + public static void Main(string[] args) { - _game.Setup(1); - Visual.FullRedraw(); - while (_game.IsRunning) { + Init(args); + Run(); + } + + private static void Run() + { + while (_game.IsRunning) + { iDelay = _game.GameStep(); - Thread.Sleep(iDelay); - Visual.CheckUserAction(out action); - _game.HandleUserAct(action); + Thread.Sleep(iDelay); + _visual.CheckUserAction(); } - } + } + + private static void Init(string[] args) + { + OnStartUp(); + + _game = IoC.GetRequiredService(); + _game.Setup(1); + + _visual = IoC.GetRequiredService(); + _visual.FullRedraw(); + } } } diff --git a/CSharpBible/Games/Snake_Console/Snake_Console.csproj b/CSharpBible/Games/Snake_Console/Snake_Console.csproj index 0b99a3c85..5893b5e57 100644 --- a/CSharpBible/Games/Snake_Console/Snake_Console.csproj +++ b/CSharpBible/Games/Snake_Console/Snake_Console.csproj @@ -1,5 +1,5 @@ - + Exe net481;net48;net472;net462 @@ -8,7 +8,11 @@ + - + + + + diff --git a/CSharpBible/Games/Snake_Console/Snake_Console_net.csproj b/CSharpBible/Games/Snake_Console/Snake_Console_net.csproj index 9d225a4ec..f953daa23 100644 --- a/CSharpBible/Games/Snake_Console/Snake_Console_net.csproj +++ b/CSharpBible/Games/Snake_Console/Snake_Console_net.csproj @@ -2,7 +2,7 @@ Exe - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 @@ -10,5 +10,8 @@ - + + + + diff --git a/CSharpBible/Games/Snake_Console/View/Visual.cs b/CSharpBible/Games/Snake_Console/View/Visual.cs index c4575958b..7259174ed 100644 --- a/CSharpBible/Games/Snake_Console/View/Visual.cs +++ b/CSharpBible/Games/Snake_Console/View/Visual.cs @@ -15,27 +15,28 @@ using System; using System.Collections.Generic; using System.Drawing; -using Snake_Base.ViewModel; +using Snake_Base.ViewModels; +using System.ComponentModel; namespace Snake_Console.View { /// /// Class Visual. /// - public static class Visual { + public class Visual : IVisual { #region Properties /// The game /// - private static Game? _game; + private ISnakeViewModel? _game; /// /// My console /// - public static MyConsoleBase myConsole; + public IConsole myConsole; - private static TileDisplay _tileDisplay; + private ITileDisplay _tileDisplay; /// /// The key action /// @@ -54,24 +55,33 @@ public static class Visual { #endregion #region Methods - static Visual() { - myConsole = new MyConsole(); - TileDisplay.myConsole = myConsole; - } - /// - /// Sets the game. - /// - /// The g. - public static void SetGame(Game g) - { - _game = g; - _tileDisplay = new TileDisplay(new Point(1, 1), g.size, new TileDef()); - _tileDisplay.DispOffset = new Point(-1, -1); - _tileDisplay.FncGetTile = (p)=>(Enum)_game.GetTile(p); - _tileDisplay.FncOldPos = _game.OldPos; - g.visUpdate += G_visUpdate; - g.visFullRedraw += FullRedraw; + public Visual(ISnakeViewModel viewModel, ITileDisplay tileDisplay) + { + myConsole = tileDisplay.console; + _tileDisplay = tileDisplay; + + _tileDisplay.DispOffset = new Point(-1, -1); + _tileDisplay.FncGetTile = (p) => (Enum)_game.Tiles[(Point)p]; + _tileDisplay.FncOldPos = _game.GetOldPos; + + _game = viewModel; + _game.PropertyChanged += OnPropertyChanged; FullRedraw(); + } + + private void OnPropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (e.PropertyName == nameof(_game.Tiles)) + { + _tileDisplay.Update(_game.HalfStep); + + ShowStatistics(); + } + else if (e.PropertyName == nameof(_game.Level)) + { + FullRedraw(); + } + } @@ -82,9 +92,6 @@ public static void SetGame(Game g) /// if set to true [e]. private static void G_visUpdate(object? sender, bool e) { - _tileDisplay.Update(e); - - ShowStatistics(); } /// @@ -92,7 +99,7 @@ private static void G_visUpdate(object? sender, bool e) /// /// The sender. /// The instance containing the event data. - public static void FullRedraw(object? sender=null,EventArgs? e=null) + public void FullRedraw(object? sender=null,EventArgs? e=null) { // basic Checks if (_game == null) return; @@ -105,13 +112,13 @@ public static void FullRedraw(object? sender=null,EventArgs? e=null) /// /// Shows the statistics. /// - private static void ShowStatistics() + private void ShowStatistics() { if (_game == null) return; myConsole.SetCursorPosition(0, 24); myConsole.BackgroundColor = ConsoleColor.Black; myConsole.ForegroundColor = ConsoleColor.Yellow; - myConsole.Write($"\t{_game.Level + 1}\t\t{_game.Score}\t\t{_game.Lives}/{Game.MaxLives}\t\x08"); + myConsole.Write($"\t{_game.Level + 1}\t\t{_game.Score}\t\t{_game.Lives}/{_game.MaxLives}\t\x08"); } @@ -119,7 +126,7 @@ private static void ShowStatistics() /// Sounds the specified gs. /// /// The gs. - public static void Sound(GameSound gs) + public void Sound(GameSound gs) { switch (gs) { @@ -141,10 +148,10 @@ public static void Sound(GameSound gs) /// /// The action. /// true if XXXX, false otherwise. - public static bool CheckUserAction(out UserAction action) + public bool CheckUserAction() { bool result = false; - action = UserAction.Nop; + var action = UserAction.Nop; if (myConsole.KeyAvailable) { var ch = myConsole.ReadKey()?.KeyChar ?? '\x00'; @@ -156,7 +163,9 @@ public static bool CheckUserAction(out UserAction action) result = true; } } - return result; + if (_game != null) + _game.UserAction = action; + return result; } #endregion diff --git a/CSharpBible/Games/Sokoban_Base/Sokoban_Base.csproj b/CSharpBible/Games/Sokoban_Base/Sokoban_Base.csproj index 267210d2b..2c904a778 100644 --- a/CSharpBible/Games/Sokoban_Base/Sokoban_Base.csproj +++ b/CSharpBible/Games/Sokoban_Base/Sokoban_Base.csproj @@ -2,7 +2,7 @@ Library - net462;net472;net48;net481;net6.0;net7.0;net8.0 + net462;net472;net48;net481;net6.0;net7.0;net8.0;net9.0 diff --git a/CSharpBible/Games/Sokoban_BaseTests/Sokoban_BaseTests.csproj b/CSharpBible/Games/Sokoban_BaseTests/Sokoban_BaseTests.csproj index f41d92d6b..13e6c678f 100644 --- a/CSharpBible/Games/Sokoban_BaseTests/Sokoban_BaseTests.csproj +++ b/CSharpBible/Games/Sokoban_BaseTests/Sokoban_BaseTests.csproj @@ -17,7 +17,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Games/Sudoku_BaseTests/Sudoku_BaseTests.csproj b/CSharpBible/Games/Sudoku_BaseTests/Sudoku_BaseTests.csproj index e6eb1452f..da91c88bf 100644 --- a/CSharpBible/Games/Sudoku_BaseTests/Sudoku_BaseTests.csproj +++ b/CSharpBible/Games/Sudoku_BaseTests/Sudoku_BaseTests.csproj @@ -10,7 +10,10 @@ - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/CSharpBible/Games/Tetris_Base/Tetris_Base.csproj b/CSharpBible/Games/Tetris_Base/Tetris_Base.csproj index 8fb3a98a3..7605c5519 100644 --- a/CSharpBible/Games/Tetris_Base/Tetris_Base.csproj +++ b/CSharpBible/Games/Tetris_Base/Tetris_Base.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 Exe diff --git a/CSharpBible/Games/Tetris_BaseTests/Tetris_BaseTests.csproj b/CSharpBible/Games/Tetris_BaseTests/Tetris_BaseTests.csproj index 8f2cca4bd..4e0388afa 100644 --- a/CSharpBible/Games/Tetris_BaseTests/Tetris_BaseTests.csproj +++ b/CSharpBible/Games/Tetris_BaseTests/Tetris_BaseTests.csproj @@ -1,7 +1,7 @@  - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows enable true false @@ -16,9 +16,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Base.csproj b/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Base.csproj index 94d5dd6b0..2ffe1b7dd 100644 --- a/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Base.csproj +++ b/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Base.csproj @@ -1,7 +1,7 @@ - net462;net472;net48;net481;net6.0;net7.0;net8.0 + net462;net472;net48;net481;net6.0;net7.0;net8.0;net9.0 Library diff --git a/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Console.csproj b/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Console.csproj index 5b43867cb..5371ab65b 100644 --- a/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Console.csproj +++ b/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Console.csproj @@ -1,7 +1,7 @@  - net462;net472;net48;net481;net6.0;net7.0;net8.0 + net462;net472;net48;net481;net6.0;net7.0;net8.0;net9.0 Exe diff --git a/CSharpBible/Games/Werner_Flaschbier_BaseTests/View/VisualTests.cs b/CSharpBible/Games/Werner_Flaschbier_BaseTests/View/VisualTests.cs index 5b2f5011b..73d17a654 100644 --- a/CSharpBible/Games/Werner_Flaschbier_BaseTests/View/VisualTests.cs +++ b/CSharpBible/Games/Werner_Flaschbier_BaseTests/View/VisualTests.cs @@ -1,7 +1,11 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using System.ComponentModel; using System.Threading; using TestConsole; -using Werner_Flaschbier_Base.ViewModel; +using Werner_Flaschbier_Base.Model; +using Werner_Flaschbier_Base.ViewModels; +using static BaseLib.Helper.TestHelper; namespace Werner_Flaschbier_Base.View.Tests { @@ -72,6 +76,8 @@ public class VisualTests \c0E\t2\t\t0\t\t10/10\t\t99\t\c00"; TstConsole? _testConsole; + private IWernerViewModel _model; + private Visual testClass; /// /// Initializes this instance. @@ -80,7 +86,8 @@ public class VisualTests public void Init() { _testConsole ??= new TstConsole(); - Visual.myConsole = _testConsole; + _model = Substitute.For(); + testClass = new Visual(_model,_testConsole); } /// @@ -92,7 +99,7 @@ public void WriteTileTest() _testConsole!.Clear(); foreach (Tiles tile in typeof(Tiles).GetEnumValues()) { - Visual.WriteTile(new System.Drawing.PointF((((int)tile) % 8) * 1.5f, (((int)tile) % 2) * 0.5f + (((int)tile) / 8)), tile); + testClass.WriteTile(new System.Drawing.PointF((((int)tile) % 8) * 1.5f, (((int)tile) % 2) * 0.5f + (((int)tile) / 8)), tile); Thread.Sleep(0); } Assert.AreEqual(cExpWriteTile, _testConsole.Content); @@ -106,14 +113,23 @@ public void WriteTileTest() public void FullRedrawTest() { _testConsole!.Clear(); - Game g; - Visual.SetGame(g=new Game()); + WernerGame g = new(); + IWernerViewModel.ITileProxy tp; + _model.Tiles.Returns(tp = Substitute.For()); + _model.size.Returns(g.size); + _model.Level.Returns((p)=>g.Level); + _model.Score.Returns(g.Score); + _model.Lives.Returns(g.Lives); + _model.MaxLives.Returns(g.MaxLives); + _model.TimeLeft.Returns(g.TimeLeft); + tp[Arg.Any()].Returns((p) => g.GetTile((System.Drawing.Point)p[0])); + _model.PropertyChanged += Raise.Event(_model,new PropertyChangedEventArgs(nameof(_model.Level))); Thread.Sleep(500); - Assert.AreEqual(cExpFullRedraw1, _testConsole.Content); + AssertAreEqual(cExpFullRedraw1, _testConsole.Content); g.Setup(1); - Visual.FullRedraw(); + testClass.FullRedraw(); Thread.Sleep(500); - Assert.AreEqual(cExpFullRedraw2, _testConsole.Content); + AssertAreEqual(cExpFullRedraw2, _testConsole.Content); } } } \ No newline at end of file diff --git a/CSharpBible/Games/Werner_Flaschbier_BaseTests/Werner_Flaschbier_BaseTests.csproj b/CSharpBible/Games/Werner_Flaschbier_BaseTests/Werner_Flaschbier_BaseTests.csproj deleted file mode 100644 index be1f2c1e7..000000000 --- a/CSharpBible/Games/Werner_Flaschbier_BaseTests/Werner_Flaschbier_BaseTests.csproj +++ /dev/null @@ -1,31 +0,0 @@ - - - - net6.0-windows - disable - enable - ..\..\..\obj.net\$(MSBuildProjectName)\ - ..\..\..\obj.net\$(MSBuildProjectName)\ - ..\..\..\bin\$(MSBuildProjectName) - - false - - - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - diff --git a/CSharpBible/Graphics/CanvasWPF2_CTItemTemplateSelector/ViewModels/MainWindowViewmodel.cs b/CSharpBible/Graphics/CanvasWPF2_CTItemTemplateSelector/ViewModels/MainWindowViewmodel.cs index e5d01be7b..d2e45af7d 100644 --- a/CSharpBible/Graphics/CanvasWPF2_CTItemTemplateSelector/ViewModels/MainWindowViewmodel.cs +++ b/CSharpBible/Graphics/CanvasWPF2_CTItemTemplateSelector/ViewModels/MainWindowViewmodel.cs @@ -9,6 +9,7 @@ using BaseLib.Helper.MVVM; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; +using BaseLib.Interfaces; namespace CanvasWPF2_CTItemTemplateSelector.ViewModel { diff --git a/CSharpBible/Graphics/MVVM_Converter_DrawGrid/Properties/Resources.resx b/CSharpBible/Graphics/MVVM_Converter_DrawGrid/Properties/Resources.resx index ce04866e5..c08d1af51 100644 --- a/CSharpBible/Graphics/MVVM_Converter_DrawGrid/Properties/Resources.resx +++ b/CSharpBible/Graphics/MVVM_Converter_DrawGrid/Properties/Resources.resx @@ -125,7 +125,7 @@ ..\Views\PlotFrame.xaml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - ..\ViewModel\PlotFrameViewModel.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\ViewModels\PlotFrameViewModel.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 MVVM Graphics: Draw-grid diff --git a/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandlingTests.csproj b/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandlingTests.csproj index 576dc396d..3bf33adce 100644 --- a/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandlingTests.csproj +++ b/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandlingTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandling_netTests.csproj b/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandling_netTests.csproj index addfe93f0..0d639b7bf 100644 --- a/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandling_netTests.csproj +++ b/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandling_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Graphics/PermutationTests/PermutationTests.csproj b/CSharpBible/Graphics/PermutationTests/PermutationTests.csproj index 541833fd3..71a6e220d 100644 --- a/CSharpBible/Graphics/PermutationTests/PermutationTests.csproj +++ b/CSharpBible/Graphics/PermutationTests/PermutationTests.csproj @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Libraries/BaseLibTests/BaseLibTests.csproj b/CSharpBible/Libraries/BaseLibTests/BaseLibTests.csproj index 478ee54c3..3d181cde3 100644 --- a/CSharpBible/Libraries/BaseLibTests/BaseLibTests.csproj +++ b/CSharpBible/Libraries/BaseLibTests/BaseLibTests.csproj @@ -8,9 +8,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Libraries/BaseLibTests/BaseLib_netTests.csproj b/CSharpBible/Libraries/BaseLibTests/BaseLib_netTests.csproj index 824128ab2..5786b198d 100644 --- a/CSharpBible/Libraries/BaseLibTests/BaseLib_netTests.csproj +++ b/CSharpBible/Libraries/BaseLibTests/BaseLib_netTests.csproj @@ -1,7 +1,7 @@  - net6.0;net7.0;net8.0;net481-windows;net48-windows;net472-windows;net462-windows + net6.0;net7.0;net8.0;net9.0;net481-windows;net48-windows;net472-windows;net462-windows false @@ -12,9 +12,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Libraries/CommonDialogs/ColorDialog.cs b/CSharpBible/Libraries/CommonDialogs/ColorDialog.cs index f76badf05..6cd7e8e85 100644 --- a/CSharpBible/Libraries/CommonDialogs/ColorDialog.cs +++ b/CSharpBible/Libraries/CommonDialogs/ColorDialog.cs @@ -59,6 +59,7 @@ public ColorDialog() /// Ruft die von den Benutzern ausgewählte Farbe ab oder legt diese fest. /// /// The color. + [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] public Color Color { get => _cd.Color; set => _cd.Color = value; } diff --git a/CSharpBible/Libraries/CommonDialogs/FolderBrowserDialog.cs b/CSharpBible/Libraries/CommonDialogs/FolderBrowserDialog.cs index 56a5963c4..c46c1a3dd 100644 --- a/CSharpBible/Libraries/CommonDialogs/FolderBrowserDialog.cs +++ b/CSharpBible/Libraries/CommonDialogs/FolderBrowserDialog.cs @@ -18,98 +18,103 @@ namespace CommonDialogs; - // System.Windows.Forms.FolderBrowserDialog +// System.Windows.Forms.FolderBrowserDialog - /// - /// Fordert den Benutzer auf, einen Ordner auszuwählen. Diese Klasse kann nicht vererbt werden. - /// - [DefaultEvent("HelpRequest")] +/// +/// Fordert den Benutzer auf, einen Ordner auszuwählen. Diese Klasse kann nicht vererbt werden. +/// +[DefaultEvent("HelpRequest")] [DefaultProperty("SelectedPath")] public class FolderBrowserDialog : Component, IFileDialog { - /// - /// The FBD - /// - private readonly System.Windows.Forms.FolderBrowserDialog _fbd =new System.Windows.Forms.FolderBrowserDialog(); - - /// - /// Gets or sets a value indicating whether [show new folder button]. - /// - /// true if [show new folder button]; otherwise, false. - public bool ShowNewFolderButton { get => _fbd.ShowNewFolderButton; set => _fbd.ShowNewFolderButton = value; } - - /// - /// Ruft den von den Benutzern ausgewählten Pfad ab oder legt diesen fest. - /// - /// The selected path. - public string SelectedPath { get => _fbd.SelectedPath; set => _fbd.SelectedPath = value; } - - public string FileName { get => _fbd.SelectedPath; set => _fbd.SelectedPath =value; } - - /// - /// Ruft den Stammordner ab, von dem aus eine Suche gestartet wird, oder legt diesen fest. - /// - /// The root folder. - /// Der zugewiesene Wert ist keiner der -Werte. - public Environment.SpecialFolder RootFolder { get => _fbd.RootFolder; set => _fbd.RootFolder = value; } - - /// - /// Ruft den beschreibenden Text ab, der im Dialogfeld über dem Strukturansichts-Steuerelement angezeigt wird, oder legt diesen fest. - /// - /// The description. - public string Description { get => _fbd.Description; set => _fbd.Description = value; } - - /// - /// Tritt ein, wenn der Benutzer im Dialogfeld auf die Schaltfläche Hilfe klickt. - /// - [Browsable(false)] - [EditorBrowsable(EditorBrowsableState.Never)] - public event EventHandler HelpRequest { add => _fbd.HelpRequest += value; remove => _fbd.HelpRequest -= value; } - - - - /// - /// Initialisiert eine neue Instanz der -Klasse. - /// - public FolderBrowserDialog() - { - Reset(); - } - - /// - /// Setzt Eigenschaften auf die Standardwerte zurück. - /// - public void Reset() - { - _fbd.Reset(); - } - /// - /// Ruft ein Objekt ab, das Daten bezüglich des Steuerelements enthält, oder legt dieses Objekt fest. - /// - /// The tag. - [Localizable(false)] - [Bindable(true)] - [DefaultValue(null)] - [TypeConverter(typeof(StringConverter))] - public object? Tag { get => _fbd.Tag; set => _fbd.Tag = value; } - - /// - /// Führt ein Standarddialogfeld mit einem Standardbesitzer aus. - /// - /// , wenn der Benutzer im Dialogfeld auf OK klickt, andernfalls . - public bool? ShowDialog() - { - return _fbd.ShowDialog()==DialogResult.OK; - } - - /// - /// Führt ein Standarddialogfeld mit dem angegebenen Besitzer aus. - /// - /// Ein beliebiges Objekt, das implementiert, das das Fenster der obersten Ebene und damit den Besitzer des modalen Dialogfelds darstellt. - /// , wenn der Benutzer im Dialogfeld auf OK klickt, andernfalls . - public bool? ShowDialog(object owner) - { - return _fbd.ShowDialog((IWin32Window)owner) == DialogResult.OK; - } + /// + /// The FBD + /// + private readonly System.Windows.Forms.FolderBrowserDialog _fbd = new System.Windows.Forms.FolderBrowserDialog(); + + /// + /// Gets or sets a value indicating whether [show new folder button]. + /// + /// true if [show new folder button]; otherwise, false. + [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] + public bool ShowNewFolderButton { get => _fbd.ShowNewFolderButton; set => _fbd.ShowNewFolderButton = value; } + + /// + /// Ruft den von den Benutzern ausgewählten Pfad ab oder legt diesen fest. + /// + /// The selected path. + [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] + public string SelectedPath { get => _fbd.SelectedPath; set => _fbd.SelectedPath = value; } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] + public string FileName { get => _fbd.SelectedPath; set => _fbd.SelectedPath = value; } + + /// + /// Ruft den Stammordner ab, von dem aus eine Suche gestartet wird, oder legt diesen fest. + /// + /// The root folder. + /// Der zugewiesene Wert ist keiner der -Werte. + [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] + public Environment.SpecialFolder RootFolder { get => _fbd.RootFolder; set => _fbd.RootFolder = value; } + + /// + /// Ruft den beschreibenden Text ab, der im Dialogfeld über dem Strukturansichts-Steuerelement angezeigt wird, oder legt diesen fest. + /// + /// The description. + [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] + public string Description { get => _fbd.Description; set => _fbd.Description = value; } + + /// + /// Tritt ein, wenn der Benutzer im Dialogfeld auf die Schaltfläche Hilfe klickt. + /// + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public event EventHandler HelpRequest { add => _fbd.HelpRequest += value; remove => _fbd.HelpRequest -= value; } + + + + /// + /// Initialisiert eine neue Instanz der -Klasse. + /// + public FolderBrowserDialog() + { + Reset(); + } + + /// + /// Setzt Eigenschaften auf die Standardwerte zurück. + /// + public void Reset() + { + _fbd.Reset(); + } + /// + /// Ruft ein Objekt ab, das Daten bezüglich des Steuerelements enthält, oder legt dieses Objekt fest. + /// + /// The tag. + [Localizable(false)] + [Bindable(true)] + [DefaultValue(null)] + [TypeConverter(typeof(StringConverter))] + public object? Tag { get => _fbd.Tag; set => _fbd.Tag = value; } + + /// + /// Führt ein Standarddialogfeld mit einem Standardbesitzer aus. + /// + /// , wenn der Benutzer im Dialogfeld auf OK klickt, andernfalls . + public bool? ShowDialog() + { + return _fbd.ShowDialog() == DialogResult.OK; + } + + /// + /// Führt ein Standarddialogfeld mit dem angegebenen Besitzer aus. + /// + /// Ein beliebiges Objekt, das implementiert, das das Fenster der obersten Ebene und damit den Besitzer des modalen Dialogfelds darstellt. + /// , wenn der Benutzer im Dialogfeld auf OK klickt, andernfalls . + public bool? ShowDialog(object owner) + { + return _fbd.ShowDialog((IWin32Window)owner) == DialogResult.OK; + } } diff --git a/CSharpBible/Libraries/CommonDialogs/FontDialog.cs b/CSharpBible/Libraries/CommonDialogs/FontDialog.cs index 30fc3d71b..19f794087 100644 --- a/CSharpBible/Libraries/CommonDialogs/FontDialog.cs +++ b/CSharpBible/Libraries/CommonDialogs/FontDialog.cs @@ -13,6 +13,7 @@ // *********************************************************************** using CommonDialogs.Interfaces; using System.Windows.Forms; +using System.ComponentModel; namespace CommonDialogs; @@ -23,6 +24,7 @@ namespace CommonDialogs; /// public class FontDialog : System.Windows.Forms.FontDialog, IFontDialog { + [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] public new System.Drawing.Font Font { get => base.Font;set => base.Font = value; } /// diff --git a/CSharpBible/Libraries/MVVM_BaseLib/Helper/MVVM/CRandom.cs b/CSharpBible/Libraries/MVVM_BaseLib/Helper/MVVM/CRandom.cs deleted file mode 100644 index b3e783745..000000000 --- a/CSharpBible/Libraries/MVVM_BaseLib/Helper/MVVM/CRandom.cs +++ /dev/null @@ -1,22 +0,0 @@ -using BaseLib.Interfaces; -using System; - -namespace BaseLib.Helper.MVVM; - -public class CRandom :IRandom -{ - private Random _random; - - public CRandom() - { - _random = new Random(); - } - - public int Next(int v1, int v2) => v2 !=-1 || v1 _random.NextDouble(); - - public int NextInt() => _random.Next(); - - public void Seed(int value) => _random = new Random(value); -} diff --git a/CSharpBible/Libraries/MVVM_BaseLibTests/Helper/MVVM/CRandomTests.cs b/CSharpBible/Libraries/MVVM_BaseLibTests/Helper/MVVM/CRandomTests.cs index 46cecc7c7..e8a7e7220 100644 --- a/CSharpBible/Libraries/MVVM_BaseLibTests/Helper/MVVM/CRandomTests.cs +++ b/CSharpBible/Libraries/MVVM_BaseLibTests/Helper/MVVM/CRandomTests.cs @@ -1,5 +1,6 @@ using BaseLib.Interfaces; using Microsoft.VisualStudio.TestTools.UnitTesting; +using MVVM_BaseLib.Helper; using static BaseLib.Helper.TestHelper; namespace BaseLib.Helper.MVVM.Tests; diff --git a/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests.csproj b/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests.csproj index a1dc50214..f5006a325 100644 --- a/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests.csproj +++ b/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests.csproj @@ -14,7 +14,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests_net.csproj b/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests_net.csproj index 486c13e67..6c9c9fedb 100644 --- a/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests_net.csproj +++ b/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests_net.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Libraries/MathLibraryTests/MathLibraryTests.csproj b/CSharpBible/Libraries/MathLibraryTests/MathLibraryTests.csproj index baa83a243..c843afea8 100644 --- a/CSharpBible/Libraries/MathLibraryTests/MathLibraryTests.csproj +++ b/CSharpBible/Libraries/MathLibraryTests/MathLibraryTests.csproj @@ -10,9 +10,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Libraries/MathLibraryTests/MathLibrary_netTests.csproj b/CSharpBible/Libraries/MathLibraryTests/MathLibrary_netTests.csproj index f322e8220..df01d676a 100644 --- a/CSharpBible/Libraries/MathLibraryTests/MathLibrary_netTests.csproj +++ b/CSharpBible/Libraries/MathLibraryTests/MathLibrary_netTests.csproj @@ -10,9 +10,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/DemoLibraryTests/DemoLibraryTests.csproj b/CSharpBible/MVVM_Tutorial/DemoLibraryTests/DemoLibraryTests.csproj index 5da94c164..cf6911306 100644 --- a/CSharpBible/MVVM_Tutorial/DemoLibraryTests/DemoLibraryTests.csproj +++ b/CSharpBible/MVVM_Tutorial/DemoLibraryTests/DemoLibraryTests.csproj @@ -2,7 +2,7 @@ Library - net6.0;net7.0;net8.0;net481;net48;net472;net462 + net6.0;net7.0;net8.0;net9.0;net481;net48;net472;net462 false @@ -15,9 +15,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/ItemsControlTut3_netTests/ItemsControlTut3_netTests.csproj b/CSharpBible/MVVM_Tutorial/ItemsControlTut3_netTests/ItemsControlTut3_netTests.csproj index 8fd1e7503..b38b5d817 100644 --- a/CSharpBible/MVVM_Tutorial/ItemsControlTut3_netTests/ItemsControlTut3_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/ItemsControlTut3_netTests/ItemsControlTut3_netTests.csproj @@ -2,7 +2,7 @@ - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows false @@ -16,9 +16,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/ItemsControlTut4_netTests/ItemsControlTut4_netTests.csproj b/CSharpBible/MVVM_Tutorial/ItemsControlTut4_netTests/ItemsControlTut4_netTests.csproj index 76c76a70b..611a8b639 100644 --- a/CSharpBible/MVVM_Tutorial/ItemsControlTut4_netTests/ItemsControlTut4_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/ItemsControlTut4_netTests/ItemsControlTut4_netTests.csproj @@ -1,7 +1,7 @@  - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows false @@ -15,9 +15,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBindingTests.csproj b/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBindingTests.csproj index 1687afc86..bb4a6a656 100644 --- a/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBindingTests.csproj +++ b/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBindingTests.csproj @@ -27,9 +27,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBinding_netTests.csproj b/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBinding_netTests.csproj index 1db71ee52..790ee6297 100644 --- a/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBinding_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBinding_netTests.csproj @@ -1,7 +1,7 @@ - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows true @@ -19,9 +19,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplateTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplateTests.csproj index c43e1fd81..73d86d771 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplateTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplateTests.csproj @@ -13,9 +13,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplate_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplate_netTests.csproj index 0d3925bd2..b47259510 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplate_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplate_netTests.csproj @@ -10,9 +10,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_TemplateTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_TemplateTests.csproj index 28602c3c6..1169aaecb 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_TemplateTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_TemplateTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_Template_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_Template_netTests.csproj index 0bc300875..3b23cf84f 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_Template_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_Template_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplateTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplateTests.csproj index 060a96621..a2a5b1cdf 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplateTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplateTests.csproj @@ -10,9 +10,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplate_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplate_netTests.csproj index 7156dd493..0023c3178 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplate_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplate_netTests.csproj @@ -10,9 +10,8 @@ - - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChangeTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChangeTests.csproj index 238459db8..d9975b758 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChangeTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChangeTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChange_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChange_netTests.csproj index 93b41823f..b39d73a5b 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChange_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChange_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChangeTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChangeTests.csproj index 6dcc3a99e..5508fe178 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChangeTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChangeTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChange_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChange_netTests.csproj index f0016e9fb..3c6f9acb2 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChange_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChange_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommandTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommandTests.csproj index e5880c753..d6947d6e5 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommandTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommandTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommand_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommand_netTests.csproj index 1186a0e24..5c63be687 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommand_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommand_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommandTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommandTests.csproj index a2f3b69e8..7daeeb6e5 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommandTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommandTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommand_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommand_netTests.csproj index 29c59aa20..eac28163e 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommand_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommand_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculatorTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculatorTests.csproj index dbd23b667..2d0abd177 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculatorTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculatorTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculator_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculator_netTests.csproj index 3281f3f6b..76cea6f93 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculator_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculator_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalcTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalcTests.csproj index 07940e567..a8e545c8e 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalcTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalcTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalc_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalc_netTests.csproj index 300f2adfd..b12f5abe6 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalc_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalc_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_ConvertersTests/MVVM_06_ConvertersTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_ConvertersTests/MVVM_06_ConvertersTests.csproj index d0cfa875c..51bbef340 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_06_ConvertersTests/MVVM_06_ConvertersTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_06_ConvertersTests/MVVM_06_ConvertersTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3Tests.csproj index 0a4fd7694..d9b5e207d 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3Tests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3Tests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3_netTests.csproj index 159d2f7ab..c7137c728 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4Tests.csproj index 294570c3c..0844a96b2 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4Tests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4Tests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4_netTests.csproj index cff96a832..9fdc7fe1c 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxesTest.csproj b/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxesTest.csproj index 66029821d..6a96abbe0 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxesTest.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxesTest.csproj @@ -13,7 +13,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxes_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxes_netTests.csproj index fa4c6d6a8..24c1178b6 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxes_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxes_netTests.csproj @@ -13,7 +13,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxesTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxesTests.csproj index caab0a5e9..57983959d 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxesTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxesTests.csproj @@ -13,7 +13,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxes_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxes_netTests.csproj index 118d6c4b7..c6d4028e5 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxes_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxes_netTests.csproj @@ -13,7 +13,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1Tests.csproj index f4e30f08c..626309178 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1Tests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1Tests.csproj @@ -14,7 +14,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1_netTests.csproj index a5aadeca8..121b71ffe 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1_netTests.csproj @@ -14,7 +14,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_18_MultiConvertersTests/MVVM_18_MultiConvertersTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_18_MultiConvertersTests/MVVM_18_MultiConvertersTests.csproj index 771f12722..f447b208f 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_18_MultiConvertersTests/MVVM_18_MultiConvertersTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_18_MultiConvertersTests/MVVM_18_MultiConvertersTests.csproj @@ -20,7 +20,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterListsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterListsTests.csproj index d65ce70b3..ac3dd86b9 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterListsTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterListsTests.csproj @@ -29,7 +29,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterLists_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterLists_netTests.csproj index f2c7187fc..7b1378883 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterLists_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterLists_netTests.csproj @@ -21,7 +21,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_SysdialogsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_SysdialogsTests.csproj index c23bbda1a..887f5f9d8 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_SysdialogsTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_SysdialogsTests.csproj @@ -17,7 +17,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_Sysdialogs_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_Sysdialogs_netTests.csproj index dfef2e95f..322415d31 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_Sysdialogs_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_Sysdialogs_netTests.csproj @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogsTests.csproj index 3bd4d5017..40c1a56c2 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogsTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogsTests.csproj @@ -17,7 +17,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogs_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogs_netTests.csproj index 36591996a..9e14f1d99 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogs_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogs_netTests.csproj @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCapTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCapTests.csproj index 2b4ef495b..c21e911c1 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCapTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCapTests.csproj @@ -24,10 +24,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCap_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCap_netTests.csproj index f4b8431bf..6c0533b33 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCap_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCap_netTests.csproj @@ -24,7 +24,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCapTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCapTests.csproj index bb5e22f4e..2162d20d9 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCapTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCapTests.csproj @@ -24,7 +24,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCap_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCap_netTests.csproj index 07ee664f4..aa453381c 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCap_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCap_netTests.csproj @@ -24,7 +24,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControlTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControlTests.csproj index 440a25f8e..e9c2ad0ff 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControlTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControlTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControl_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControl_netTests.csproj index b17964227..e8b807b1f 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControl_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControl_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControlTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControlTests.csproj index c53bc2e93..83ca0e577 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControlTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControlTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControl_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControl_netTests.csproj index 8167016ab..db48e5378 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControl_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControl_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControlTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControlTests.csproj index d5377fb32..c7058ac6c 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControlTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControlTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControl_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControl_netTests.csproj index c5b32effb..6acd458ee 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControl_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControl_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControlTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControlTests.csproj index 61c578b1c..f0de21763 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControlTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControlTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControl_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControl_netTests.csproj index 951fc595c..ffaad36bd 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControl_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControl_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEditTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEditTests.csproj index 4c55705d1..e9e4ffc52 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEditTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEditTests.csproj @@ -15,7 +15,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEdit_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEdit_netTests.csproj index d746fe81e..4d91f06eb 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEdit_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEdit_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGridTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGridTests.csproj index be911aaa7..01d759874 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGridTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGridTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGrid_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGrid_netTests.csproj index 6360d0d94..31b44decf 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGrid_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGrid_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExtTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExtTests.csproj index 8a03c26b4..8679c8738 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExtTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExtTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExt_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExt_netTests.csproj index 483e1f369..0a2ba8eee 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExt_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExt_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExtTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExtTests.csproj index 795c935c3..f0e2fae31 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExtTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExtTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExt_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExt_netTests.csproj index 023d7fab6..70bf5f970 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExt_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExt_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGridTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGridTests.csproj index b9b05d84e..95418b501 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGridTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGridTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGrid_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGrid_netTests.csproj index c06c901c7..0635800f6 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGrid_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGrid_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1Tests.csproj index 2138b073c..2931743be 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1Tests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1Tests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1_netTests.csproj index 28fc43348..bf848dc47 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2Tests.csproj index d2db28b8f..12549b268 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2Tests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2Tests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2_netTests.csproj index 182eb8265..3ec55af0e 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1Tests.csproj index 8c190228e..70a26c2b0 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1Tests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1Tests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1_netTests.csproj index 386032116..176eba382 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2Tests.csproj index 2f4be2653..04d769310 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2Tests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2Tests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2_netTests.csproj index 5c310c4e9..3f91eea9f 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3Tests.csproj index 9758148dc..ca94a8e89 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3Tests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3Tests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3_netTests.csproj index 8394e3ede..9605cc145 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3_netTests.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_CommandsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_CommandsTests.csproj index bc6a30633..d080c8495 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_CommandsTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_CommandsTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_Commands_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_Commands_netTests.csproj index 22d331b2c..3ef1ba161 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_Commands_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_Commands_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_CommandsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_CommandsTests.csproj index 442aa9310..4fb683cbb 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_CommandsTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_CommandsTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_Commands_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_Commands_netTests.csproj index 1dcc386c6..8f9d859a9 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_Commands_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_Commands_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgsTests.csproj index 907d40422..7b9b19a53 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgsTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgsTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgs_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgs_netTests.csproj index 8e73120b6..72339ed75 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgs_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgs_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgsTests.csproj index 4eb698afa..c0ff9fd50 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgsTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgsTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgs_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgs_netTests.csproj index be69ff7f9..aeec53220 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgs_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgs_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkitTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkitTests.csproj index 73eb9a781..05eeb59dd 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkitTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkitTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkit_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkit_netTests.csproj index 41958790f..f6635afae 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkit_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkit_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWorkTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWorkTests.csproj index 17caef72d..85908afc7 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWorkTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWorkTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWork_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWork_netTests.csproj index e85881cb6..7dce99adb 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWork_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWork_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeViewTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeViewTests.csproj index 22e9edf1e..07a7e5aa2 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeViewTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeViewTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeView_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeView_netTests.csproj index c6edf019d..af93a5c30 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeView_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeView_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjectionTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjectionTests.csproj index 5b62153bf..10b517644 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjectionTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjectionTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjection_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjection_netTests.csproj index b740144f6..cecd2d1fe 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjection_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjection_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTestTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTestTests.csproj index 15bfd9ead..26482826a 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTestTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTestTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTest_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTest_netTests.csproj index 9b0bcd146..8fc3f36a2 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTest_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTest_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_WizzardTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_WizzardTests.csproj index 5e4e753cf..1e0b33074 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_WizzardTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_WizzardTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_Wizzard_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_Wizzard_netTests.csproj index 78d800779..8b0447686 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_Wizzard_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_Wizzard_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_SudokuTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_SudokuTests.csproj index c533c7a2d..ced78e0c1 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_SudokuTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_SudokuTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_Sudoku_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_Sudoku_netTests.csproj index f4fe46c1e..b7fc46e24 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_Sudoku_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_Sudoku_netTests.csproj @@ -13,7 +13,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamplesTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamplesTests.csproj index 6826623d6..764a54788 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamplesTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamplesTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamples_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamples_netTests.csproj index 60d993da0..253b9c5d3 100644 --- a/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamples_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamples_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfAppTests.csproj b/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfAppTests.csproj index 1756dcc13..431540695 100644 --- a/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfAppTests.csproj +++ b/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfAppTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfApp_netTests.csproj b/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfApp_netTests.csproj index a88e93bb0..e9c4d40a8 100644 --- a/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfApp_netTests.csproj +++ b/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfApp_netTests.csproj @@ -11,7 +11,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_TemplateTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_TemplateTests.csproj index 2dcb4d08c..e68fd3d9c 100644 --- a/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_TemplateTests.csproj +++ b/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_TemplateTests.csproj @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_Template_netTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_Template_netTests.csproj index 647493ee5..9f43393e0 100644 --- a/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_Template_netTests.csproj +++ b/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_Template_netTests.csproj @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_SingletonTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_SingletonTests.csproj index c8e132b7d..6af2d0696 100644 --- a/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_SingletonTests.csproj +++ b/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_SingletonTests.csproj @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_Singleton_netTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_Singleton_netTests.csproj index 7049469c4..eb113c87a 100644 --- a/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_Singleton_netTests.csproj +++ b/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_Singleton_netTests.csproj @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_ObserverTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_ObserverTests.csproj index 007cda08a..45916e680 100644 --- a/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_ObserverTests.csproj +++ b/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_ObserverTests.csproj @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_Observer_netTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_Observer_netTests.csproj index b5d99bff7..76619ecfe 100644 --- a/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_Observer_netTests.csproj +++ b/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_Observer_netTests.csproj @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Solution.props b/CSharpBible/Solution.props index 1eaa72b6c..3e0fe7f71 100644 --- a/CSharpBible/Solution.props +++ b/CSharpBible/Solution.props @@ -3,7 +3,7 @@ .. $(UpDir)\..\bin\$(MSBuildProjectName)\ $(UpDir)\..\obj\$(MSBuildProjectName)\ - 9.0 + 13.0 enable NULLABLE disable diff --git a/CSharpBible/Solution_net.props b/CSharpBible/Solution_net.props index 73b67e898..48ed5a613 100644 --- a/CSharpBible/Solution_net.props +++ b/CSharpBible/Solution_net.props @@ -3,7 +3,7 @@ .. $(UpDir)\..\bin\$(MSBuildProjectName)\ $(UpDir)\..\obj.net\$(MSBuildProjectName)\ - 12.0 + 13.0 enable disable JC-Soft diff --git a/CSharpBible/SomeThing/SomeThing2Tests/SomeThing2Tests.csproj b/CSharpBible/SomeThing/SomeThing2Tests/SomeThing2Tests.csproj index b57e1a9ca..0380d3a10 100644 --- a/CSharpBible/SomeThing/SomeThing2Tests/SomeThing2Tests.csproj +++ b/CSharpBible/SomeThing/SomeThing2Tests/SomeThing2Tests.csproj @@ -13,7 +13,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/SomeThing/SomeThing2aTests/SomeThing2aTests.csproj b/CSharpBible/SomeThing/SomeThing2aTests/SomeThing2aTests.csproj index 23dc5bfdc..2cdc8b33f 100644 --- a/CSharpBible/SomeThing/SomeThing2aTests/SomeThing2aTests.csproj +++ b/CSharpBible/SomeThing/SomeThing2aTests/SomeThing2aTests.csproj @@ -13,7 +13,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/TestConsole/TestConsole_net.csproj b/CSharpBible/TestConsole/TestConsole_net.csproj index b2fedd800..60e8d8057 100644 --- a/CSharpBible/TestConsole/TestConsole_net.csproj +++ b/CSharpBible/TestConsole/TestConsole_net.csproj @@ -1,7 +1,7 @@  - net6.0-windows;net7.0-windows;net8.0-windows + net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows true diff --git a/CSharpBible/TestConsoleTests/TestConsoleTests.csproj b/CSharpBible/TestConsoleTests/TestConsoleTests.csproj index 3cc6ef3f7..66ea5762d 100644 --- a/CSharpBible/TestConsoleTests/TestConsoleTests.csproj +++ b/CSharpBible/TestConsoleTests/TestConsoleTests.csproj @@ -24,7 +24,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/Tests/Test.csproj b/CSharpBible/Tests/Test.csproj index fc0b3598d..89d2ab359 100644 --- a/CSharpBible/Tests/Test.csproj +++ b/CSharpBible/Tests/Test.csproj @@ -14,7 +14,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTimingTests.csproj b/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTimingTests.csproj index a093a3aa7..d933b8340 100644 --- a/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTimingTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTimingTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTiming_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTiming_netTests.csproj index 87a205676..0c0c6d172 100644 --- a/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTiming_netTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTiming_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_LayoutTests.csproj b/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_LayoutTests.csproj index 8916d626e..1d61a0bd2 100644 --- a/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_LayoutTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_LayoutTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_Layout_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_Layout_netTests.csproj index 1f2d82792..da32735d5 100644 --- a/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_Layout_netTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_Layout_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayoutTests.csproj b/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayoutTests.csproj index 3cc575001..0e6bbf3d1 100644 --- a/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayoutTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayoutTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayout_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayout_netTests.csproj index 705474113..6aaa8eaaf 100644 --- a/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayout_netTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayout_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimationTests.csproj b/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimationTests.csproj index 25dadf02e..77d55b017 100644 --- a/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimationTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimationTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimation_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimation_netTests.csproj index 114f3bb97..9979bd42a 100644 --- a/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimation_netTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimation_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_WorldTests.csproj b/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_WorldTests.csproj index 0caee7228..4a9b6375c 100644 --- a/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_WorldTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_WorldTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_World_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_World_netTests.csproj index 21d406d41..febc2da21 100644 --- a/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_World_netTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_World_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetailTests.csproj b/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetailTests.csproj index cfce82c4e..f1b5d5383 100644 --- a/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetailTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetailTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetail_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetail_netTests.csproj index db64df942..27eb753da 100644 --- a/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetail_netTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetail_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindowTests.csproj b/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindowTests.csproj index 5abc829bb..7b99976d0 100644 --- a/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindowTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindowTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindow_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindow_netTests.csproj index 14279b170..bbf7d6700 100644 --- a/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindow_netTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindow_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_TemplateTests.csproj b/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_TemplateTests.csproj index cab6c5a83..311703444 100644 --- a/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_TemplateTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_TemplateTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_Template_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_Template_netTests.csproj index 606ae2b2c..170dd3074 100644 --- a/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_Template_netTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_Template_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/ViewModels/StickyNotesViewModel.cs b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/ViewModels/StickyNotesViewModel.cs index c5a66d1dd..3145d78b0 100644 --- a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/ViewModels/StickyNotesViewModel.cs +++ b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/ViewModels/StickyNotesViewModel.cs @@ -16,6 +16,7 @@ using WPF_StickyNotesDemo.Models.Interfaces; using System; using System.ComponentModel; +using CommunityToolkit.Mvvm.Input; namespace WPF_StickyNotesDemo.ViewModels { @@ -53,6 +54,10 @@ private void OnMPropertyChanged(object sender, PropertyChangedEventArgs e) OnPropertyChanged(e.PropertyName); } + [RelayCommand] + private void CbClick(object o) + { + } #endregion } } diff --git a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/Views/StickyNotesView.xaml b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/Views/StickyNotesView.xaml index 9629a7438..67c5d9084 100644 --- a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/Views/StickyNotesView.xaml +++ b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/Views/StickyNotesView.xaml @@ -21,7 +21,7 @@ + Name="cb" Command="{Binding CbClickCommand}" /> diff --git a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemoTests.csproj b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemoTests.csproj index d197d4d24..1db388903 100644 --- a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemoTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemoTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemo_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemo_netTests.csproj index fa7f982fa..55428dfc8 100644 --- a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemo_netTests.csproj +++ b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemo_netTests.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive