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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,47 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" >
<metadata>
<id>CodeFactory.WinVs.SDK</id>
<version>2.24361.0.1-PreRelease</version>
<version>2.25220.0.1-PreRelease</version>
<title>CodeFactory Software Development Kit for Visual Studio - Windows</title>
<authors>CodeFactory, LLC.</authors>
<owners>CodeFactory, LLC.</owners>
<license type="expression">MIT</license>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>Software development kit for building CodeFactory automation in Visual Studio - Windows.</description>
<releaseNotes>
WPF Updates:
- ViewUserControl now imports the current style in visual studio to all standard WPF controls.
Release Updates for 2.25220.0.1

Command Notifications:
- 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
Recompile Release:
When you update your automation to this version of the SDK.
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.

Command External Configuration Updates:
Deprecated the use of the CommandManager class. All command configuration is now done through the ExternalConfig class.
ConfigParameter now supports multiple value types including string, bool, datetime and list.

External Configuration Editor:
All CodeFactory command projects now have an external configuration editor that handles the configuration of the commands that are hosted in a CFA file.
The editor is triggered by right-clicking on the solution node in solution explorer and selecting [cF] Automation Configuration.

Transaction History:
CodeFactory now tracks the historical statics of all commands that write to files in projects and the solution.
The following statics are tracked:
- Name of the file updated.
- Name of the project the file resides in or null if it is not part of a project.
- Name of the solution the file resides.
- Relative path of the file from the project or solution root.
- Number of characters written to the file omitting the white space characters and line returns.
- Number of lines written to the file, omitting the lines with no content.

Transaction Results:
You can now get the transaction results from any insert or replace operation. This will return the above statics for the transaction.
</releaseNotes>
<copyright>Copyright © 2024 CodeFactory, LLC.</copyright>
<copyright>Copyright © 2025 CodeFactory, LLC.</copyright>
<tags>Factory Automation</tags>
<dependencies>
<dependency id="CodeFactory" version="2.24361.0.1-PreRelease"/>
<dependency id="CodeFactory.WinVs" version="2.24361.0.1-PreRelease"/>
<dependency id="CodeFactory.WinVs.Wpf" version="2.24361.0.1-PreRelease"/>
<dependency id="CodeFactory" version="2.25220.0.1-PreRelease"/>
<dependency id="CodeFactory.WinVs" version="2.25220.0.1-PreRelease"/>
<dependency id="CodeFactory.WinVs.Wpf" version="2.25220.0.1-PreRelease"/>
</dependencies>
<icon>CFLogo128.png</icon>
</metadata>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//*****************************************************************************
//* Code Factory SDK - Windows Visual Studio
//* Copyright (c) 2023 CodeFactory, LLC
//* Copyright (c) 2023-2025 CodeFactory, LLC
//*****************************************************************************

using System.Collections.Immutable;
Expand Down Expand Up @@ -84,6 +84,7 @@ public static class PackagerData
new string[]
{ "CodeFactory",
"CodeFactory.WinVs",
"CodeFactory.WinVs.Wpf",
"MessagePack.Annotations",
"MessagePack",
"Microsoft.Bcl.AsyncInterfaces",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("CodeFactory.Packager.WinVs")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyDescription("Commandline utility that creates the CodeFactory Automation file. (cfa)")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyCompany("CodeFactory, LLC.")]
[assembly: AssemblyProduct("CodeFactory.Packager.WinVs")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyCopyright("Copyright © 2025 CodeFactory, LLC.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

Expand All @@ -33,4 +33,4 @@
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.24361.0.1")]
[assembly: AssemblyFileVersion("2.25220.0.1")]
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("CodeFactory, LLC.")]
[assembly: AssemblyProduct("CodeFactory.WinVs.Wpf")]
[assembly: AssemblyCopyright("Copyright © 2023 CodeFactory, LLC.")]
[assembly: AssemblyCopyright("Copyright © 2025 CodeFactory, LLC.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

Expand All @@ -33,4 +33,4 @@
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.24361.0.1")]
[assembly: AssemblyFileVersion("2.25220.0.1")]
16 changes: 11 additions & 5 deletions Src/CodeFactoryForWindows/CodeFactory.WinVs.Wpf/WinVsWpf.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,25 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" >
<metadata>
<id>CodeFactory.WinVs.Wpf</id>
<version>2.24361.0.1-PreRelease</version>
<version>2.25220.0.1-PreRelease</version>
<title>CodeFactory User Interface WPF for Visual Studio - Windows</title>
<authors>CodeFactory, LLC.</authors>
<owners>CodeFactory, LLC.</owners>
<license type="expression">MIT</license>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>Library that provides custom dialog screens hosted in Visual Studio for Windows, hosted for CodeFactory automation.</description>
<releaseNotes>ViewUserControl now natively imports the visual studio styling to the standard wpf controls.</releaseNotes>
<copyright>Copyright © 2024 CodeFactory, LLC.</copyright>
<releaseNotes>
Release Updates for 2.25220.0.1

Recompile Release:
When you update your automation to this version of the SDK.
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.
</releaseNotes>
<copyright>Copyright © 2025 CodeFactory, LLC.</copyright>
<tags>Factory Automation</tags>
<dependencies>
<dependency id="CodeFactory" version="2.24361.0.1-PreRelease"/>
<dependency id="CodeFactory.WinVs" version="2.24361.0.1-PreRelease"/>
<dependency id="CodeFactory" version="2.25220.0.1-PreRelease"/>
<dependency id="CodeFactory.WinVs" version="2.25220.0.1-PreRelease"/>
</dependencies>
<icon>CFLogo128.png</icon>
</metadata>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,51 @@

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>13</LangVersion>
<SignAssembly>True</SignAssembly>
<AssemblyOriginatorKeyFile>CFSigner.snk</AssemblyOriginatorKeyFile>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<Version>2.24361.0.1-PreRelease</Version>
<Version>2.25220.0.1-PreRelease</Version>
<Authors>CodeFactory, LLC.</Authors>
<Company>CodeFactory, LLC.</Company>
<Product>CodeFactory Base Library</Product>
<Copyright>Copyright © 2023 CodeFactory, LLC.</Copyright>
<Copyright>Copyright © 2025 CodeFactory, LLC.</Copyright>
<Description>The CodeFactory API that supports Visual Studio - Windows</Description>
<PackageLicenseExpression> MIT</PackageLicenseExpression>
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
<IncludeSymbols>False</IncludeSymbols>
<Title>CodeFactory API for Visual Studio - Windows </Title>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<FileVersion>2.24361.0.1</FileVersion>
<FileVersion>2.25220.0.1</FileVersion>
<PackageIcon>CFLogo128.png</PackageIcon>
<PackageReleaseNotes>
Release Updates for 2.24361.0.1
Release Updates for 2.25220.0.1

Recompile Release:
When you update your automation to this version of the SDK.
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.

Command External Configuration Updates:
Deprecated the use of the CommandManager class. All command configuration is now done through the ExternalConfig class.
ConfigParameter now supports multiple value types including string, bool, datetime and list.

External Configuration Editor:
All CodeFactory command projects now have an external configuration editor that handles the configuration of the commands that are hosted in a CFA file.
The editor is triggered by right clicking on the Solution node in solution explorer and selecting [cF] Automation Configuration.

Transaction History:
CodeFactory now tracks the historical statics of all commands that write to files in projects and the solution.
The following statics are tracked:
- Name of the file updated.
- Name of the project the file resides in or null if it is not part of a project.
- Name of the solution the file resides.
- Relative path of the file from the project or solution root.
- Number of characters written to the file omitting the white space characters and line returns.
- Number of lines written to the file, omitting the lines with no content.

Transaction Results:
You can now get the transaction results from any insert or replace operation. This will return the above statics for the transaction.

Execution logging for CodeFactory Commands
- 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.
</PackageReleaseNotes>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
Expand Down Expand Up @@ -51,13 +75,22 @@
<ItemGroup>
<PackageReference Include="MessagePack" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" />
<PackageReference Include="PolySharp" Version="1.15.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Serilog" Version="4.0.0" />
<PackageReference Include="System.Collections.Immutable" Version="8.0.0" />
<PackageReference Include="System.IO.Packaging" Version="7.0.0" />
<PackageReference Include="System.Text.Json" Version="9.0.0" />
</ItemGroup>

<ItemGroup>
<Compile Update="Factory\FactoryMessages.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>FactoryMessages.resx</DependentUpon>
</Compile>
<Compile Update="Loader\ConfigurationMessages.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
Expand All @@ -71,6 +104,10 @@
</ItemGroup>

<ItemGroup>
<EmbeddedResource Update="Factory\FactoryMessages.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>FactoryMessages.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Update="Loader\ConfigurationMessages.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>ConfigurationMessages.Designer.cs</LastGenOutput>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CodeFactory.WinVs.Commands
{
/// <summary>
/// Specifies metadata for a command configuration, including its name, associated command type, guidance text, and
/// optional documentation URL. This attribute is applied to classes to define their command configuration details.
/// </summary>
/// <remarks>Use this attribute to annotate classes that represent command configurations. The metadata
/// provided by this attribute can be used to categorize commands, associate them with specific command types, and
/// provide additional guidance or documentation for users.</remarks>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class CommandConfigAttribute:ExternalConfigAttribute
{

/// <summary>
/// Initializes a new instance of the <see cref="CommandConfigAttribute"/> class.
/// </summary>
/// <remarks>This attribute is used to specify that the associated member represents a command
/// configuration. It is primarily intended for use in scenarios where external configuration types need to be
/// explicitly defined.</remarks>
public CommandConfigAttribute(): base(ExternalConfigType.Command)
{
//Intentionally left blank, this is used to define the type of external configuration this attribute represents.
}

/// <summary>
/// The name of the command configuration.
/// </summary>
public string Name { get; set; }

/// <summary>
/// The type of the command that supports this configuration.
/// </summary>
public Type SupportingCommand { get; set; }

/// <summary>
/// Gets the guidance text associated with the command configuration. This can provide additional context or instructions for users.
/// </summary>
public string Guidance { get; set; }

/// <summary>
/// Gets or sets the URL that provides additional guidance or documentation.
/// </summary>
public string GuidanceUrl { get; set; }

/// <summary>
/// The category of the command configuration, which can be used to group similar commands together.
/// </summary>
public string Category { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;

namespace CodeFactory.WinVs.Commands
{
/// <summary>
/// Represents an external configuration map for a command, including its type, guidance, and related documentation.
/// </summary>
/// <remarks>This class is used to define the configuration details for a specific command, including its
/// name, type, optional guidance text, and an optional URL for additional documentation. It extends the <see
/// cref="ExternalConfigMap"/> class and is specifically tailored for command-related configurations.</remarks>
public class CommandExternalConfigMap: ExternalConfigMap
{
/// <summary>
/// Initializes a new instance of the <see cref="CommandExternalConfigMap"/> class with the specified name,
/// command type, guidance, and guidance URL.
/// </summary>
/// <param name="name">The name of the external configuration command. Cannot be null or empty.</param>
/// <param name="commandType">The type of the command represented by this configuration. Cannot be null or empty.</param>
/// <param name="category">The category assoicated with the command configuration.</param>
/// <param name="guidance">The guidance text associated with the command. This can provide additional context or instructions. Can be
/// null.</param>
/// <param name="guidanceUrl">The URL pointing to detailed guidance or documentation for the command. Can be null.</param>
public CommandExternalConfigMap( string name, string commandType, string category, string guidance, string guidanceUrl):base(ExternalConfigType.Command,name,false,guidance,guidanceUrl,null)
{
CommandType = commandType;
Category = category;
}

/// <summary>
/// The fully qualified type name of the command that supports this configuration.
/// </summary>
public string CommandType { get; init; }

/// <summary>
/// Gets or sets the category associated with the command configuration. This can be used to group similar commands together.
/// </summary>
public string Category { get; set; }
}
}
Loading