Skip to content

Commit d2b4adb

Browse files
authored
Merge pull request #34 from CodeFactoryLLC/2025AugustRelease
2025 august release
2 parents 685e9b7 + 584ecca commit d2b4adb

File tree

104 files changed

+10447
-380
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+10447
-380
lines changed

Src/CodeFactoryForWindows/CodeFactory.Packager.WinVs/CodeFactoryWinVsSDK.nuspec

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,47 @@
22
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" >
33
<metadata>
44
<id>CodeFactory.WinVs.SDK</id>
5-
<version>2.24361.0.1-PreRelease</version>
5+
<version>2.25220.0.1-PreRelease</version>
66
<title>CodeFactory Software Development Kit for Visual Studio - Windows</title>
77
<authors>CodeFactory, LLC.</authors>
88
<owners>CodeFactory, LLC.</owners>
99
<license type="expression">MIT</license>
1010
<requireLicenseAcceptance>true</requireLicenseAcceptance>
1111
<description>Software development kit for building CodeFactory automation in Visual Studio - Windows.</description>
1212
<releaseNotes>
13-
WPF Updates:
14-
- ViewUserControl now imports the current style in visual studio to all standard WPF controls.
13+
Release Updates for 2.25220.0.1
1514

16-
Command Notifications:
17-
- Commands will now log notifications to the CodeFactory output window. You can add notifications to any command being built by calling the static class method CommandNotifications.SendCommandNotificationAsync
15+
Recompile Release:
16+
When you update your automation to this version of the SDK.
17+
You will need to recompile your automation projects to the new version of the SDK, and make sure you have the CodeFactory runtime at least the same version or higher.
18+
19+
Command External Configuration Updates:
20+
Deprecated the use of the CommandManager class. All command configuration is now done through the ExternalConfig class.
21+
ConfigParameter now supports multiple value types including string, bool, datetime and list.
22+
23+
External Configuration Editor:
24+
All CodeFactory command projects now have an external configuration editor that handles the configuration of the commands that are hosted in a CFA file.
25+
The editor is triggered by right-clicking on the solution node in solution explorer and selecting [cF] Automation Configuration.
26+
27+
Transaction History:
28+
CodeFactory now tracks the historical statics of all commands that write to files in projects and the solution.
29+
The following statics are tracked:
30+
- Name of the file updated.
31+
- Name of the project the file resides in or null if it is not part of a project.
32+
- Name of the solution the file resides.
33+
- Relative path of the file from the project or solution root.
34+
- Number of characters written to the file omitting the white space characters and line returns.
35+
- Number of lines written to the file, omitting the lines with no content.
36+
37+
Transaction Results:
38+
You can now get the transaction results from any insert or replace operation. This will return the above statics for the transaction.
1839
</releaseNotes>
19-
<copyright>Copyright © 2024 CodeFactory, LLC.</copyright>
40+
<copyright>Copyright © 2025 CodeFactory, LLC.</copyright>
2041
<tags>Factory Automation</tags>
2142
<dependencies>
22-
<dependency id="CodeFactory" version="2.24361.0.1-PreRelease"/>
23-
<dependency id="CodeFactory.WinVs" version="2.24361.0.1-PreRelease"/>
24-
<dependency id="CodeFactory.WinVs.Wpf" version="2.24361.0.1-PreRelease"/>
43+
<dependency id="CodeFactory" version="2.25220.0.1-PreRelease"/>
44+
<dependency id="CodeFactory.WinVs" version="2.25220.0.1-PreRelease"/>
45+
<dependency id="CodeFactory.WinVs.Wpf" version="2.25220.0.1-PreRelease"/>
2546
</dependencies>
2647
<icon>CFLogo128.png</icon>
2748
</metadata>

Src/CodeFactoryForWindows/CodeFactory.Packager.WinVs/PackagerData.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//*****************************************************************************
22
//* Code Factory SDK - Windows Visual Studio
3-
//* Copyright (c) 2023 CodeFactory, LLC
3+
//* Copyright (c) 2023-2025 CodeFactory, LLC
44
//*****************************************************************************
55

66
using System.Collections.Immutable;
@@ -84,6 +84,7 @@ public static class PackagerData
8484
new string[]
8585
{ "CodeFactory",
8686
"CodeFactory.WinVs",
87+
"CodeFactory.WinVs.Wpf",
8788
"MessagePack.Annotations",
8889
"MessagePack",
8990
"Microsoft.Bcl.AsyncInterfaces",

Src/CodeFactoryForWindows/CodeFactory.Packager.WinVs/Properties/AssemblyInfo.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
// set of attributes. Change these attribute values to modify the information
77
// associated with an assembly.
88
[assembly: AssemblyTitle("CodeFactory.Packager.WinVs")]
9-
[assembly: AssemblyDescription("")]
9+
[assembly: AssemblyDescription("Commandline utility that creates the CodeFactory Automation file. (cfa)")]
1010
[assembly: AssemblyConfiguration("")]
11-
[assembly: AssemblyCompany("")]
11+
[assembly: AssemblyCompany("CodeFactory, LLC.")]
1212
[assembly: AssemblyProduct("CodeFactory.Packager.WinVs")]
13-
[assembly: AssemblyCopyright("Copyright © 2023")]
13+
[assembly: AssemblyCopyright("Copyright © 2025 CodeFactory, LLC.")]
1414
[assembly: AssemblyTrademark("")]
1515
[assembly: AssemblyCulture("")]
1616

@@ -33,4 +33,4 @@
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
3535
[assembly: AssemblyVersion("2.0.0.0")]
36-
[assembly: AssemblyFileVersion("2.24361.0.1")]
36+
[assembly: AssemblyFileVersion("2.25220.0.1")]

Src/CodeFactoryForWindows/CodeFactory.WinVs.Wpf/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
[assembly: AssemblyConfiguration("")]
1111
[assembly: AssemblyCompany("CodeFactory, LLC.")]
1212
[assembly: AssemblyProduct("CodeFactory.WinVs.Wpf")]
13-
[assembly: AssemblyCopyright("Copyright © 2023 CodeFactory, LLC.")]
13+
[assembly: AssemblyCopyright("Copyright © 2025 CodeFactory, LLC.")]
1414
[assembly: AssemblyTrademark("")]
1515
[assembly: AssemblyCulture("")]
1616

@@ -33,4 +33,4 @@
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
3535
[assembly: AssemblyVersion("2.0.0.0")]
36-
[assembly: AssemblyFileVersion("2.24361.0.1")]
36+
[assembly: AssemblyFileVersion("2.25220.0.1")]

Src/CodeFactoryForWindows/CodeFactory.WinVs.Wpf/WinVsWpf.nuspec

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,25 @@
22
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" >
33
<metadata>
44
<id>CodeFactory.WinVs.Wpf</id>
5-
<version>2.24361.0.1-PreRelease</version>
5+
<version>2.25220.0.1-PreRelease</version>
66
<title>CodeFactory User Interface WPF for Visual Studio - Windows</title>
77
<authors>CodeFactory, LLC.</authors>
88
<owners>CodeFactory, LLC.</owners>
99
<license type="expression">MIT</license>
1010
<requireLicenseAcceptance>true</requireLicenseAcceptance>
1111
<description>Library that provides custom dialog screens hosted in Visual Studio for Windows, hosted for CodeFactory automation.</description>
12-
<releaseNotes>ViewUserControl now natively imports the visual studio styling to the standard wpf controls.</releaseNotes>
13-
<copyright>Copyright © 2024 CodeFactory, LLC.</copyright>
12+
<releaseNotes>
13+
Release Updates for 2.25220.0.1
14+
15+
Recompile Release:
16+
When you update your automation to this version of the SDK.
17+
You will need to recompile your automation projects to the new version of the SDK, and make sure you have the CodeFactory runtime at least the same version or higher.
18+
</releaseNotes>
19+
<copyright>Copyright © 2025 CodeFactory, LLC.</copyright>
1420
<tags>Factory Automation</tags>
1521
<dependencies>
16-
<dependency id="CodeFactory" version="2.24361.0.1-PreRelease"/>
17-
<dependency id="CodeFactory.WinVs" version="2.24361.0.1-PreRelease"/>
22+
<dependency id="CodeFactory" version="2.25220.0.1-PreRelease"/>
23+
<dependency id="CodeFactory.WinVs" version="2.25220.0.1-PreRelease"/>
1824
</dependencies>
1925
<icon>CFLogo128.png</icon>
2026
</metadata>

Src/CodeFactoryForWindows/CodeFactory.WinVs/CodeFactory.WinVs.csproj

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,51 @@
22

33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
5+
<LangVersion>13</LangVersion>
56
<SignAssembly>True</SignAssembly>
67
<AssemblyOriginatorKeyFile>CFSigner.snk</AssemblyOriginatorKeyFile>
78
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
8-
<Version>2.24361.0.1-PreRelease</Version>
9+
<Version>2.25220.0.1-PreRelease</Version>
910
<Authors>CodeFactory, LLC.</Authors>
1011
<Company>CodeFactory, LLC.</Company>
1112
<Product>CodeFactory Base Library</Product>
12-
<Copyright>Copyright © 2023 CodeFactory, LLC.</Copyright>
13+
<Copyright>Copyright © 2025 CodeFactory, LLC.</Copyright>
1314
<Description>The CodeFactory API that supports Visual Studio - Windows</Description>
1415
<PackageLicenseExpression> MIT</PackageLicenseExpression>
1516
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
1617
<IncludeSymbols>False</IncludeSymbols>
1718
<Title>CodeFactory API for Visual Studio - Windows </Title>
1819
<AssemblyVersion>2.0.0.0</AssemblyVersion>
19-
<FileVersion>2.24361.0.1</FileVersion>
20+
<FileVersion>2.25220.0.1</FileVersion>
2021
<PackageIcon>CFLogo128.png</PackageIcon>
2122
<PackageReleaseNotes>
22-
Release Updates for 2.24361.0.1
23+
Release Updates for 2.25220.0.1
24+
25+
Recompile Release:
26+
When you update your automation to this version of the SDK.
27+
You will need to recompile your automation projects to the new version of the SDK, and make sure you have the CodeFactory runtime at least the same version or higher.
28+
29+
Command External Configuration Updates:
30+
Deprecated the use of the CommandManager class. All command configuration is now done through the ExternalConfig class.
31+
ConfigParameter now supports multiple value types including string, bool, datetime and list.
32+
33+
External Configuration Editor:
34+
All CodeFactory command projects now have an external configuration editor that handles the configuration of the commands that are hosted in a CFA file.
35+
The editor is triggered by right clicking on the Solution node in solution explorer and selecting [cF] Automation Configuration.
36+
37+
Transaction History:
38+
CodeFactory now tracks the historical statics of all commands that write to files in projects and the solution.
39+
The following statics are tracked:
40+
- Name of the file updated.
41+
- Name of the project the file resides in or null if it is not part of a project.
42+
- Name of the solution the file resides.
43+
- Relative path of the file from the project or solution root.
44+
- Number of characters written to the file omitting the white space characters and line returns.
45+
- Number of lines written to the file, omitting the lines with no content.
46+
47+
Transaction Results:
48+
You can now get the transaction results from any insert or replace operation. This will return the above statics for the transaction.
2349

24-
Execution logging for CodeFactory Commands
25-
- CommandNotifications has been added to CodeFactory commands. This allows real time logging of what happened in a command to log to the CodeFactory output window.
2650
</PackageReleaseNotes>
2751
<GenerateDocumentationFile>True</GenerateDocumentationFile>
2852
</PropertyGroup>
@@ -51,13 +75,22 @@
5175
<ItemGroup>
5276
<PackageReference Include="MessagePack" Version="3.1.0" />
5377
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" />
78+
<PackageReference Include="PolySharp" Version="1.15.0">
79+
<PrivateAssets>all</PrivateAssets>
80+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
81+
</PackageReference>
5482
<PackageReference Include="Serilog" Version="4.0.0" />
5583
<PackageReference Include="System.Collections.Immutable" Version="8.0.0" />
5684
<PackageReference Include="System.IO.Packaging" Version="7.0.0" />
5785
<PackageReference Include="System.Text.Json" Version="9.0.0" />
5886
</ItemGroup>
5987

6088
<ItemGroup>
89+
<Compile Update="Factory\FactoryMessages.Designer.cs">
90+
<DesignTime>True</DesignTime>
91+
<AutoGen>True</AutoGen>
92+
<DependentUpon>FactoryMessages.resx</DependentUpon>
93+
</Compile>
6194
<Compile Update="Loader\ConfigurationMessages.Designer.cs">
6295
<DesignTime>True</DesignTime>
6396
<AutoGen>True</AutoGen>
@@ -71,6 +104,10 @@
71104
</ItemGroup>
72105

73106
<ItemGroup>
107+
<EmbeddedResource Update="Factory\FactoryMessages.resx">
108+
<Generator>PublicResXFileCodeGenerator</Generator>
109+
<LastGenOutput>FactoryMessages.Designer.cs</LastGenOutput>
110+
</EmbeddedResource>
74111
<EmbeddedResource Update="Loader\ConfigurationMessages.resx">
75112
<Generator>PublicResXFileCodeGenerator</Generator>
76113
<LastGenOutput>ConfigurationMessages.Designer.cs</LastGenOutput>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace CodeFactory.WinVs.Commands
8+
{
9+
/// <summary>
10+
/// Specifies metadata for a command configuration, including its name, associated command type, guidance text, and
11+
/// optional documentation URL. This attribute is applied to classes to define their command configuration details.
12+
/// </summary>
13+
/// <remarks>Use this attribute to annotate classes that represent command configurations. The metadata
14+
/// provided by this attribute can be used to categorize commands, associate them with specific command types, and
15+
/// provide additional guidance or documentation for users.</remarks>
16+
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
17+
public class CommandConfigAttribute:ExternalConfigAttribute
18+
{
19+
20+
/// <summary>
21+
/// Initializes a new instance of the <see cref="CommandConfigAttribute"/> class.
22+
/// </summary>
23+
/// <remarks>This attribute is used to specify that the associated member represents a command
24+
/// configuration. It is primarily intended for use in scenarios where external configuration types need to be
25+
/// explicitly defined.</remarks>
26+
public CommandConfigAttribute(): base(ExternalConfigType.Command)
27+
{
28+
//Intentionally left blank, this is used to define the type of external configuration this attribute represents.
29+
}
30+
31+
/// <summary>
32+
/// The name of the command configuration.
33+
/// </summary>
34+
public string Name { get; set; }
35+
36+
/// <summary>
37+
/// The type of the command that supports this configuration.
38+
/// </summary>
39+
public Type SupportingCommand { get; set; }
40+
41+
/// <summary>
42+
/// Gets the guidance text associated with the command configuration. This can provide additional context or instructions for users.
43+
/// </summary>
44+
public string Guidance { get; set; }
45+
46+
/// <summary>
47+
/// Gets or sets the URL that provides additional guidance or documentation.
48+
/// </summary>
49+
public string GuidanceUrl { get; set; }
50+
51+
/// <summary>
52+
/// The category of the command configuration, which can be used to group similar commands together.
53+
/// </summary>
54+
public string Category { get; set; }
55+
}
56+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Runtime.CompilerServices;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace CodeFactory.WinVs.Commands
9+
{
10+
/// <summary>
11+
/// Represents an external configuration map for a command, including its type, guidance, and related documentation.
12+
/// </summary>
13+
/// <remarks>This class is used to define the configuration details for a specific command, including its
14+
/// name, type, optional guidance text, and an optional URL for additional documentation. It extends the <see
15+
/// cref="ExternalConfigMap"/> class and is specifically tailored for command-related configurations.</remarks>
16+
public class CommandExternalConfigMap: ExternalConfigMap
17+
{
18+
/// <summary>
19+
/// Initializes a new instance of the <see cref="CommandExternalConfigMap"/> class with the specified name,
20+
/// command type, guidance, and guidance URL.
21+
/// </summary>
22+
/// <param name="name">The name of the external configuration command. Cannot be null or empty.</param>
23+
/// <param name="commandType">The type of the command represented by this configuration. Cannot be null or empty.</param>
24+
/// <param name="category">The category assoicated with the command configuration.</param>
25+
/// <param name="guidance">The guidance text associated with the command. This can provide additional context or instructions. Can be
26+
/// null.</param>
27+
/// <param name="guidanceUrl">The URL pointing to detailed guidance or documentation for the command. Can be null.</param>
28+
public CommandExternalConfigMap( string name, string commandType, string category, string guidance, string guidanceUrl):base(ExternalConfigType.Command,name,false,guidance,guidanceUrl,null)
29+
{
30+
CommandType = commandType;
31+
Category = category;
32+
}
33+
34+
/// <summary>
35+
/// The fully qualified type name of the command that supports this configuration.
36+
/// </summary>
37+
public string CommandType { get; init; }
38+
39+
/// <summary>
40+
/// Gets or sets the category associated with the command configuration. This can be used to group similar commands together.
41+
/// </summary>
42+
public string Category { get; set; }
43+
}
44+
}

0 commit comments

Comments
 (0)