Skip to content

Commit

Permalink
Code Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidWiseman committed Jul 15, 2024
1 parent 71a10d5 commit 5cc41c2
Show file tree
Hide file tree
Showing 247 changed files with 2,384 additions and 2,930 deletions.
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[*.{cs,vb}]

# IDE0028: Simplify collection initialization
dotnet_diagnostic.IDE0028.severity = silent
6 changes: 3 additions & 3 deletions DBADash.Test/DBADashConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public void SetSetConfigFileBackupRetentionTest(int RetentionDays)
Helper.RunProcess(psi);

var json = Helper.GetConfigJson();
var cfg = DBADash.CollectionConfig.Deserialize(json);
var cfg = CollectionConfig.Deserialize(json);
Assert.AreEqual(RetentionDays, cfg.ConfigBackupRetentionDays);
}

Expand All @@ -48,7 +48,7 @@ public void EncryptTest(string password)
Assert.IsTrue(BasicConfig.IsConfigFileEncrypted(), "Config file should be encrypted");

psi = new ProcessStartInfo("DBADashConfig",
$"-a Decrypt");
"-a Decrypt");
Helper.RunProcess(psi);

Assert.IsFalse(BasicConfig.IsConfigFileEncrypted(), "Config file should not be encrypted");
Expand All @@ -69,7 +69,7 @@ public void ServiceNameTest(string serviceName)
}

[TestMethod]
[DataRow(new string[] { "C:\\Test", "C:\\Test2", "C:\\Test3" })]
[DataRow(new[] { "C:\\Test", "C:\\Test2", "C:\\Test3" })]
public void AddRemoveDestinationTest(string[] connectionStrings)
{
foreach (var connectionString in connectionStrings)
Expand Down
3 changes: 1 addition & 2 deletions DBADash.Test/EncryptTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using DBADash.Messaging;
using Microsoft.SqlServer.TransactSql.ScriptDom;

namespace DBADashConfig.Test
{
Expand Down Expand Up @@ -77,7 +76,7 @@ public void EncryptionShouldFailWithoutPassword()
[TestMethod]
public void TestSerialization()
{
var x = new CollectionMessage(new CollectionType[] { CollectionType.Drives, CollectionType.TableSize }, "TEST");
var x = new CollectionMessage(new[] { CollectionType.Drives, CollectionType.TableSize }, "TEST");
var payload = x.Serialize();

var y = MessageBase.Deserialize(payload);
Expand Down
2 changes: 1 addition & 1 deletion DBADash.Test/Helper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public static SqlConnectionStringBuilder GetRandomConnectionString()
var builder = new SqlConnectionStringBuilder
{
DataSource = Guid.NewGuid().ToString(),
InitialCatalog = "DABDashUnitTest" + Guid.NewGuid().ToString(),
InitialCatalog = "DABDashUnitTest" + Guid.NewGuid(),
Password = "TestEncryption",
ApplicationName = "DBADash"
};
Expand Down
2 changes: 0 additions & 2 deletions DBADash.Test/Initialize.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.IO;
using System.Reflection;

namespace DBADashConfig.Test
{
Expand Down
27 changes: 13 additions & 14 deletions DBADash.Test/PowerShellScriptsTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
using System.Diagnostics;
using System.IO;
using DBADash;
using Microsoft.SqlServer.Management.HadrModel;
using static DBADashConfig.Test.Helper;

namespace DBADashConfig.Test
Expand All @@ -16,8 +15,8 @@ public class PowerShellScriptsTest
[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
Helper.CleanupConfig();
Assert.IsFalse(File.Exists(Helper.ServiceConfigPath));
CleanupConfig();
Assert.IsFalse(File.Exists(ServiceConfigPath));
}

[ClassCleanup]
Expand All @@ -30,13 +29,13 @@ public static void ClassCleanup()
public void SetDBADashDestinationTest()
{
var builder = GetRandomConnectionString();
string dest = builder.ToString();
var dest = builder.ToString();
var psi = new ProcessStartInfo("powershell",
$"-File \"Set-DBADashDestination.ps1\" -ConnectionString \"{dest}\" -SkipValidation");
Helper.RunProcess(psi);
RunProcess(psi);

string json = Helper.GetConfigJson();
var cfg = DBADash.CollectionConfig.Deserialize(json);
var json = GetConfigJson();
var cfg = CollectionConfig.Deserialize(json);
Console.WriteLine(cfg.DestinationConnection.ConnectionString);
Console.WriteLine(dest);
Assert.IsTrue(cfg.DestinationConnection.ConnectionString == builder.ToString(), "Destination connection doesn't match what was specified");
Expand All @@ -53,9 +52,9 @@ public void SetDBADashDestinationTest()
public void AddDBADashSourceTest(int slowQueryThreshold, bool planCollectionEnabled, int planCollectionCountThreshold, int planCollectionCPUThreshold, int planCollectionDurationThreshold, int PlanCollectionMemoryGrantThreshold, string schemaSnapshotDBs, DBADashSource.IOCollectionLevels IOCollectionLevel)
{
// Add connection
var cnt = Helper.GetConnectionCount();
var cnt = GetConnectionCount();
var builder = GetRandomConnectionString();
string source = builder.ToString();
var source = builder.ToString();
var psi = new ProcessStartInfo("powershell",
$"-File \"Add-DBADashSource.ps1\" -ConnectionString \"{source}\" --SkipValidation");
RunProcess(psi);
Expand All @@ -67,7 +66,7 @@ public void AddDBADashSourceTest(int slowQueryThreshold, bool planCollectionEnab
Assert.IsFalse(json.Contains(builder.Password), "Plain text password found in json");

// Convert config to CollectionConfig object for additional checks
var cfg = DBADash.CollectionConfig.Deserialize(json);
var cfg = CollectionConfig.Deserialize(json);
var newCnt = cfg.SourceConnections.Count;
Assert.IsTrue(newCnt == cnt + 1, $"Expected {cnt + 1} source connections instead of {newCnt}");
var src = cfg.GetSourceFromConnectionString(builder.ConnectionString);
Expand Down Expand Up @@ -96,7 +95,7 @@ public void AddDBADashSourceTest(int slowQueryThreshold, bool planCollectionEnab
// Read config from disk again
json = GetConfigJson();
Console.WriteLine(json);
cfg = DBADash.CollectionConfig.Deserialize(json);
cfg = CollectionConfig.Deserialize(json);

newCnt = cfg.SourceConnections.Count;
// This time we should be replacing the existing connection - so the count will be the same
Expand All @@ -105,19 +104,19 @@ public void AddDBADashSourceTest(int slowQueryThreshold, bool planCollectionEnab
Console.WriteLine(src.SlowQueryThresholdMs);
// Check updates worked
Assert.IsTrue(src.SlowQueryThresholdMs == slowQueryThreshold, "SlowQueryThresholdMs Test");
Assert.IsTrue(src.NoWMI == true, "NoWMI Test");
Assert.IsTrue(src.NoWMI, "NoWMI Test");
Assert.IsTrue(src.PlanCollectionEnabled == planCollectionEnabled, "PlanCollectionEnabled Test");
Assert.IsTrue(src.PlanCollectionCountThreshold == planCollectionCountThreshold, "PlanCollectionCountThreshold Test");
Assert.IsTrue(src.PlanCollectionCPUThreshold == planCollectionCPUThreshold, "PlanCollectionCountThreshold Test");
Assert.IsTrue(src.PlanCollectionMemoryGrantThreshold == PlanCollectionMemoryGrantThreshold, "PlanCollectionMemoryGrantThreshold Test");
Assert.IsTrue(src.IOCollectionLevel == IOCollectionLevel, "IOCollectionLevel Test");
if (string.IsNullOrEmpty(schemaSnapshotDBs))
{
Assert.IsTrue(string.IsNullOrEmpty(src.SchemaSnapshotDBs), "SchemaSnaspshotDBs Test");
Assert.IsTrue(string.IsNullOrEmpty(src.SchemaSnapshotDBs), "SchemaSnapshotDBs Test");
}
else
{
Assert.IsTrue(src.SchemaSnapshotDBs == schemaSnapshotDBs, "SchemaSnaspshotDBs Test");
Assert.IsTrue(src.SchemaSnapshotDBs == schemaSnapshotDBs, "SchemaSnapshotDBs Test");
}
}
}
Expand Down
7 changes: 6 additions & 1 deletion DBADash.sln
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBADashConfig", "DBADashCon
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBADash.Test", "DBADash.Test\DBADash.Test.csproj", "{EF27ED83-107C-4C04-AE1E-6568C6520003}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBADashSharedGUI", "DBADashSharedGUI\DBADashSharedGUI.csproj", "{EAD0C906-86A2-4A12-80BC-582A25E557DB}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBADashSharedGUI", "DBADashSharedGUI\DBADashSharedGUI.csproj", "{EAD0C906-86A2-4A12-80BC-582A25E557DB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{30FF5BFF-FDD6-4A23-8A51-9B287A05A29E}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
112 changes: 112 additions & 0 deletions DBADash.sln.DotSettings
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/UserDictionary/Words/=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=ABCDE/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=addserver/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=AMAZ/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=amazonaws/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Autogrow/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=autostart/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=AWSPV/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=AWSS/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=AWSURL/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=binpath/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Bsec/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Bttn/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=checksums/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=cimv/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=cntr/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=colour/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=COMPOSITED/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=creds/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=dacpac/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=dasharray/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=DATABASEID/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=DATABASEPROPERTYEX/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=DATEFORMAT/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=DATETIMEOFFSET/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=DBACCESS/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=dbadash/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=DBCC/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=dbid/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=dcom/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=DDLI/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=DDLID/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=decryptor/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=displayname/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Dold/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=encryptor/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Fabcdef/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Failover/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=FROMDATE/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Gcolor/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=GETUTCDATE/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Gridline/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=GUICU/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=GUISP/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=HADR/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=HHMM/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=HKEY/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Hmmss/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=hobt/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=INSTANCEID/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=INSTANCEIDS/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=keysize/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Licences/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=localservice/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=localsystem/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Logshipped/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=msdb/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=MYSERVER/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=networkservice/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=NOCOUNT/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=N_0027PF/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=N_0027PS/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=objectid/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=parameterization/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=prerelease/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Procs/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Programmability/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=QUOTENAME/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=RAISERROR/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=RCSI/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Recv/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=renderers/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=rowcount/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=rrow/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=runas/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Screenshot/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=SCRIPTPATH/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=selectables/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=serilog/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=SERVERNAME/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=SERVERPROPERTY/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=servicename/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Simpl/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=SPID/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=sqlplan/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=sqlserver/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Ssis/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=suppressions/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=supressed/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=sysjobs/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=syssessions/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=SYSUTCDATETIME/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=tempdb/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=thres/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=TODATE/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Topshelf/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Trimble/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=unforce/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Updateability/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=UPGRADESCRIPT/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=UPGRADESCRIPTPATH/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Uptime/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Ustatus/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Webview/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Wiseman/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=XACT/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=XBUTTON/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=XBUTTONDOWN/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=xshd/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Ymax/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=YYYYMMDD/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
Loading

0 comments on commit 5cc41c2

Please sign in to comment.