Documentation + Unfinished SecurityHelper

Committing the unfinished changes to the SecurityHelper as I flesh it out during the migration. Also starting a documentation folder powered by Sandcastle.
This commit is contained in:
Jordan Wages 2024-04-19 23:12:24 -05:00
parent 6cdd805be4
commit 735d7c4c91
155 changed files with 13030 additions and 1 deletions

View file

@ -4,6 +4,7 @@
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -3,13 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17 # Visual Studio Version 17
VisualStudioVersion = 17.8.34408.163 VisualStudioVersion = 17.8.34408.163
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CapyKit", "CapyKit.csproj", "{D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CapyKit", "CapyKit.csproj", "{D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BE8D96CA-FC33-4F28-AF49-0E4AEC6D3FD9}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BE8D96CA-FC33-4F28-AF49-0E4AEC6D3FD9}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig .editorconfig = .editorconfig
EndProjectSection EndProjectSection
EndProject EndProject
Project("{7CF6DF6D-3B04-46F8-A40B-537D21BCA0B4}") = "Documentation", "..\Documentation\Documentation.shfbproj", "{E23D3844-E594-487E-979B-2D35B1B9AAE8}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -20,6 +22,10 @@ Global
{D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}.Debug|Any CPU.Build.0 = Debug|Any CPU {D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}.Release|Any CPU.ActiveCfg = Release|Any CPU {D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}.Release|Any CPU.Build.0 = Release|Any CPU {D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}.Release|Any CPU.Build.0 = Release|Any CPU
{E23D3844-E594-487E-979B-2D35B1B9AAE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E23D3844-E594-487E-979B-2D35B1B9AAE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E23D3844-E594-487E-979B-2D35B1B9AAE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E23D3844-E594-487E-979B-2D35B1B9AAE8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

1916
CapyKit/Color.cs Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,161 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace CapyKit.Helpers
{
/// <summary> A class that contains methods for managing secure data processing and cryptography. </summary>
public class SecurityHelper
{
#region Members
private int keySize = 32;
private int saltSize = 32;
/// <summary> The salt used when creating a hash using the <a href="https://en.wikipedia.org/wiki/SHA-2">SHA256</a> algorithm. </summary>
private const string SALT = "D4260471-5DBA-4732-B960-6E2E438F8872";
/// <summary> A string of all the lower case characters. </summary>
private const string LOWER_CASE_CHARACTERS = "abcdefghijklmnopqrstuvwxyz";
/// <summary> A string of all the upper case characters. </summary>
private const string UPPER_CASE_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
/// <summary> A string of all the numeric characters. </summary>
private const string NUMBER_CHARACTERS = "0123456789";
/// <summary> A string of the most common non-alphanumeric characters. </summary>
private const string SPECIAL_CHARACTERS = "!@#$%&?+-_";
#endregion Members
#region Methods
/// <summary>
/// Compares an unencrypted <paramref name="providedPassword"/> with a stored, encrypted
/// <paramref name="existingPassword"/>.
/// </summary>
/// <param name="providedPassword"> The provided password, unencrypted. </param>
/// <param name="existingPassword"> The existing, encrypted password. </param>
/// <returns>
/// <see langword="true"/> if hash comparison succeeds, <see langword="false"/> if it fails.
/// </returns>
public static bool CompareHashedPassword(string providedPassword, string existingPassword)
{
throw new NotImplementedException();
}
/// <summary> Hashes an unencrypted password. </summary>
/// <param name="password"> The password. </param>
/// <returns> The hashed password. </returns>
public static string HashPassword(string password)
{
throw new NotImplementedException();
}
/// <summary>
/// Produces a <a href="https://en.wikipedia.org/wiki/SHA-2">SHA256</a> hash from a given
/// <paramref name="value"/>.
/// </summary>
/// <param name="value"> The value. </param>
/// <returns>
/// A byte array equal to the SHA256 hash of <paramref name="value"/> or an empty array if it
/// fails.
/// </returns>
public static byte[] SHA256Hash(string value)
{
try
{
using (var hash = new SHA256Managed())
{
var bytes = Encoding.Unicode.GetBytes(value + SALT);
var encrypted = hash.ComputeHash(bytes);
return encrypted;
}
}
catch (Exception ex)
{
CapyEventReporter.EmitEvent(EventLevel.Error, "Could not hash the given value {0}.", args: new[] { value });
}
return new byte[0];
}
public static string Pbkdf2(string password, out byte[] salt)
{
throw new NotImplementedException();
}
/// <summary> Gets a cryptographically strong random password. </summary>
/// <param name="length"> The length of the password to generate. </param>
/// <returns> The password. </returns>
public static string GetRandomPassword(int length)
{
return GetRandomString(length);
}
/// <summary> Gets a calendar key that is <c>32</c> characters long. </summary>
/// <returns> The calendar key. </returns>
public static string GetCalendarKey()
{
return GetRandomString(32);
}
/// <summary> Compares two session identifiers. </summary>
/// <param name="first"> The first session identifier. </param>
/// <param name="second"> The second session identifier. </param>
/// <returns>
/// <see langword="true"/> if comparison succeeds, <see langword="false"/> if not.
/// </returns>
public static bool CompareSessionID(string first, string second)
{
if (string.IsNullOrEmpty(first) || string.IsNullOrEmpty(second))
{
return CompareStrings(first, second);
}
return CompareStrings(first.Trim(), second.Trim());
}
/// <summary> Gets a cryptographically strong random string using the character values found in <see cref="VALID_CHARACTERS"/>. </summary>
/// <param name="length"> The length of the string to create. </param>
/// <returns> The random string. </returns>
private static string GetRandomString(int length)
{
throw new NotImplementedException();
//var buffer = new StringBuilder();
//while (buffer.Length < length)
//{
// var oneByte = new byte[1];
// RandomNumberGenerator.GetBytes(oneByte);
// var character = (char)oneByte[0];
// if (VALID_CHARACTERS.Contains(character))
// {
// buffer.Append(character);
// }
//}
//return buffer.ToString();
}
/// <summary> Compare two strings as case sensative. </summary>
/// <param name="first"> The first string. </param>
/// <param name="second"> The second string. </param>
/// <returns>
/// <see langword="true"/> if the comparison succeeds, <see langword="false"/> if not.
/// </returns>
/// <remarks>
/// This method is a proxy for using
/// <see cref="string.Compare(string, int, string, int, int, StringComparison)"/> with the
/// <c>StringComparison</c> set to <see cref="StringComparison.Ordinal"/>.
/// </remarks>
private static bool CompareStrings(string first, string second)
{
return string.Compare(first, second, StringComparison.Ordinal) == 0;
}
#endregion Methods
}
}

217
CapyKit/Password.cs Normal file
View file

@ -0,0 +1,217 @@
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Linq;
using System.Reflection.Metadata.Ecma335;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace CapyKit
{
/// <summary>
/// Represents a password with its hash, salt and algorithm used for encryption.
/// </summary>
public class Password
{
#region Members
//
#endregion
#region Properties
/// <summary>
/// Gets or sets the hash of the password.
/// </summary>
public byte[] Hash { get; private set; }
/// <summary>
/// Gets or sets the salt used for encryption.
/// </summary>
public byte[] Salt { get; private set; }
/// <summary>
/// Gets or sets the algorithm used for password encryption.
/// </summary>
public IPasswordAlgorithm Algorithm { get; private set; }
#endregion
/// <summary> Constructor. </summary>
/// <param name="password"> The password to be hashed. </param>
/// <param name="salt"> The salt used for encryption. </param>
/// <param name="algorithm"> The algorithm used for password encryption. </param>
/// <param name="args"> A variable-length parameters list containing arguments to include for the <paramref name="algorithm"/>. </param>
internal Password(string password, byte[] salt, IPasswordAlgorithm algorithm, params object[] args)
{
// We know there will always be a salt, so we can prepend it to h
var augmented = args.Prepend(salt).ToArray();
this.Hash = algorithm.Encrypt(password, augmented);
this.Salt = salt;
this.Algorithm = algorithm;
}
#region Methods
/// <inheritdoc/>
public override string ToString()
{
return string.Format("Hash: {0}, Salt: {1}, Algorithm: {2}", BitConverter.ToString(this.Hash), BitConverter.ToString(this.Salt), this.Algorithm?.AlgorithmName);
}
#endregion
}
/// <summary>
/// Defines the contract for password encryption algorithms.
/// </summary>
public interface IPasswordAlgorithm
{
#region Properties
/// <summary>
/// Gets the name of the algorithm.
/// </summary>
string AlgorithmName { get; }
#endregion
#region Methods
/// <summary> Encrypts the given password using a defined algorithm. </summary>
/// <param name="password"> The plaintext password. </param>
/// <param name="args">
/// Additional arguments for the encryption process, such as salt and length.
/// </param>
/// <returns> A byte array with the hashed <paramref name="password"/>. </returns>
byte[] Encrypt(string password, params object[] args);
/// <summary>
/// Compares the given plaintext password with an encrypted value using PBKDF2 algorithm.
/// </summary>
/// <param name="password"> The plaintext password to compare. </param>
/// <param name="encryptedValue"> The encrypted value to compare against. </param>
/// <param name="args">
/// Additional arguments for the encryption process, such as salt and length.
/// </param>
/// <returns>
/// True if the given <paramref name="password"/> matches the <paramref name="encryptedValue"/>,
/// false if they are different.
/// </returns>
bool Compare(string password, byte[] encryptedValue, params object[] args)
{
var challengedPassword = Encrypt(password, args);
return encryptedValue.SequenceEqual(challengedPassword);
}
#endregion
}
#region Implementations
/// <summary>
/// Implements the PBKDF2 algorithm for password encryption.
/// </summary>
public class Pbkdf2Algorithm : IPasswordAlgorithm
{
#region Members
/// <summary> (Immutable) The default length. </summary>
/// <remarks> This member is immutable. </remarks>
public const int LENGTH = 32;
/// <summary> The default number of iterations. </summary>
/// <remarks> This member is immutable. </remarks>
public const int ITERATIONS = 100000;
#endregion
#region Properties
/// <inheritdoc/>
public string AlgorithmName
{
get
{
return "Pbkdf2";
}
}
#endregion
#region Methods
/// <summary> Encrypts the given password using a PBKDF2 algorithm. </summary>
/// <param name="password"> The plaintext password. </param>
/// <param name="args">
/// Additional arguments for the encryption process, specifically
/// <list type="number">
/// <item><c>salt</c></item>
/// <item><c>length</c></item>
/// <item><c>iterations</c></item>
/// </list>
/// </param>
/// <returns> A byte array with the hashed <paramref name="password"/>. </returns>
public byte[] Encrypt(string password, params object[] args)
{
if (args.Length == 0)
{
CapyEventReporter.EmitEvent(EventLevel.Error, "No arguments passed.");
return new byte[0];
}
var salt = args[0] as byte[];
if (salt == null)
{
CapyEventReporter.EmitEvent(EventLevel.Error, "The first parameters in the arguments wasn't a valid salt.");
return new byte[0];
}
var length = 0;
try
{
length = Convert.ToInt32(args[1]);
}
catch (Exception ex)
{
CapyEventReporter.EmitEvent(EventLevel.Error, "Could not convert the second parameter into an integer.");
length = LENGTH;
}
var iterations = 0;
try
{
iterations = Convert.ToInt32(args[2]);
}
catch (Exception ex)
{
CapyEventReporter.EmitEvent(EventLevel.Error, "Could not convert the second parameter into an integer.");
iterations = ITERATIONS;
}
var hash = new byte[0];
using (var deriveBytes = new Rfc2898DeriveBytes(password, salt, iterations, HashAlgorithmName.SHA256))
{
hash = deriveBytes.GetBytes(length);
}
if (hash.Length == 0)
{
CapyEventReporter.EmitEvent(EventLevel.Error, "Hash could not be generated.");
return new byte[0];
}
return hash;
}
#endregion
}
#endregion
}

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<topic id="7d36447b-0aab-4ce9-b5ed-e60ec5bee103" revisionNumber="1">
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>The topics in this section describe the various changes made to the [TODO: Project Title] over the
life of the project.</para>
</introduction>
<section>
<title>Version History</title>
<content>
<para>Select a version below to see a description of its changes.</para>
<list class="bullet">
<listItem>
<para><link xlink:href="fa7407d1-9116-4ad7-a9ab-ed094685b070" /></para>
</listItem>
<listItem>
<para>[TODO: Add links to each specific version page]</para>
</listItem>
</list>
</content>
</section>
<relatedTopics>
<link xlink:href="849aa079-3d64-4cf1-966f-44af23c73160" />
</relatedTopics>
</developerConceptualDocument>
</topic>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<topic id="fa7407d1-9116-4ad7-a9ab-ed094685b070" revisionNumber="1">
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>Version [TODO: Version] was released on [TODO: Date].
</para>
</introduction>
<section>
<title>Changes in This Release</title>
<content>
<list class="bullet">
<listItem>
<para>[TODO: Add change items here]</para>
</listItem>
</list>
</content>
</section>
<relatedTopics>
<link xlink:href="7d36447b-0aab-4ce9-b5ed-e60ec5bee103" />
</relatedTopics>
</developerConceptualDocument>
</topic>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<topic id="849aa079-3d64-4cf1-966f-44af23c73160" revisionNumber="1">
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>This is a sample conceptual topic. You can use this as a starting point for adding more conceptual
content to your help project.</para>
</introduction>
<section>
<title>Getting Started</title>
<content>
<para>To get started, add a documentation source to the project (a Visual Studio solution, project, or
assembly and XML comments file). See the <legacyBold>Getting Started</legacyBold> topics in the Sandcastle Help
File Builder's help file for more information. The following default items are included in this project:</para>
<list class="bullet">
<listItem>
<para><localUri>ContentLayout.content</localUri> - Use the content layout file to manage the
conceptual content in the project and define its layout in the table of contents.</para>
</listItem>
<listItem>
<para>The <localUri>.\media</localUri> folder - Place images in this folder that you will reference
from conceptual content using <codeInline>medialLink</codeInline> or <codeInline>mediaLinkInline</codeInline>
elements. If you will not have any images in the file, you may remove this folder.</para>
</listItem>
<listItem>
<para>The <localUri>.\icons</localUri> folder - This contains a default logo for the help file. You
may replace it or remove it and the folder if not wanted. If removed or if you change the file name, update
the <ui>Transform Args</ui> project properties page by removing or changing the filename in the
<codeInline>logoFile</codeInline> transform argument. Note that unlike images referenced from conceptual topics,
the logo file should have its <legacyBold>BuildAction</legacyBold> property set to <codeInline>Content</codeInline>.</para>
</listItem>
<listItem>
<para>The <localUri>.\Content</localUri> folder - Use this to store your conceptual topics. You may
name the files and organize them however you like. One suggestion is to lay the files out on disk as you have
them in the content layout file as shown in this project but the choice is yours. Files can be added via the
Solution Explorer or from within the content layout file editor. Files must appear in the content layout file
in order to be compiled into the help file.</para>
</listItem>
</list>
<para>See the <legacyBold>Conceptual Content</legacyBold> topics in the Sandcastle Help File Builder's
help file for more information. See the <legacyBold> Sandcastle MAML Guide</legacyBold> for details on Microsoft
Assistance Markup Language (MAML) which is used to create these topics.</para>
</content>
</section>
<relatedTopics>
<link xlink:href="7d36447b-0aab-4ce9-b5ed-e60ec5bee103" />
</relatedTopics>
</developerConceptualDocument>
</topic>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Topics>
<Topic id="849aa079-3d64-4cf1-966f-44af23c73160" visible="True" isDefault="true" isSelected="true" title="Welcome to the [TODO: Add project name]">
<HelpKeywords>
<HelpKeyword index="K" term="Welcome" />
</HelpKeywords>
</Topic>
<Topic id="7d36447b-0aab-4ce9-b5ed-e60ec5bee103" visible="True" isExpanded="true" title="Version History">
<HelpKeywords>
<HelpKeyword index="K" term="version, history" />
</HelpKeywords>
<Topic id="fa7407d1-9116-4ad7-a9ab-ed094685b070" visible="True" title="Version 1.0.0.0">
<HelpKeywords>
<HelpKeyword index="K" term="version, 1.0.0.0" />
</HelpKeywords>
</Topic>
</Topic>
</Topics>

View file

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Import the common properties to support NuGet restore -->
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<!-- A target framework version is required by Visual Studio. It can be any version with a targeting pack installed. -->
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<!-- The configuration and platform will be used to determine which assemblies to include from solution and
project documentation sources -->
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>e23d3844-e594-487e-979b-2d35b1b9aae8</ProjectGuid>
<SHFBSchemaVersion>2017.9.26.0</SHFBSchemaVersion>
<!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual Studio adds them anyway -->
<AssemblyName>Documentation</AssemblyName>
<RootNamespace>Documentation</RootNamespace>
<Name>Documentation</Name>
<!-- SHFB properties -->
<FrameworkVersion>.NET Framework 4.7.2</FrameworkVersion>
<OutputPath>.\Help\</OutputPath>
<HtmlHelpName>Documentation</HtmlHelpName>
<Language>en-US</Language>
<TransformComponentArguments>
<Argument Key="logoFile" Value="Help.png" xmlns="" />
<Argument Key="logoHeight" Value="" xmlns="" />
<Argument Key="logoWidth" Value="" xmlns="" />
<Argument Key="logoAltText" Value="" xmlns="" />
<Argument Key="logoPlacement" Value="left" xmlns="" />
<Argument Key="logoAlignment" Value="left" xmlns="" />
<Argument Key="maxVersionParts" Value="" xmlns="" />
</TransformComponentArguments>
<HelpFileFormat>Markdown</HelpFileFormat>
<SyntaxFilters>Standard</SyntaxFilters>
<PresentationStyle>Markdown</PresentationStyle>
<CleanIntermediates>True</CleanIntermediates>
<KeepLogFile>True</KeepLogFile>
<DisableCodeBlockComponent>False</DisableCodeBlockComponent>
<IndentHtml>False</IndentHtml>
<BuildAssemblerVerbosity>OnlyWarningsAndErrors</BuildAssemblerVerbosity>
<SaveComponentCacheCapacity>100</SaveComponentCacheCapacity>
<DocumentationSources>
<DocumentationSource sourceFile="..\CapyKit\CapyKit.sln" xmlns="" />
</DocumentationSources>
<HelpTitle>CapyKit</HelpTitle>
<HelpFileVersion>1.0.0.0</HelpFileVersion>
<NamingMethod>MemberName</NamingMethod>
<ContentPlacement>AboveNamespaces</ContentPlacement>
<RootNamespaceContainer>False</RootNamespaceContainer>
<NamespaceGrouping>False</NamespaceGrouping>
<MaximumGroupParts>2</MaximumGroupParts>
<Preliminary>False</Preliminary>
<SdkLinkTarget>Blank</SdkLinkTarget>
</PropertyGroup>
<!-- There are no properties for these groups. AnyCPU needs to appear in order for Visual Studio to perform
the build. The others are optional common platform types that may appear. -->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Win32' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Win32' ">
</PropertyGroup>
<ItemGroup>
<Folder Include="Content" />
<Folder Include="Content\VersionHistory" />
<Folder Include="icons" />
<Folder Include="media" />
</ItemGroup>
<ItemGroup>
<None Include="Content\VersionHistory\v1.0.0.0.aml" />
<None Include="Content\VersionHistory\VersionHistory.aml" />
<None Include="Content\Welcome.aml" />
</ItemGroup>
<ItemGroup>
<ContentLayout Include="ContentLayout.content" />
</ItemGroup>
<ItemGroup>
<Content Include="icons\Help.png" />
</ItemGroup>
<!-- Import the common build targets during NuGet restore because before the packages are being installed, $(SHFBROOT) is not set yet -->
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" Condition="'$(MSBuildRestoreSessionId)' != ''" />
<!-- Import the SHFB build targets during build -->
<Import Project="$(SHFBROOT)\SandcastleHelpFileBuilder.targets" Condition="'$(MSBuildRestoreSessionId)' == ''" />
<!-- The pre-build and post-build event properties must appear *after* the targets file import in order to be
evaluated correctly. -->
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
</PropertyGroup>
</Project>

View file

@ -0,0 +1,17 @@
# Version History
The topics in this section describe the various changes made to the [TODO: Project Title] over the life of the project.
## Version History
Select a version below to see a description of its changes.
<ul><li><p><a href="fa7407d1-9116-4ad7-a9ab-ed094685b070">Version 1.0.0.0</a></p></li><li><p>[TODO: Add links to each specific version page]</p></li></ul>
## See Also
#### Other Resources
<a href="849aa079-3d64-4cf1-966f-44af23c73160">Welcome to the [TODO: Add project name]</a>

View file

@ -0,0 +1,27 @@
# Welcome to the [TODO: Add project name]
This is a sample conceptual topic. You can use this as a starting point for adding more conceptual content to your help project.
## Getting Started
To get started, add a documentation source to the project (a Visual Studio solution, project, or assembly and XML comments file). See the **Getting Started** topics in the Sandcastle Help File Builder's help file for more information. The following default items are included in this project:
<ul><li><p><em>ContentLayout.content</em> - Use the content layout file to manage the conceptual content in the project and define its layout in the table of contents.</p></li><li><p>
The <em>.\media</em> folder - Place images in this folder that you will reference from conceptual content using <code>medialLink</code> or <code>mediaLinkInline</code> elements. If you will not have any images in the file, you may remove this folder.</p></li><li><p>
The <em>.\icons</em> folder - This contains a default logo for the help file. You may replace it or remove it and the folder if not wanted. If removed or if you change the file name, update the <strong>Transform Args</strong> project properties page by removing or changing the filename in the <code>logoFile</code> transform argument. Note that unlike images referenced from conceptual topics, the logo file should have its <strong>BuildAction</strong> property set to <code>Content</code>.</p></li><li><p>
The <em>.\Content</em> folder - Use this to store your conceptual topics. You may name the files and organize them however you like. One suggestion is to lay the files out on disk as you have them in the content layout file as shown in this project but the choice is yours. Files can be added via the Solution Explorer or from within the content layout file editor. Files must appear in the content layout file in order to be compiled into the help file.</p></li></ul>
See the **Conceptual Content** topics in the Sandcastle Help File Builder's help file for more information. See the **Sandcastle MAML Guide** for details on Microsoft Assistance Markup Language (MAML) which is used to create these topics.
## See Also
#### Other Resources
<a href="7d36447b-0aab-4ce9-b5ed-e60ec5bee103">Version History</a>

View file

@ -0,0 +1,43 @@
# ITERATIONS Field
The default number of iterations.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public const int ITERATIONS = 100000
```
**VB**
``` VB
Public Const ITERATIONS As Integer = 100000
```
**C++**
``` C++
public:
literal int ITERATIONS = 100000
```
**F#**
``` F#
static val mutable ITERATIONS: int
```
#### Field Value
<a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a>
## Remarks
This member is immutable.
## See Also
#### Reference
<a href="T_CapyKit_Pbkdf2Algorithm">Pbkdf2Algorithm Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,43 @@
# LENGTH Field
(Immutable) The default length.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public const int LENGTH = 32
```
**VB**
``` VB
Public Const LENGTH As Integer = 32
```
**C++**
``` C++
public:
literal int LENGTH = 32
```
**F#**
``` F#
static val mutable LENGTH: int
```
#### Field Value
<a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a>
## Remarks
This member is immutable.
## See Also
#### Reference
<a href="T_CapyKit_Pbkdf2Algorithm">Pbkdf2Algorithm Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,21 @@
# Pbkdf2Algorithm Fields
## Fields
<table>
<tr>
<td><a href="F_CapyKit_Pbkdf2Algorithm_ITERATIONS">ITERATIONS</a></td>
<td>The default number of iterations.</td></tr>
<tr>
<td><a href="F_CapyKit_Pbkdf2Algorithm_LENGTH">LENGTH</a></td>
<td>(Immutable) The default length.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Pbkdf2Algorithm">Pbkdf2Algorithm Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,27 @@
# Welcome to the [TODO: Add project name]
This is a sample conceptual topic. You can use this as a starting point for adding more conceptual content to your help project.
## Getting Started
To get started, add a documentation source to the project (a Visual Studio solution, project, or assembly and XML comments file). See the **Getting Started** topics in the Sandcastle Help File Builder's help file for more information. The following default items are included in this project:
<ul><li><p><em>ContentLayout.content</em> - Use the content layout file to manage the conceptual content in the project and define its layout in the table of contents.</p></li><li><p>
The <em>.\media</em> folder - Place images in this folder that you will reference from conceptual content using <code>medialLink</code> or <code>mediaLinkInline</code> elements. If you will not have any images in the file, you may remove this folder.</p></li><li><p>
The <em>.\icons</em> folder - This contains a default logo for the help file. You may replace it or remove it and the folder if not wanted. If removed or if you change the file name, update the <strong>Transform Args</strong> project properties page by removing or changing the filename in the <code>logoFile</code> transform argument. Note that unlike images referenced from conceptual topics, the logo file should have its <strong>BuildAction</strong> property set to <code>Content</code>.</p></li><li><p>
The <em>.\Content</em> folder - Use this to store your conceptual topics. You may name the files and organize them however you like. One suggestion is to lay the files out on disk as you have them in the content layout file as shown in this project but the choice is yours. Files can be added via the Solution Explorer or from within the content layout file editor. Files must appear in the content layout file in order to be compiled into the help file.</p></li></ul>
See the **Conceptual Content** topics in the Sandcastle Help File Builder's help file for more information. See the **Sandcastle MAML Guide** for details on Microsoft Assistance Markup Language (MAML) which is used to create these topics.
## See Also
#### Other Resources
<a href="7d36447b-0aab-4ce9-b5ed-e60ec5bee103">Version History</a>

View file

@ -0,0 +1,47 @@
# EnumerationAttribute&lt;T&gt; Constructor
Gets the value of the enumeration represented by this attribute.
## Definition
**Namespace:** <a href="N_CapyKit_Attributes">CapyKit.Attributes</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
protected EnumerationAttribute(
T value
)
```
**VB**
``` VB
Protected Sub New (
value As T
)
```
**C++**
``` C++
protected:
EnumerationAttribute(
T value
)
```
**F#**
``` F#
new :
value : 'T -> EnumerationAttribute
```
#### Parameters
<dl><dt>  <a href="T_CapyKit_Attributes_EnumerationAttribute_1">T</a></dt><dd>Initializes a new instance of the <a href="T_CapyKit_Attributes_EnumerationAttribute_1">EnumerationAttribute(T)</a> class with a specified value.</dd></dl>
## See Also
#### Reference
<a href="T_CapyKit_Attributes_EnumerationAttribute_1">EnumerationAttribute(T) Class</a>
<a href="N_CapyKit_Attributes">CapyKit.Attributes Namespace</a>

View file

@ -0,0 +1,47 @@
# EnumerationDescriptionAttribute Constructor
Initializes a new instance of the <a href="T_CapyKit_Attributes_EnumerationDescriptionAttribute">EnumerationDescriptionAttribute</a> class with the specified description.
## Definition
**Namespace:** <a href="N_CapyKit_Attributes">CapyKit.Attributes</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public EnumerationDescriptionAttribute(
string description
)
```
**VB**
``` VB
Public Sub New (
description As String
)
```
**C++**
``` C++
public:
EnumerationDescriptionAttribute(
String^ description
)
```
**F#**
``` F#
new :
description : string -> EnumerationDescriptionAttribute
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The description of the enumeration value.</dd></dl>
## See Also
#### Reference
<a href="T_CapyKit_Attributes_EnumerationDescriptionAttribute">EnumerationDescriptionAttribute Class</a>
<a href="N_CapyKit_Attributes">CapyKit.Attributes Namespace</a>

View file

@ -0,0 +1,59 @@
# CapyEventArgs Constructor
Initializes a new instance of the CapyEventArgs class with the specified event level, message, and method name.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public CapyEventArgs(
EventLevel level,
string message,
string method = null
)
```
**VB**
``` VB
Public Sub New (
level As EventLevel,
message As String,
Optional method As String = Nothing
)
```
**C++**
``` C++
public:
CapyEventArgs(
EventLevel level,
String^ message,
String^ method = nullptr
)
```
**F#**
``` F#
new :
level : EventLevel *
message : string *
?method : string
(* Defaults:
let _method = defaultArg method null
*)
-> CapyEventArgs
```
#### Parameters
<dl><dt>  <a href="T_CapyKit_EventLevel">EventLevel</a></dt><dd>The severity level of the event.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>A descriptive message explaining the reason for the event.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>  (Optional)</dt><dd>The name of the method where the event was raised.</dd></dl>
## See Also
#### Reference
<a href="T_CapyKit_CapyEventArgs">CapyEventArgs Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,62 @@
# Subscribe Method
Subscribes the specified event handler to the event with the given subscription level and origin.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static void Subscribe(
CapyEventHandler callback,
EventLevel subscriptionLevel,
string origin = null
)
```
**VB**
``` VB
Public Shared Sub Subscribe (
callback As CapyEventHandler,
subscriptionLevel As EventLevel,
Optional origin As String = Nothing
)
```
**C++**
``` C++
public:
static void Subscribe(
CapyEventHandler^ callback,
EventLevel subscriptionLevel,
String^ origin = nullptr
)
```
**F#**
``` F#
static member Subscribe :
callback : CapyEventHandler *
subscriptionLevel : EventLevel *
?origin : string
(* Defaults:
let _origin = defaultArg origin null
*)
-> unit
```
#### Parameters
<dl><dt>  <a href="T_CapyKit_CapyEventHandler">CapyEventHandler</a></dt><dd>The event handler to subscribe.</dd><dt>  <a href="T_CapyKit_EventLevel">EventLevel</a></dt><dd>The severity level of the event to subscribe to.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>  (Optional)</dt><dd>(Optional) The name of the method or class where the subscription is made.</dd></dl>
## Remarks
If there is no existing list for the given subscription level, a new list is created and added to the dictionary.
## See Also
#### Reference
<a href="T_CapyKit_CapyEventReporter">CapyEventReporter Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,51 @@
# Unsubscribe Method
Unsubscribes the specified event handler from the event with the given origin.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static void Unsubscribe(
CapyEventHandler callback,
string origin
)
```
**VB**
``` VB
Public Shared Sub Unsubscribe (
callback As CapyEventHandler,
origin As String
)
```
**C++**
``` C++
public:
static void Unsubscribe(
CapyEventHandler^ callback,
String^ origin
)
```
**F#**
``` F#
static member Unsubscribe :
callback : CapyEventHandler *
origin : string -> unit
```
#### Parameters
<dl><dt>  <a href="T_CapyKit_CapyEventHandler">CapyEventHandler</a></dt><dd>The event handler to unsubscribe.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The name of the method or class where the subscription was made.</dd></dl>
## See Also
#### Reference
<a href="T_CapyKit_CapyEventReporter">CapyEventReporter Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,61 @@
# GetDescription Method
An <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a> extension method that gets a description.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string GetDescription(
this Enum enumeration
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function GetDescription (
enumeration As Enum
) As String
```
**C++**
``` C++
public:
[ExtensionAttribute]
static String^ GetDescription(
Enum^ enumeration
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member GetDescription :
enumeration : Enum -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a></dt><dd>The enumeration to act on.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
The description if available, otherwise the string representation of the enumeration.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_EnumerationExtensions">EnumerationExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,61 @@
# GetName Method
An <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a> extension method that gets a name.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string GetName(
this Enum enumeration
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function GetName (
enumeration As Enum
) As String
```
**C++**
``` C++
public:
[ExtensionAttribute]
static String^ GetName(
Enum^ enumeration
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member GetName :
enumeration : Enum -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a></dt><dd>The enumeration to act on.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
The name of the enumeration.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_EnumerationExtensions">EnumerationExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,61 @@
# GetPrettyName Method
An <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a> extension method that gets a human readable name.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string GetPrettyName(
this Enum enumeration
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function GetPrettyName (
enumeration As Enum
) As String
```
**C++**
``` C++
public:
[ExtensionAttribute]
static String^ GetPrettyName(
Enum^ enumeration
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member GetPrettyName :
enumeration : Enum -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a></dt><dd>The enumeration to act on.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
The human readable name of the enumeration.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_EnumerationExtensions">EnumerationExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,61 @@
# GetValue Method
An <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a> extension method that gets an integer value representing the enumation.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static int GetValue(
this Enum enumeration
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function GetValue (
enumeration As Enum
) As Integer
```
**C++**
``` C++
public:
[ExtensionAttribute]
static int GetValue(
Enum^ enumeration
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member GetValue :
enumeration : Enum -> int
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a></dt><dd>The enumeration to act on.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a>
The integer value of the enumeration.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_EnumerationExtensions">EnumerationExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,73 @@
# Parse&lt;T&gt;(T, String) Method
A *T* extension method that parses a string into an enumeration.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static T Parse<T>(
this T enumeration,
string value
)
where T : Enum
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function Parse(Of T As Enum) (
enumeration As T,
value As String
) As T
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T>
where T : Enum
static T Parse(
T enumeration,
String^ value
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member Parse :
enumeration : 'T *
value : string -> 'T when 'T : Enum
```
#### Parameters
<dl><dt>  T</dt><dd>The enumeration to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The value.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
T
A T.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type T. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_EnumerationExtensions">EnumerationExtensions Class</a>
<a href="Overload_CapyKit_Extensions_EnumerationExtensions_Parse">Parse Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,77 @@
# Parse&lt;T&gt;(T, String, Boolean) Method
A *T* extension method that parses a string into an enumeration.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static T Parse<T>(
this T enumeration,
string value,
bool ignoreCase
)
where T : Enum
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function Parse(Of T As Enum) (
enumeration As T,
value As String,
ignoreCase As Boolean
) As T
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T>
where T : Enum
static T Parse(
T enumeration,
String^ value,
bool ignoreCase
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member Parse :
enumeration : 'T *
value : string *
ignoreCase : bool -> 'T when 'T : Enum
```
#### Parameters
<dl><dt>  T</dt><dd>The enumeration to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The string value of the <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a>.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.boolean" target="_blank" rel="noopener noreferrer">Boolean</a></dt><dd>True to ignore case.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
T
A T.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type T. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_EnumerationExtensions">EnumerationExtensions Class</a>
<a href="Overload_CapyKit_Extensions_EnumerationExtensions_Parse">Parse Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,70 @@
# Distinct&lt;T, U&gt; Method
Enumerates distinct items in this collection as defined by the key *property*.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static IEnumerable<T> Distinct<T, U>(
this IEnumerable<T> items,
Func<T, U> property
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function Distinct(Of T, U) (
items As IEnumerable(Of T),
property As Func(Of T, U)
) As IEnumerable(Of T)
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T, typename U>
static IEnumerable<T>^ Distinct(
IEnumerable<T>^ items,
Func<T, U>^ property
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member Distinct :
items : IEnumerable<'T> *
property : Func<'T, 'U> -> IEnumerable<'T>
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T)</dt><dd>The items to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(T, U)</dt><dd>The property.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter of the parent object.</dd><dt /><dd>Generic type parameter property value.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T)
An enumerator that allows foreach to be used to process distinct items in this collection.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,71 @@
# Filter&lt;T&gt;(IEnumerable&lt;T&gt;, Func&lt;T, Boolean&gt;) Method
Filters out items matching a *predicate* from the collection.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static IEnumerable<T> Filter<T>(
this IEnumerable<T> source,
Func<T, bool> predicate
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function Filter(Of T) (
source As IEnumerable(Of T),
predicate As Func(Of T, Boolean)
) As IEnumerable(Of T)
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T>
static IEnumerable<T>^ Filter(
IEnumerable<T>^ source,
Func<T, bool>^ predicate
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member Filter :
source : IEnumerable<'T> *
predicate : Func<'T, bool> -> IEnumerable<'T>
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T)</dt><dd>The source to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(T, <a href="https://learn.microsoft.com/dotnet/api/system.boolean" target="_blank" rel="noopener noreferrer">Boolean</a>)</dt><dd>The predicate.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T)
An enumerator that allows foreach to be used to process remove in this collection.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="Overload_CapyKit_Extensions_LINQExtensions_Filter">Filter Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,71 @@
# Filter&lt;T&gt;(IQueryable&lt;T&gt;, Expression&lt;Func&lt;T, Boolean&gt;&gt;) Method
Filters out items matching a *predicate* from the collection.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static IQueryable<T> Filter<T>(
this IQueryable<T> source,
Expression<Func<T, bool>> predicate
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function Filter(Of T) (
source As IQueryable(Of T),
predicate As Expression(Of Func(Of T, Boolean))
) As IQueryable(Of T)
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T>
static IQueryable<T>^ Filter(
IQueryable<T>^ source,
Expression<Func<T, bool>^>^ predicate
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member Filter :
source : IQueryable<'T> *
predicate : Expression<Func<'T, bool>> -> IQueryable<'T>
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T)</dt><dd>The source to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.expressions.expression-1" target="_blank" rel="noopener noreferrer">Expression</a>(<a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(T, <a href="https://learn.microsoft.com/dotnet/api/system.boolean" target="_blank" rel="noopener noreferrer">Boolean</a>))</dt><dd>The predicate.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T)
An enumerator that allows foreach to be used to process remove in this collection.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="Overload_CapyKit_Extensions_LINQExtensions_Filter">Filter Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,91 @@
# LeftOuterJoin&lt;T, U, TKey, R&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;U&gt;, Func&lt;T, TKey&gt;, Func&lt;U, TKey&gt;, Func&lt;T, IEnumerable&lt;U&gt;, R&gt;, Func&lt;T, U&gt;) Method
An IEnumable&lt;T&gt; extension method that left outer join.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static IEnumerable<R> LeftOuterJoin<T, U, TKey, R>(
this IEnumerable<T> source,
IEnumerable<U> inner,
Func<T, TKey> outerSelector,
Func<U, TKey> innerSelector,
Func<T, IEnumerable<U>, R> resultSelector,
Func<T, U> defaultGenerator = null
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function LeftOuterJoin(Of T, U, TKey, R) (
source As IEnumerable(Of T),
inner As IEnumerable(Of U),
outerSelector As Func(Of T, TKey),
innerSelector As Func(Of U, TKey),
resultSelector As Func(Of T, IEnumerable(Of U), R),
Optional defaultGenerator As Func(Of T, U) = Nothing
) As IEnumerable(Of R)
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T, typename U, typename TKey, typename R>
static IEnumerable<R>^ LeftOuterJoin(
IEnumerable<T>^ source,
IEnumerable<U>^ inner,
Func<T, TKey>^ outerSelector,
Func<U, TKey>^ innerSelector,
Func<T, IEnumerable<U>^, R>^ resultSelector,
Func<T, U>^ defaultGenerator = nullptr
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member LeftOuterJoin :
source : IEnumerable<'T> *
inner : IEnumerable<'U> *
outerSelector : Func<'T, 'TKey> *
innerSelector : Func<'U, 'TKey> *
resultSelector : Func<'T, IEnumerable<'U>, 'R> *
?defaultGenerator : Func<'T, 'U>
(* Defaults:
let _defaultGenerator = defaultArg defaultGenerator null
*)
-> IEnumerable<'R>
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T)</dt><dd>The source to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(U)</dt><dd>The inner.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(T, TKey)</dt><dd>The outer selector.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(U, TKey)</dt><dd>The inner selector.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-3" target="_blank" rel="noopener noreferrer">Func</a>(T, <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(U), R)</dt><dd>The result selector.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(T, U)  (Optional)</dt><dd>(Optional) The default generator.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd><dt /><dd>Generic type parameter.</dd><dt /><dd>Type of the key.</dd><dt /><dd>Type of the r.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(R)
An enumerator that allows foreach to be used to process left outter join in this collection.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="Overload_CapyKit_Extensions_LINQExtensions_LeftOuterJoin">LeftOuterJoin Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,91 @@
# LeftOuterJoin&lt;T, U, TKey, R&gt;(IQueryable&lt;T&gt;, IQueryable&lt;U&gt;, Expression&lt;Func&lt;T, TKey&gt;&gt;, Expression&lt;Func&lt;U, TKey&gt;&gt;, Func&lt;T, IEnumerable&lt;U&gt;, R&gt;, Func&lt;T, U&gt;) Method
An IQueryable&lt;T&gt; extension method that left outer join.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static IQueryable<R> LeftOuterJoin<T, U, TKey, R>(
this IQueryable<T> source,
IQueryable<U> inner,
Expression<Func<T, TKey>> outerSelector,
Expression<Func<U, TKey>> innerSelector,
Func<T, IEnumerable<U>, R> resultSelector,
Func<T, U> defaultGenerator = null
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function LeftOuterJoin(Of T, U, TKey, R) (
source As IQueryable(Of T),
inner As IQueryable(Of U),
outerSelector As Expression(Of Func(Of T, TKey)),
innerSelector As Expression(Of Func(Of U, TKey)),
resultSelector As Func(Of T, IEnumerable(Of U), R),
Optional defaultGenerator As Func(Of T, U) = Nothing
) As IQueryable(Of R)
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T, typename U, typename TKey, typename R>
static IQueryable<R>^ LeftOuterJoin(
IQueryable<T>^ source,
IQueryable<U>^ inner,
Expression<Func<T, TKey>^>^ outerSelector,
Expression<Func<U, TKey>^>^ innerSelector,
Func<T, IEnumerable<U>^, R>^ resultSelector,
Func<T, U>^ defaultGenerator = nullptr
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member LeftOuterJoin :
source : IQueryable<'T> *
inner : IQueryable<'U> *
outerSelector : Expression<Func<'T, 'TKey>> *
innerSelector : Expression<Func<'U, 'TKey>> *
resultSelector : Func<'T, IEnumerable<'U>, 'R> *
?defaultGenerator : Func<'T, 'U>
(* Defaults:
let _defaultGenerator = defaultArg defaultGenerator null
*)
-> IQueryable<'R>
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T)</dt><dd>The source to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(U)</dt><dd>The inner.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.expressions.expression-1" target="_blank" rel="noopener noreferrer">Expression</a>(<a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(T, TKey))</dt><dd>The outer selector.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.expressions.expression-1" target="_blank" rel="noopener noreferrer">Expression</a>(<a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(U, TKey))</dt><dd>The inner selector.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-3" target="_blank" rel="noopener noreferrer">Func</a>(T, <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(U), R)</dt><dd>The result selector.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(T, U)  (Optional)</dt><dd>(Optional) The default generator.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd><dt /><dd>Generic type parameter.</dd><dt /><dd>Type of the key.</dd><dt /><dd>Type of the r.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(R)
An IQueryable&lt;R&gt;
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="Overload_CapyKit_Extensions_LINQExtensions_LeftOuterJoin">LeftOuterJoin Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,78 @@
# PageCount&lt;T&gt;(IEnumerable&lt;T&gt;, Int32) Method
The number of pages of *pageSize* size in the given collection.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static int PageCount<T>(
this IEnumerable<T> source,
int pageSize
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function PageCount(Of T) (
source As IEnumerable(Of T),
pageSize As Integer
) As Integer
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T>
static int PageCount(
IEnumerable<T>^ source,
int pageSize
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member PageCount :
source : IEnumerable<'T> *
pageSize : int -> int
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T)</dt><dd>The source to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a></dt><dd>Size of the page.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a>
An int.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## Exceptions
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception" target="_blank" rel="noopener noreferrer">ArgumentOutOfRangeException</a></td>
<td>Thrown when <em>pageSize</em> is less than <code>1</code>.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="Overload_CapyKit_Extensions_LINQExtensions_PageCount">PageCount Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,78 @@
# PageCount&lt;T&gt;(IQueryable&lt;T&gt;, Int32) Method
The number of pages of *pageSize* size in the given collection.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static int PageCount<T>(
this IQueryable<T> source,
int pageSize
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function PageCount(Of T) (
source As IQueryable(Of T),
pageSize As Integer
) As Integer
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T>
static int PageCount(
IQueryable<T>^ source,
int pageSize
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member PageCount :
source : IQueryable<'T> *
pageSize : int -> int
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T)</dt><dd>The source to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a></dt><dd>Size of the page.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a>
An int.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## Exceptions
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception" target="_blank" rel="noopener noreferrer">ArgumentOutOfRangeException</a></td>
<td>Thrown when <em>pageSize</em> is less than <code>1</code>.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="Overload_CapyKit_Extensions_LINQExtensions_PageCount">PageCount Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,85 @@
# Page&lt;T&gt;(IEnumerable&lt;T&gt;, Int32, Int32) Method
Get a page of items from a collection, skipping *pageNumber* pages of *pageSize* items per page.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static IEnumerable<T> Page<T>(
this IEnumerable<T> source,
int pageNumber,
int pageSize
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function Page(Of T) (
source As IEnumerable(Of T),
pageNumber As Integer,
pageSize As Integer
) As IEnumerable(Of T)
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T>
static IEnumerable<T>^ Page(
IEnumerable<T>^ source,
int pageNumber,
int pageSize
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member Page :
source : IEnumerable<'T> *
pageNumber : int *
pageSize : int -> IEnumerable<'T>
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T)</dt><dd>The source to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a></dt><dd>The page number to retrieve.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a></dt><dd>Number of items per page.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T)
An enumerator that allows foreach to be used to process page in this collection.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## Remarks
This method uses natural numbering starting at page 1.
## Exceptions
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception" target="_blank" rel="noopener noreferrer">ArgumentOutOfRangeException</a></td>
<td>Thrown when <em>pageNumber</em> is less than <code>1</code> or if <em>pageSize</em> is less than <code>1</code>.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="Overload_CapyKit_Extensions_LINQExtensions_Page">Page Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,85 @@
# Page&lt;T&gt;(IQueryable&lt;T&gt;, Int32, Int32) Method
Get a page of items from a collection, skipping *pageNumber* pages of *pageSize* items per page.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static IQueryable<T> Page<T>(
this IQueryable<T> source,
int pageNumber,
int pageSize
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function Page(Of T) (
source As IQueryable(Of T),
pageNumber As Integer,
pageSize As Integer
) As IQueryable(Of T)
```
**C++**
``` C++
public:
[ExtensionAttribute]
generic<typename T>
static IQueryable<T>^ Page(
IQueryable<T>^ source,
int pageNumber,
int pageSize
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member Page :
source : IQueryable<'T> *
pageNumber : int *
pageSize : int -> IQueryable<'T>
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T)</dt><dd>The source to act on.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a></dt><dd>The page number to retrieve.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a></dt><dd>.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T)
An enumerator that allows foreach to be used to process page in this collection.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable</a>(T). When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## Remarks
This method uses natural numbering starting at page 1.
## Exceptions
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception" target="_blank" rel="noopener noreferrer">ArgumentOutOfRangeException</a></td>
<td>Thrown when <em>pageNumber</em> is less than <code>1</code> or if <em>pageSize</em> is less than <code>1</code>.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="Overload_CapyKit_Extensions_LINQExtensions_Page">Page Overload</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,66 @@
# IfNullOrEmpty Method
Replaces a null or empty string with a specified replacement string.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string IfNullOrEmpty(
this string value,
string replacement
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function IfNullOrEmpty (
value As String,
replacement As String
) As String
```
**C++**
``` C++
public:
[ExtensionAttribute]
static String^ IfNullOrEmpty(
String^ value,
String^ replacement
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member IfNullOrEmpty :
value : string *
replacement : string -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The original string.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The replacement string.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
The original string if not null or empty, otherwise the replacement string.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_StringExtensions">StringExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>
<a href="https://learn.microsoft.com/dotnet/api/system.string.isnullorempty" target="_blank" rel="noopener noreferrer">IsNullOrEmpty(String)</a>

View file

@ -0,0 +1,66 @@
# IfNullOrWhiteSpace Method
Replaces a null or whitespace string with a specified replacement string.
## Definition
**Namespace:** <a href="N_CapyKit_Extensions">CapyKit.Extensions</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string IfNullOrWhiteSpace(
this string value,
string replacement
)
```
**VB**
``` VB
<ExtensionAttribute>
Public Shared Function IfNullOrWhiteSpace (
value As String,
replacement As String
) As String
```
**C++**
``` C++
public:
[ExtensionAttribute]
static String^ IfNullOrWhiteSpace(
String^ value,
String^ replacement
)
```
**F#**
``` F#
[<ExtensionAttribute>]
static member IfNullOrWhiteSpace :
value : string *
replacement : string -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The original string.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The replacement string.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
The original string if not null or whitespace, otherwise the replacement string.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (Visual Basic)</a> or <a href="https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods" target="_blank" rel="noopener noreferrer">
Extension Methods (C# Programming Guide)</a>.
## See Also
#### Reference
<a href="T_CapyKit_Extensions_StringExtensions">StringExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>
<a href="https://learn.microsoft.com/dotnet/api/system.string.isnullorwhitespace" target="_blank" rel="noopener noreferrer">IsNullOrWhiteSpace(String)</a>

View file

@ -0,0 +1,51 @@
# Compress Method
Compresses a given object using the `gzip` algorithm.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static byte[] Compress(
Object obj
)
```
**VB**
``` VB
Public Shared Function Compress (
obj As Object
) As Byte()
```
**C++**
``` C++
public:
static array<unsigned char>^ Compress(
Object^ obj
)
```
**F#**
``` F#
static member Compress :
obj : Object -> byte[]
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a></dt><dd>The object.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.byte" target="_blank" rel="noopener noreferrer">Byte</a>[]
A byte array representing the compressed object in `gzip` format.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_CompressionHelper">CompressionHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,51 @@
# CompressToString Method
Compresses a given object to a string using `base64` encoding of `gzip` format.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string CompressToString(
Object obj
)
```
**VB**
``` VB
Public Shared Function CompressToString (
obj As Object
) As String
```
**C++**
``` C++
public:
static String^ CompressToString(
Object^ obj
)
```
**F#**
``` F#
static member CompressToString :
obj : Object -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a></dt><dd>The object.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
A string in `base64` encoding.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_CompressionHelper">CompressionHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,51 @@
# DecompressToString Method
Decompresses the given `base64` string in `gzip` format.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string DecompressToString(
string compressed
)
```
**VB**
``` VB
Public Shared Function DecompressToString (
compressed As String
) As String
```
**C++**
``` C++
public:
static String^ DecompressToString(
String^ compressed
)
```
**F#**
``` F#
static member DecompressToString :
compressed : string -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The compressed string.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
A decomressed string.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_CompressionHelper">CompressionHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,57 @@
# Decompress&lt;T&gt;(Byte[]) Method
Decompresses a given compressed `gzip` byte stream.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static T Decompress<T>(
byte[] byteStream
)
```
**VB**
``` VB
Public Shared Function Decompress(Of T) (
byteStream As Byte()
) As T
```
**C++**
``` C++
public:
generic<typename T>
static T Decompress(
array<unsigned char>^ byteStream
)
```
**F#**
``` F#
static member Decompress :
byteStream : byte[] -> 'T
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.byte" target="_blank" rel="noopener noreferrer">Byte</a>[]</dt><dd>The compressed byte stream.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
T
A *T* typed object.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_CompressionHelper">CompressionHelper Class</a>
<a href="Overload_CapyKit_Helpers_CompressionHelper_Decompress">Decompress Overload</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,57 @@
# Decompress&lt;T&gt;(String) Method
Decompresses a given `base64` encoded string of `gzip` format.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static T Decompress<T>(
string encodedString
)
```
**VB**
``` VB
Public Shared Function Decompress(Of T) (
encodedString As String
) As T
```
**C++**
``` C++
public:
generic<typename T>
static T Decompress(
String^ encodedString
)
```
**F#**
``` F#
static member Decompress :
encodedString : string -> 'T
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The <code>base64</code> encoded <code>gzip</code> string.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
T
A *T* typed object.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_CompressionHelper">CompressionHelper Class</a>
<a href="Overload_CapyKit_Helpers_CompressionHelper_Decompress">Decompress Overload</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,51 @@
# CamelCaseToHumanReadable Method
Converts camel case text to human readable text.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string CamelCaseToHumanReadable(
string value
)
```
**VB**
``` VB
Public Shared Function CamelCaseToHumanReadable (
value As String
) As String
```
**C++**
``` C++
public:
static String^ CamelCaseToHumanReadable(
String^ value
)
```
**F#**
``` F#
static member CamelCaseToHumanReadable :
value : string -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The value.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
A string in human readable format.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_LanguageHelper">LanguageHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,37 @@
# LanguageHelper Constructor
Initializes a new instance of the <a href="T_CapyKit_Helpers_LanguageHelper">LanguageHelper</a> class
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public LanguageHelper()
```
**VB**
``` VB
Public Sub New
```
**C++**
``` C++
public:
LanguageHelper()
```
**F#**
``` F#
new : unit -> LanguageHelper
```
## See Also
#### Reference
<a href="T_CapyKit_Helpers_LanguageHelper">LanguageHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,55 @@
# CompareHashedPassword Method
Compares an unencrypted *providedPassword* with a stored, encrypted *existingPassword*.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static bool CompareHashedPassword(
string providedPassword,
string existingPassword
)
```
**VB**
``` VB
Public Shared Function CompareHashedPassword (
providedPassword As String,
existingPassword As String
) As Boolean
```
**C++**
``` C++
public:
static bool CompareHashedPassword(
String^ providedPassword,
String^ existingPassword
)
```
**F#**
``` F#
static member CompareHashedPassword :
providedPassword : string *
existingPassword : string -> bool
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The provided password, unencrypted.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The existing, encrypted password.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.boolean" target="_blank" rel="noopener noreferrer">Boolean</a>
true if hash comparison succeeds, false if it fails.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,55 @@
# CompareSessionID Method
Compares two session identifiers.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static bool CompareSessionID(
string first,
string second
)
```
**VB**
``` VB
Public Shared Function CompareSessionID (
first As String,
second As String
) As Boolean
```
**C++**
``` C++
public:
static bool CompareSessionID(
String^ first,
String^ second
)
```
**F#**
``` F#
static member CompareSessionID :
first : string *
second : string -> bool
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The first session identifier.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The second session identifier.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.boolean" target="_blank" rel="noopener noreferrer">Boolean</a>
true if comparison succeeds, false if not.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,41 @@
# GetCalendarKey Method
Gets a calendar key that is `32` characters long.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string GetCalendarKey()
```
**VB**
``` VB
Public Shared Function GetCalendarKey As String
```
**C++**
``` C++
public:
static String^ GetCalendarKey()
```
**F#**
``` F#
static member GetCalendarKey : unit -> string
```
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
The calendar key.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,51 @@
# GetRandomPassword Method
Gets a cryptographically strong random password.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string GetRandomPassword(
int length
)
```
**VB**
``` VB
Public Shared Function GetRandomPassword (
length As Integer
) As String
```
**C++**
``` C++
public:
static String^ GetRandomPassword(
int length
)
```
**F#**
``` F#
static member GetRandomPassword :
length : int -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a></dt><dd>The length of the password to generate.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
The password.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,51 @@
# HashPassword Method
Hashes an unencrypted password.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string HashPassword(
string password
)
```
**VB**
``` VB
Public Shared Function HashPassword (
password As String
) As String
```
**C++**
``` C++
public:
static String^ HashPassword(
String^ password
)
```
**F#**
``` F#
static member HashPassword :
password : string -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The password.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
The hashed password.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,55 @@
# Pbkdf2 Method
\[Missing &lt;summary&gt; documentation for "M:CapyKit.Helpers.SecurityHelper.Pbkdf2(System.String,System.Byte[]@)"\]
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string Pbkdf2(
string password,
out byte[] salt
)
```
**VB**
``` VB
Public Shared Function Pbkdf2 (
password As String,
<OutAttribute> ByRef salt As Byte()
) As String
```
**C++**
``` C++
public:
static String^ Pbkdf2(
String^ password,
[OutAttribute] array<unsigned char>^% salt
)
```
**F#**
``` F#
static member Pbkdf2 :
password : string *
salt : byte[] byref -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>\[Missing &lt;param name="password"/&gt; documentation for "M:CapyKit.Helpers.SecurityHelper.Pbkdf2(System.String,System.Byte[]@)"\]</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.byte" target="_blank" rel="noopener noreferrer">Byte</a>[]</dt><dd>\[Missing &lt;param name="salt"/&gt; documentation for "M:CapyKit.Helpers.SecurityHelper.Pbkdf2(System.String,System.Byte[]@)"\]</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
\[Missing &lt;returns&gt; documentation for "M:CapyKit.Helpers.SecurityHelper.Pbkdf2(System.String,System.Byte[]@)"\]
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,51 @@
# SHA256Hash Method
Produces a <a href="https://en.wikipedia.org/wiki/SHA-2">SHA256</a> hash from a given *value*.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static byte[] SHA256Hash(
string value
)
```
**VB**
``` VB
Public Shared Function SHA256Hash (
value As String
) As Byte()
```
**C++**
``` C++
public:
static array<unsigned char>^ SHA256Hash(
String^ value
)
```
**F#**
``` F#
static member SHA256Hash :
value : string -> byte[]
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The value.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.byte" target="_blank" rel="noopener noreferrer">Byte</a>[]
A byte array equal to the SHA256 hash of *value* or an empty array if it fails.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,37 @@
# SecurityHelper Constructor
Initializes a new instance of the <a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper</a> class
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public SecurityHelper()
```
**VB**
``` VB
Public Sub New
```
**C++**
``` C++
public:
SecurityHelper()
```
**F#**
``` F#
new : unit -> SecurityHelper
```
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,64 @@
# Deserialize&lt;T&gt;(Byte[]) Method
Deserializes an object to a given *T* type.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static T Deserialize<T>(
byte[] bytes
)
```
**VB**
``` VB
Public Shared Function Deserialize(Of T) (
bytes As Byte()
) As T
```
**C++**
``` C++
public:
generic<typename T>
static T Deserialize(
array<unsigned char>^ bytes
)
```
**F#**
``` F#
static member Deserialize :
bytes : byte[] -> 'T
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.byte" target="_blank" rel="noopener noreferrer">Byte</a>[]</dt><dd>The byte array representing a <em>T</em> object.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
T
A *T* object.
## Exceptions
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.formatexception" target="_blank" rel="noopener noreferrer">FormatException</a></td>
<td>Thrown when the format of the byte array is incorrect.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SerializationHelper">SerializationHelper Class</a>
<a href="Overload_CapyKit_Helpers_SerializationHelper_Deserialize">Deserialize Overload</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,64 @@
# Deserialize&lt;T&gt;(Stream) Method
Deserializes an object to a given *T* type.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static T Deserialize<T>(
Stream stream
)
```
**VB**
``` VB
Public Shared Function Deserialize(Of T) (
stream As Stream
) As T
```
**C++**
``` C++
public:
generic<typename T>
static T Deserialize(
Stream^ stream
)
```
**F#**
``` F#
static member Deserialize :
stream : Stream -> 'T
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.io.stream" target="_blank" rel="noopener noreferrer">Stream</a></dt><dd>The steam.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
T
A *T* object.
## Exceptions
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.formatexception" target="_blank" rel="noopener noreferrer">FormatException</a></td>
<td>Thrown when the format of an input is incorrect.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SerializationHelper">SerializationHelper Class</a>
<a href="Overload_CapyKit_Helpers_SerializationHelper_Deserialize">Deserialize Overload</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,57 @@
# Deserialize&lt;T&gt;(String) Method
Deserializes a `JSON` encoded string to the given *T*.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static T Deserialize<T>(
string str
)
```
**VB**
``` VB
Public Shared Function Deserialize(Of T) (
str As String
) As T
```
**C++**
``` C++
public:
generic<typename T>
static T Deserialize(
String^ str
)
```
**F#**
``` F#
static member Deserialize :
str : string -> 'T
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The <code>JSON</code> encoded string representing a <em>T</em> object.</dd></dl>
#### Type Parameters
<dl><dt /><dd>Generic type parameter.</dd></dl>
#### Return Value
T
A *T* object.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SerializationHelper">SerializationHelper Class</a>
<a href="Overload_CapyKit_Helpers_SerializationHelper_Deserialize">Deserialize Overload</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,51 @@
# SerializeToBytes Method
Serializes an object to a byte array.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static byte[] SerializeToBytes(
Object obj
)
```
**VB**
``` VB
Public Shared Function SerializeToBytes (
obj As Object
) As Byte()
```
**C++**
``` C++
public:
static array<unsigned char>^ SerializeToBytes(
Object^ obj
)
```
**F#**
``` F#
static member SerializeToBytes :
obj : Object -> byte[]
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a></dt><dd>The object.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.byte" target="_blank" rel="noopener noreferrer">Byte</a>[]
A `JSON` encoded string.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SerializationHelper">SerializationHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,51 @@
# SerializeToString Method
Serializes an object to a `JSON` encoded string.
## Definition
**Namespace:** <a href="N_CapyKit_Helpers">CapyKit.Helpers</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public static string SerializeToString(
Object obj
)
```
**VB**
``` VB
Public Shared Function SerializeToString (
obj As Object
) As String
```
**C++**
``` C++
public:
static String^ SerializeToString(
Object^ obj
)
```
**F#**
``` F#
static member SerializeToString :
obj : Object -> string
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a></dt><dd>The object.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
A `JSON` encoded string.
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SerializationHelper">SerializationHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,62 @@
# Compare Method
Compares the given plaintext password with an encrypted value using PBKDF2 algorithm.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
bool Compare(
string password,
byte[] encryptedValue,
params Object[] args
)
```
**VB**
``` VB
Function Compare (
password As String,
encryptedValue As Byte(),
ParamArray args As Object()
) As Boolean
```
**C++**
``` C++
bool Compare(
String^ password,
array<unsigned char>^ encryptedValue,
... array<Object^>^ args
)
```
**F#**
``` F#
abstract Compare :
password : string *
encryptedValue : byte[] *
args : Object[] -> bool
override Compare :
password : string *
encryptedValue : byte[] *
args : Object[] -> bool
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The plaintext password to compare.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.byte" target="_blank" rel="noopener noreferrer">Byte</a>[]</dt><dd>The encrypted value to compare against.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>[]</dt><dd>Additional arguments for the encryption process, such as salt and length.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.boolean" target="_blank" rel="noopener noreferrer">Boolean</a>
True if the given *password* matches the *encryptedValue*, false if they are different.
## See Also
#### Reference
<a href="T_CapyKit_IPasswordAlgorithm">IPasswordAlgorithm Interface</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,54 @@
# Encrypt Method
Encrypts the given password using a defined algorithm.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
byte[] Encrypt(
string password,
params Object[] args
)
```
**VB**
``` VB
Function Encrypt (
password As String,
ParamArray args As Object()
) As Byte()
```
**C++**
``` C++
array<unsigned char>^ Encrypt(
String^ password,
... array<Object^>^ args
)
```
**F#**
``` F#
abstract Encrypt :
password : string *
args : Object[] -> byte[]
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The plaintext password.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>[]</dt><dd>Additional arguments for the encryption process, such as salt and length.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.byte" target="_blank" rel="noopener noreferrer">Byte</a>[]
A byte array with the hashed *password*.
## See Also
#### Reference
<a href="T_CapyKit_IPasswordAlgorithm">IPasswordAlgorithm Interface</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,42 @@
# ToString Method
Returns a string that represents the current object.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public override string ToString()
```
**VB**
``` VB
Public Overrides Function ToString As String
```
**C++**
``` C++
public:
virtual String^ ToString() override
```
**F#**
``` F#
abstract ToString : unit -> string
override ToString : unit -> string
```
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
A string that represents the current object.
## See Also
#### Reference
<a href="T_CapyKit_Password">Password Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,64 @@
# Encrypt Method
Encrypts the given password using a PBKDF2 algorithm.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public byte[] Encrypt(
string password,
params Object[] args
)
```
**VB**
``` VB
Public Function Encrypt (
password As String,
ParamArray args As Object()
) As Byte()
```
**C++**
``` C++
public:
virtual array<unsigned char>^ Encrypt(
String^ password,
... array<Object^>^ args
) sealed
```
**F#**
``` F#
abstract Encrypt :
password : string *
args : Object[] -> byte[]
override Encrypt :
password : string *
args : Object[] -> byte[]
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a></dt><dd>The plaintext password.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>[]</dt><dd>Additional arguments for the encryption process, specifically <ol><li><code>salt</code></li><li><code>length</code></li><li><code>iterations</code></li></ol>
</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.byte" target="_blank" rel="noopener noreferrer">Byte</a>[]
A byte array with the hashed *password*.
#### Implements
<a href="M_CapyKit_IPasswordAlgorithm_Encrypt">IPasswordAlgorithm.Encrypt(String, Object[])</a>
## See Also
#### Reference
<a href="T_CapyKit_Pbkdf2Algorithm">Pbkdf2Algorithm Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,37 @@
# Pbkdf2Algorithm Constructor
Initializes a new instance of the <a href="T_CapyKit_Pbkdf2Algorithm">Pbkdf2Algorithm</a> class
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public Pbkdf2Algorithm()
```
**VB**
``` VB
Public Sub New
```
**C++**
``` C++
public:
Pbkdf2Algorithm()
```
**F#**
``` F#
new : unit -> Pbkdf2Algorithm
```
## See Also
#### Reference
<a href="T_CapyKit_Pbkdf2Algorithm">Pbkdf2Algorithm Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,40 @@
# ReleaseLock Method
Releases the lock on the item.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public void ReleaseLock()
```
**VB**
``` VB
Public Sub ReleaseLock
```
**C++**
``` C++
public:
void ReleaseLock()
```
**F#**
``` F#
member ReleaseLock : unit -> unit
```
## Remarks
If the item is not locked, an error event is emitted.
## See Also
#### Reference
<a href="T_CapyKit_PoolItem_1">PoolItem(T) Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,44 @@
# SetLock Method
Sets the lock on the item indicating that it is in use.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public bool SetLock()
```
**VB**
``` VB
Public Function SetLock As Boolean
```
**C++**
``` C++
public:
bool SetLock()
```
**F#**
``` F#
member SetLock : unit -> bool
```
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.boolean" target="_blank" rel="noopener noreferrer">Boolean</a>
true if the item is locked successfully, false if it fails.
## Remarks
If the item is already locked, an error event is emitted.
## See Also
#### Reference
<a href="T_CapyKit_PoolItem_1">PoolItem(T) Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,42 @@
# ToString Method
Returns a string that represents the current object and its lock state.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public override string ToString()
```
**VB**
``` VB
Public Overrides Function ToString As String
```
**C++**
``` C++
public:
virtual String^ ToString() override
```
**F#**
``` F#
abstract ToString : unit -> string
override ToString : unit -> string
```
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a>
A string that represents the current object and its lock state.
## See Also
#### Reference
<a href="T_CapyKit_PoolItem_1">PoolItem(T) Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,41 @@
# GetAvailableItem Method
Gets the first available item from the pool and sets its lock.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public PoolItem<T> GetAvailableItem()
```
**VB**
``` VB
Public Function GetAvailableItem As PoolItem(Of T)
```
**C++**
``` C++
public:
PoolItem<T>^ GetAvailableItem()
```
**F#**
``` F#
member GetAvailableItem : unit -> PoolItem<'T>
```
#### Return Value
<a href="T_CapyKit_PoolItem_1">PoolItem</a>(<a href="T_CapyKit_Pool_1">T</a>)
The first available item from the pool.
## See Also
#### Reference
<a href="T_CapyKit_Pool_1">Pool(T) Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,50 @@
# ReleaseItem Method
Releases the lock on the specified item and returns it to the pool.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public void ReleaseItem(
PoolItem<T> item
)
```
**VB**
``` VB
Public Sub ReleaseItem (
item As PoolItem(Of T)
)
```
**C++**
``` C++
public:
void ReleaseItem(
PoolItem<T>^ item
)
```
**F#**
``` F#
member ReleaseItem :
item : PoolItem<'T> -> unit
```
#### Parameters
<dl><dt>  <a href="T_CapyKit_PoolItem_1">PoolItem</a>(<a href="T_CapyKit_Pool_1">T</a>)</dt><dd>The item to release.</dd></dl>
## Remarks
This method sets the <a href="P_CapyKit_PoolItem_1_Locked">Locked</a> flag to false so that it can be retrieved by <a href="M_CapyKit_Pool_1_GetAvailableItem">GetAvailableItem()</a>.
## See Also
#### Reference
<a href="T_CapyKit_Pool_1">Pool(T) Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,48 @@
# Pool&lt;T&gt;(IEnumerable&lt;T&gt;) Constructor
Initializes a new instance of the <a href="T_CapyKit_Pool_1">Pool(T)</a> class with the specified collection of items.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public Pool(
IEnumerable<T> collection
)
```
**VB**
``` VB
Public Sub New (
collection As IEnumerable(Of T)
)
```
**C++**
``` C++
public:
Pool(
IEnumerable<T>^ collection
)
```
**F#**
``` F#
new :
collection : IEnumerable<'T> -> Pool
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable</a>(<a href="T_CapyKit_Pool_1">T</a>)</dt><dd>The collection of <em>T</em> items with which to seed the pool.</dd></dl>
## See Also
#### Reference
<a href="T_CapyKit_Pool_1">Pool(T) Class</a>
<a href="Overload_CapyKit_Pool_1__ctor">Pool(T) Overload</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,48 @@
# Pool&lt;T&gt;(Int32) Constructor
Initializes a new instance of the <a href="T_CapyKit_Pool_1">Pool(T)</a> class with the specified pool size.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public Pool(
int poolSize
)
```
**VB**
``` VB
Public Sub New (
poolSize As Integer
)
```
**C++**
``` C++
public:
Pool(
int poolSize
)
```
**F#**
``` F#
new :
poolSize : int -> Pool
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a></dt><dd>The size of the pool.</dd></dl>
## See Also
#### Reference
<a href="T_CapyKit_Pool_1">Pool(T) Class</a>
<a href="Overload_CapyKit_Pool_1__ctor">Pool(T) Overload</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,52 @@
# Pool&lt;T&gt;(Int32, Func&lt;T&gt;) Constructor
Initializes a new instance of the <a href="T_CapyKit_Pool_1">Pool(T)</a> class with the specified pool size and constructor selector.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public Pool(
int poolSize,
Func<T> constructorSelector
)
```
**VB**
``` VB
Public Sub New (
poolSize As Integer,
constructorSelector As Func(Of T)
)
```
**C++**
``` C++
public:
Pool(
int poolSize,
Func<T>^ constructorSelector
)
```
**F#**
``` F#
new :
poolSize : int *
constructorSelector : Func<'T> -> Pool
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a></dt><dd>The size of the pool.</dd><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-1" target="_blank" rel="noopener noreferrer">Func</a>(<a href="T_CapyKit_Pool_1">T</a>)</dt><dd>The constructor selector used to create new instances of <em>T</em>.</dd></dl>
## See Also
#### Reference
<a href="T_CapyKit_Pool_1">Pool(T) Class</a>
<a href="Overload_CapyKit_Pool_1__ctor">Pool(T) Overload</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,63 @@
# Equals(T, T) Method
Determines whether the specified properties are equal.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public bool Equals(
T x,
T y
)
```
**VB**
``` VB
Public Function Equals (
x As T,
y As T
) As Boolean
```
**C++**
``` C++
public:
virtual bool Equals(
T x,
T y
) sealed
```
**F#**
``` F#
abstract Equals :
x : 'T *
y : 'T -> bool
override Equals :
x : 'T *
y : 'T -> bool
```
#### Parameters
<dl><dt>  <a href="T_CapyKit_PropertyComparer_2">T</a></dt><dd>The first object of type <em>T</em> to compare.</dd><dt>  <a href="T_CapyKit_PropertyComparer_2">T</a></dt><dd>The second object of type <em>T</em> to compare.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.boolean" target="_blank" rel="noopener noreferrer">Boolean</a>
true if the specified objects are equal; otherwise, false.
#### Implements
<a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.iequalitycomparer-1.equals" target="_blank" rel="noopener noreferrer">IEqualityComparer(T).Equals(T, T)</a>
## See Also
#### Reference
<a href="T_CapyKit_PropertyComparer_2">PropertyComparer(T, U) Class</a>
<a href="Overload_CapyKit_PropertyComparer_2_Equals">Equals Overload</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,65 @@
# GetHashCode(T) Method
Returns a hash code for the specified object.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public int GetHashCode(
T obj
)
```
**VB**
``` VB
Public Function GetHashCode (
obj As T
) As Integer
```
**C++**
``` C++
public:
virtual int GetHashCode(
T obj
) sealed
```
**F#**
``` F#
abstract GetHashCode :
obj : 'T -> int
override GetHashCode :
obj : 'T -> int
```
#### Parameters
<dl><dt>  <a href="T_CapyKit_PropertyComparer_2">T</a></dt><dd>The <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a> for which a hash code is to be returned.</dd></dl>
#### Return Value
<a href="https://learn.microsoft.com/dotnet/api/system.int32" target="_blank" rel="noopener noreferrer">Int32</a>
A hash code for the specified object.
#### Implements
<a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.iequalitycomparer-1.gethashcode" target="_blank" rel="noopener noreferrer">IEqualityComparer(T).GetHashCode(T)</a>
## Exceptions
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.argumentnullexception" target="_blank" rel="noopener noreferrer">ArgumentNullException</a></td>
<td>The type of <em>obj</em> is a reference type and <em>obj</em> is null.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_PropertyComparer_2">PropertyComparer(T, U) Class</a>
<a href="Overload_CapyKit_PropertyComparer_2_GetHashCode">GetHashCode Overload</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,47 @@
# PropertyComparer&lt;T, U&gt; Constructor
Constructor.
## Definition
**Namespace:** <a href="N_CapyKit">CapyKit</a>
**Assembly:** CapyKit (in CapyKit.dll) Version: 1.0.0+6cdd805be49c3b769a116584ea6904955ecd820d
**C#**
``` C#
public PropertyComparer(
Func<T, U> expression
)
```
**VB**
``` VB
Public Sub New (
expression As Func(Of T, U)
)
```
**C++**
``` C++
public:
PropertyComparer(
Func<T, U>^ expression
)
```
**F#**
``` F#
new :
expression : Func<'T, 'U> -> PropertyComparer
```
#### Parameters
<dl><dt>  <a href="https://learn.microsoft.com/dotnet/api/system.func-2" target="_blank" rel="noopener noreferrer">Func</a>(<a href="T_CapyKit_PropertyComparer_2">T</a>, <a href="T_CapyKit_PropertyComparer_2">U</a>)</dt><dd>The expression.</dd></dl>
## See Also
#### Reference
<a href="T_CapyKit_PropertyComparer_2">PropertyComparer(T, U) Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,39 @@
# EnumerationAttribute&lt;T&gt; Methods
## Methods
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.attribute.equals" target="_blank" rel="noopener noreferrer">Equals</a></td>
<td>Returns a value that indicates whether this instance is equal to a specified object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.attribute" target="_blank" rel="noopener noreferrer">Attribute</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.finalize" target="_blank" rel="noopener noreferrer">Finalize</a></td>
<td>Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.attribute.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode</a></td>
<td>Returns the hash code for this instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.attribute" target="_blank" rel="noopener noreferrer">Attribute</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefaultattribute" target="_blank" rel="noopener noreferrer">IsDefaultAttribute</a></td>
<td>When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.attribute" target="_blank" rel="noopener noreferrer">Attribute</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.attribute.match" target="_blank" rel="noopener noreferrer">Match</a></td>
<td>When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.attribute" target="_blank" rel="noopener noreferrer">Attribute</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone" target="_blank" rel="noopener noreferrer">MemberwiseClone</a></td>
<td>Creates a shallow copy of the current <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">ToString</a></td>
<td>Returns a string that represents the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Attributes_EnumerationAttribute_1">EnumerationAttribute(T) Class</a>
<a href="N_CapyKit_Attributes">CapyKit.Attributes Namespace</a>

View file

@ -0,0 +1,39 @@
# EnumerationDescriptionAttribute Methods
## Methods
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.attribute.equals" target="_blank" rel="noopener noreferrer">Equals</a></td>
<td>Returns a value that indicates whether this instance is equal to a specified object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.attribute" target="_blank" rel="noopener noreferrer">Attribute</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.finalize" target="_blank" rel="noopener noreferrer">Finalize</a></td>
<td>Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.attribute.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode</a></td>
<td>Returns the hash code for this instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.attribute" target="_blank" rel="noopener noreferrer">Attribute</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefaultattribute" target="_blank" rel="noopener noreferrer">IsDefaultAttribute</a></td>
<td>When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.attribute" target="_blank" rel="noopener noreferrer">Attribute</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.attribute.match" target="_blank" rel="noopener noreferrer">Match</a></td>
<td>When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.attribute" target="_blank" rel="noopener noreferrer">Attribute</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone" target="_blank" rel="noopener noreferrer">MemberwiseClone</a></td>
<td>Creates a shallow copy of the current <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">ToString</a></td>
<td>Returns a string that represents the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Attributes_EnumerationDescriptionAttribute">EnumerationDescriptionAttribute Class</a>
<a href="N_CapyKit_Attributes">CapyKit.Attributes Namespace</a>

View file

@ -0,0 +1,33 @@
# CapyEventArgs Methods
## Methods
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)" target="_blank" rel="noopener noreferrer">Equals</a></td>
<td>Determines whether the specified object is equal to the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.finalize" target="_blank" rel="noopener noreferrer">Finalize</a></td>
<td>Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode</a></td>
<td>Serves as the default hash function.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone" target="_blank" rel="noopener noreferrer">MemberwiseClone</a></td>
<td>Creates a shallow copy of the current <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">ToString</a></td>
<td>Returns a string that represents the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_CapyEventArgs">CapyEventArgs Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,21 @@
# CapyEventReporter Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_CapyEventReporter_Subscribe">Subscribe</a></td>
<td>Subscribes the specified event handler to the event with the given subscription level and origin.</td></tr>
<tr>
<td><a href="M_CapyKit_CapyEventReporter_Unsubscribe">Unsubscribe</a></td>
<td>Unsubscribes the specified event handler from the event with the given origin.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_CapyEventReporter">CapyEventReporter Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,33 @@
# EnumerationExtensions Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_Extensions_EnumerationExtensions_GetDescription">GetDescription</a></td>
<td>An <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a> extension method that gets a description.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_EnumerationExtensions_GetName">GetName</a></td>
<td>An <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a> extension method that gets a name.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_EnumerationExtensions_GetPrettyName">GetPrettyName</a></td>
<td>An <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a> extension method that gets a human readable name.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_EnumerationExtensions_GetValue">GetValue</a></td>
<td>An <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a> extension method that gets an integer value representing the enumation.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_EnumerationExtensions_Parse__1">Parse(T)(T, String)</a></td>
<td>A <em>T</em> extension method that parses a string into an enumeration.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_EnumerationExtensions_Parse__1_1">Parse(T)(T, String, Boolean)</a></td>
<td>A <em>T</em> extension method that parses a string into an enumeration.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_EnumerationExtensions">EnumerationExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,42 @@
# LINQExtensions Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_Distinct__2">Distinct(T, U)</a></td>
<td>Enumerates distinct items in this collection as defined by the key <em>property</em>.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_Filter__1">Filter(T)(IEnumerable(T), Func(T, Boolean))</a></td>
<td>Filters out items matching a <em>predicate</em> from the collection.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_Filter__1_1">Filter(T)(IQueryable(T), Expression(Func(T, Boolean)))</a></td>
<td>Filters out items matching a <em>predicate</em> from the collection.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_LeftOuterJoin__4">LeftOuterJoin(T, U, TKey, R)(IEnumerable(T), IEnumerable(U), Func(T, TKey), Func(U, TKey), Func(T, IEnumerable(U), R), Func(T, U))</a></td>
<td>An IEnumable&lt;T&gt; extension method that left outer join.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_LeftOuterJoin__4_1">LeftOuterJoin(T, U, TKey, R)(IQueryable(T), IQueryable(U), Expression(Func(T, TKey)), Expression(Func(U, TKey)), Func(T, IEnumerable(U), R), Func(T, U))</a></td>
<td>An IQueryable&lt;T&gt; extension method that left outer join.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_Page__1">Page(T)(IEnumerable(T), Int32, Int32)</a></td>
<td>Get a page of items from a collection, skipping <em>pageNumber</em> pages of <em>pageSize</em> items per page.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_Page__1_1">Page(T)(IQueryable(T), Int32, Int32)</a></td>
<td>Get a page of items from a collection, skipping <em>pageNumber</em> pages of <em>pageSize</em> items per page.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_PageCount__1">PageCount(T)(IEnumerable(T), Int32)</a></td>
<td>The number of pages of <em>pageSize</em> size in the given collection.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_PageCount__1_1">PageCount(T)(IQueryable(T), Int32)</a></td>
<td>The number of pages of <em>pageSize</em> size in the given collection.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,21 @@
# StringExtensions Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_Extensions_StringExtensions_IfNullOrEmpty">IfNullOrEmpty</a></td>
<td>Replaces a null or empty string with a specified replacement string.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_StringExtensions_IfNullOrWhiteSpace">IfNullOrWhiteSpace</a></td>
<td>Replaces a null or whitespace string with a specified replacement string.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_StringExtensions">StringExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,30 @@
# CompressionHelper Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_Helpers_CompressionHelper_Compress">Compress</a></td>
<td>Compresses a given object using the <code>gzip</code> algorithm.</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_CompressionHelper_CompressToString">CompressToString</a></td>
<td>Compresses a given object to a string using <code>base64</code> encoding of <code>gzip</code> format.</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_CompressionHelper_Decompress__1">Decompress(T)(Byte[])</a></td>
<td>Decompresses a given compressed <code>gzip</code> byte stream.</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_CompressionHelper_Decompress__1_1">Decompress(T)(String)</a></td>
<td>Decompresses a given <code>base64</code> encoded string of <code>gzip</code> format.</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_CompressionHelper_DecompressToString">DecompressToString</a></td>
<td>Decompresses the given <code>base64</code> string in <code>gzip</code> format.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Helpers_CompressionHelper">CompressionHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,36 @@
# LanguageHelper Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_Helpers_LanguageHelper_CamelCaseToHumanReadable">CamelCaseToHumanReadable</a></td>
<td>Converts camel case text to human readable text.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)" target="_blank" rel="noopener noreferrer">Equals</a></td>
<td>Determines whether the specified object is equal to the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.finalize" target="_blank" rel="noopener noreferrer">Finalize</a></td>
<td>Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode</a></td>
<td>Serves as the default hash function.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone" target="_blank" rel="noopener noreferrer">MemberwiseClone</a></td>
<td>Creates a shallow copy of the current <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">ToString</a></td>
<td>Returns a string that represents the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Helpers_LanguageHelper">LanguageHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,54 @@
# SecurityHelper Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_Helpers_SecurityHelper_CompareHashedPassword">CompareHashedPassword</a></td>
<td>Compares an unencrypted <em>providedPassword</em> with a stored, encrypted <em>existingPassword</em>.</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SecurityHelper_CompareSessionID">CompareSessionID</a></td>
<td>Compares two session identifiers.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)" target="_blank" rel="noopener noreferrer">Equals</a></td>
<td>Determines whether the specified object is equal to the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.finalize" target="_blank" rel="noopener noreferrer">Finalize</a></td>
<td>Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SecurityHelper_GetCalendarKey">GetCalendarKey</a></td>
<td>Gets a calendar key that is <code>32</code> characters long.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode</a></td>
<td>Serves as the default hash function.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SecurityHelper_GetRandomPassword">GetRandomPassword</a></td>
<td>Gets a cryptographically strong random password.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SecurityHelper_HashPassword">HashPassword</a></td>
<td>Hashes an unencrypted password.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone" target="_blank" rel="noopener noreferrer">MemberwiseClone</a></td>
<td>Creates a shallow copy of the current <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SecurityHelper_Pbkdf2">Pbkdf2</a></td>
<td> </td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SecurityHelper_SHA256Hash">SHA256Hash</a></td>
<td>Produces a <a href="https://en.wikipedia.org/wiki/SHA-2">SHA256</a> hash from a given <em>value</em>.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">ToString</a></td>
<td>Returns a string that represents the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,30 @@
# SerializationHelper Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_Helpers_SerializationHelper_Deserialize__1">Deserialize(T)(Byte[])</a></td>
<td>Deserializes an object to a given <em>T</em> type.</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SerializationHelper_Deserialize__1_1">Deserialize(T)(Stream)</a></td>
<td>Deserializes an object to a given <em>T</em> type.</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SerializationHelper_Deserialize__1_2">Deserialize(T)(String)</a></td>
<td>Deserializes a <code>JSON</code> encoded string to the given <em>T</em>.</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SerializationHelper_SerializeToBytes">SerializeToBytes</a></td>
<td>Serializes an object to a byte array.</td></tr>
<tr>
<td><a href="M_CapyKit_Helpers_SerializationHelper_SerializeToString">SerializeToString</a></td>
<td>Serializes an object to a <code>JSON</code> encoded string.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Helpers_SerializationHelper">SerializationHelper Class</a>
<a href="N_CapyKit_Helpers">CapyKit.Helpers Namespace</a>

View file

@ -0,0 +1,21 @@
# IPasswordAlgorithm Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_IPasswordAlgorithm_Compare">Compare</a></td>
<td>Compares the given plaintext password with an encrypted value using PBKDF2 algorithm.</td></tr>
<tr>
<td><a href="M_CapyKit_IPasswordAlgorithm_Encrypt">Encrypt</a></td>
<td>Encrypts the given password using a defined algorithm.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_IPasswordAlgorithm">IPasswordAlgorithm Interface</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,33 @@
# Password Methods
## Methods
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)" target="_blank" rel="noopener noreferrer">Equals</a></td>
<td>Determines whether the specified object is equal to the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.finalize" target="_blank" rel="noopener noreferrer">Finalize</a></td>
<td>Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode</a></td>
<td>Serves as the default hash function.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone" target="_blank" rel="noopener noreferrer">MemberwiseClone</a></td>
<td>Creates a shallow copy of the current <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_Password_ToString">ToString</a></td>
<td>Returns a string that represents the current object.<br />(Overrides <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">Object.ToString()</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Password">Password Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,36 @@
# Pbkdf2Algorithm Methods
## Methods
<table>
<tr>
<td><a href="M_CapyKit_Pbkdf2Algorithm_Encrypt">Encrypt</a></td>
<td>Encrypts the given password using a PBKDF2 algorithm.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)" target="_blank" rel="noopener noreferrer">Equals</a></td>
<td>Determines whether the specified object is equal to the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.finalize" target="_blank" rel="noopener noreferrer">Finalize</a></td>
<td>Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode</a></td>
<td>Serves as the default hash function.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone" target="_blank" rel="noopener noreferrer">MemberwiseClone</a></td>
<td>Creates a shallow copy of the current <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">ToString</a></td>
<td>Returns a string that represents the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Pbkdf2Algorithm">Pbkdf2Algorithm Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,33 @@
# PoolItem&lt;T&gt; Methods
## Methods
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)" target="_blank" rel="noopener noreferrer">Equals</a></td>
<td>Determines whether the specified object is equal to the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode</a></td>
<td>Serves as the default hash function.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_PoolItem_1_ReleaseLock">ReleaseLock</a></td>
<td>Releases the lock on the item.</td></tr>
<tr>
<td><a href="M_CapyKit_PoolItem_1_SetLock">SetLock</a></td>
<td>Sets the lock on the item indicating that it is in use.</td></tr>
<tr>
<td><a href="M_CapyKit_PoolItem_1_ToString">ToString</a></td>
<td>Returns a string that represents the current object and its lock state.<br />(Overrides <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">Object.ToString()</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_PoolItem_1">PoolItem(T) Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,39 @@
# Pool&lt;T&gt; Methods
## Methods
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)" target="_blank" rel="noopener noreferrer">Equals</a></td>
<td>Determines whether the specified object is equal to the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.finalize" target="_blank" rel="noopener noreferrer">Finalize</a></td>
<td>Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_Pool_1_GetAvailableItem">GetAvailableItem</a></td>
<td>Gets the first available item from the pool and sets its lock.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode</a></td>
<td>Serves as the default hash function.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone" target="_blank" rel="noopener noreferrer">MemberwiseClone</a></td>
<td>Creates a shallow copy of the current <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_Pool_1_ReleaseItem">ReleaseItem</a></td>
<td>Releases the lock on the specified item and returns it to the pool.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">ToString</a></td>
<td>Returns a string that represents the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Pool_1">Pool(T) Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,39 @@
# PropertyComparer&lt;T, U&gt; Methods
## Methods
<table>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)" target="_blank" rel="noopener noreferrer">Equals(Object)</a></td>
<td>Determines whether the specified object is equal to the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_PropertyComparer_2_Equals">Equals(T, T)</a></td>
<td>Determines whether the specified properties are equal.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.finalize" target="_blank" rel="noopener noreferrer">Finalize</a></td>
<td>Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode" target="_blank" rel="noopener noreferrer">GetHashCode()</a></td>
<td>Serves as the default hash function.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="M_CapyKit_PropertyComparer_2_GetHashCode">GetHashCode(T)</a></td>
<td>Returns a hash code for the specified object.</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype" target="_blank" rel="noopener noreferrer">GetType</a></td>
<td>Gets the <a href="https://learn.microsoft.com/dotnet/api/system.type" target="_blank" rel="noopener noreferrer">Type</a> of the current instance.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone" target="_blank" rel="noopener noreferrer">MemberwiseClone</a></td>
<td>Creates a shallow copy of the current <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
<tr>
<td><a href="https://learn.microsoft.com/dotnet/api/system.object.tostring" target="_blank" rel="noopener noreferrer">ToString</a></td>
<td>Returns a string that represents the current object.<br />(Inherited from <a href="https://learn.microsoft.com/dotnet/api/system.object" target="_blank" rel="noopener noreferrer">Object</a>)</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_PropertyComparer_2">PropertyComparer(T, U) Class</a>
<a href="N_CapyKit">CapyKit Namespace</a>

View file

@ -0,0 +1,55 @@
# CapyKit Namespace
\[Missing &lt;summary&gt; documentation for "N:CapyKit"\]
## Classes
<table>
<tr>
<td><a href="T_CapyKit_CapyEventArgs">CapyEventArgs</a></td>
<td>The CapyEventArgs class represents an event argument instance with event level, message, and method name information.</td></tr>
<tr>
<td><a href="T_CapyKit_CapyEventReporter">CapyEventReporter</a></td>
<td>The CapyEventReporter class is responsible for managing event subscriptions and emissions within CapyKit.</td></tr>
<tr>
<td><a href="T_CapyKit_Password">Password</a></td>
<td>Represents a password with its hash, salt and algorithm used for encryption.</td></tr>
<tr>
<td><a href="T_CapyKit_Pbkdf2Algorithm">Pbkdf2Algorithm</a></td>
<td>Implements the PBKDF2 algorithm for password encryption.</td></tr>
<tr>
<td><a href="T_CapyKit_Pool_1">Pool(T)</a></td>
<td>A managed pool of resources. This class provides a thread-safe way to manage a collection of objects of type <em>T</em>.</td></tr>
<tr>
<td><a href="T_CapyKit_PoolItem_1">PoolItem(T)</a></td>
<td>A pool item. This class cannot be inherited.</td></tr>
<tr>
<td><a href="T_CapyKit_PropertyComparer_2">PropertyComparer(T, U)</a></td>
<td>A object comparer that can accept a lambda expression to compare properties.</td></tr>
</table>
## Interfaces
<table>
<tr>
<td><a href="T_CapyKit_IPasswordAlgorithm">IPasswordAlgorithm</a></td>
<td>Defines the contract for password encryption algorithms.</td></tr>
</table>
## Delegates
<table>
<tr>
<td><a href="T_CapyKit_CapyEventHandler">CapyEventHandler</a></td>
<td>A delegate representing an event handler that accepts a <a href="T_CapyKit_CapyEventArgs">CapyEventArgs</a> instance.</td></tr>
</table>
## Enumerations
<table>
<tr>
<td><a href="T_CapyKit_Color">Color</a></td>
<td>Enum representing a set of named colors with their corresponding HEX values. These colors are inspired by the XKCD color palette (<a href="https://xkcd.com/color/rgb/" target="_blank" rel="noopener noreferrer">Link</a>).</td></tr>
<tr>
<td><a href="T_CapyKit_EventLevel">EventLevel</a></td>
<td>Enumeration representing different event level severity values.</td></tr>
</table>

View file

@ -0,0 +1,16 @@
# CapyKit.Attributes Namespace
\[Missing &lt;summary&gt; documentation for "N:CapyKit.Attributes"\]
## Classes
<table>
<tr>
<td><a href="T_CapyKit_Attributes_EnumerationAttribute_1">EnumerationAttribute(T)</a></td>
<td>Custom attribute class for decorating enumeration fields with additional data.</td></tr>
<tr>
<td><a href="T_CapyKit_Attributes_EnumerationDescriptionAttribute">EnumerationDescriptionAttribute</a></td>
<td>An attribute class for decorating enumeration fields with a description.</td></tr>
</table>

View file

@ -0,0 +1,19 @@
# CapyKit.Extensions Namespace
\[Missing &lt;summary&gt; documentation for "N:CapyKit.Extensions"\]
## Classes
<table>
<tr>
<td><a href="T_CapyKit_Extensions_EnumerationExtensions">EnumerationExtensions</a></td>
<td>Provides static extentions methods for providing additional functionality for <a href="https://learn.microsoft.com/dotnet/api/system.enum" target="_blank" rel="noopener noreferrer">Enum</a> types.</td></tr>
<tr>
<td><a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions</a></td>
<td>Provides static extension methods for performing common LINQ operations on <a href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1" target="_blank" rel="noopener noreferrer">IEnumerable(T)</a> and <a href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1" target="_blank" rel="noopener noreferrer">IQueryable(T)</a> collections.</td></tr>
<tr>
<td><a href="T_CapyKit_Extensions_StringExtensions">StringExtensions</a></td>
<td>Provides static extentions methods for providing additional functionality for <a href="https://learn.microsoft.com/dotnet/api/system.string" target="_blank" rel="noopener noreferrer">String</a> types.</td></tr>
</table>

View file

@ -0,0 +1,22 @@
# CapyKit.Helpers Namespace
\[Missing &lt;summary&gt; documentation for "N:CapyKit.Helpers"\]
## Classes
<table>
<tr>
<td><a href="T_CapyKit_Helpers_CompressionHelper">CompressionHelper</a></td>
<td>A class that contains methods for managing data compression.</td></tr>
<tr>
<td><a href="T_CapyKit_Helpers_LanguageHelper">LanguageHelper</a></td>
<td> </td></tr>
<tr>
<td><a href="T_CapyKit_Helpers_SecurityHelper">SecurityHelper</a></td>
<td>A class that contains methods for managing secure data processing and cryptography.</td></tr>
<tr>
<td><a href="T_CapyKit_Helpers_SerializationHelper">SerializationHelper</a></td>
<td> </td></tr>
</table>

View file

@ -0,0 +1,19 @@
# Parse Method
## Overload List
<table>
<tr>
<td><a href="M_CapyKit_Extensions_EnumerationExtensions_Parse__1">Parse(T)(T, String)</a></td>
<td>A <em>T</em> extension method that parses a string into an enumeration.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_EnumerationExtensions_Parse__1_1">Parse(T)(T, String, Boolean)</a></td>
<td>A <em>T</em> extension method that parses a string into an enumeration.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_EnumerationExtensions">EnumerationExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,19 @@
# Filter Method
## Overload List
<table>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_Filter__1">Filter(T)(IEnumerable(T), Func(T, Boolean))</a></td>
<td>Filters out items matching a <em>predicate</em> from the collection.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_Filter__1_1">Filter(T)(IQueryable(T), Expression(Func(T, Boolean)))</a></td>
<td>Filters out items matching a <em>predicate</em> from the collection.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,19 @@
# LeftOuterJoin Method
## Overload List
<table>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_LeftOuterJoin__4">LeftOuterJoin(T, U, TKey, R)(IEnumerable(T), IEnumerable(U), Func(T, TKey), Func(U, TKey), Func(T, IEnumerable(U), R), Func(T, U))</a></td>
<td>An IEnumable&lt;T&gt; extension method that left outer join.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_LeftOuterJoin__4_1">LeftOuterJoin(T, U, TKey, R)(IQueryable(T), IQueryable(U), Expression(Func(T, TKey)), Expression(Func(U, TKey)), Func(T, IEnumerable(U), R), Func(T, U))</a></td>
<td>An IQueryable&lt;T&gt; extension method that left outer join.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,19 @@
# Page Method
## Overload List
<table>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_Page__1">Page(T)(IEnumerable(T), Int32, Int32)</a></td>
<td>Get a page of items from a collection, skipping <em>pageNumber</em> pages of <em>pageSize</em> items per page.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_Page__1_1">Page(T)(IQueryable(T), Int32, Int32)</a></td>
<td>Get a page of items from a collection, skipping <em>pageNumber</em> pages of <em>pageSize</em> items per page.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

View file

@ -0,0 +1,19 @@
# PageCount Method
## Overload List
<table>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_PageCount__1">PageCount(T)(IEnumerable(T), Int32)</a></td>
<td>The number of pages of <em>pageSize</em> size in the given collection.</td></tr>
<tr>
<td><a href="M_CapyKit_Extensions_LINQExtensions_PageCount__1_1">PageCount(T)(IQueryable(T), Int32)</a></td>
<td>The number of pages of <em>pageSize</em> size in the given collection.</td></tr>
</table>
## See Also
#### Reference
<a href="T_CapyKit_Extensions_LINQExtensions">LINQExtensions Class</a>
<a href="N_CapyKit_Extensions">CapyKit.Extensions Namespace</a>

Some files were not shown because too many files have changed in this diff Show more