Tolitech.CodeGenerator.Auditing.Trail 1.0.0-alpha-1

This is a prerelease version of Tolitech.CodeGenerator.Auditing.Trail.
dotnet add package Tolitech.CodeGenerator.Auditing.Trail --version 1.0.0-alpha-1                
NuGet\Install-Package Tolitech.CodeGenerator.Auditing.Trail -Version 1.0.0-alpha-1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tolitech.CodeGenerator.Auditing.Trail" Version="1.0.0-alpha-1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tolitech.CodeGenerator.Auditing.Trail --version 1.0.0-alpha-1                
#r "nuget: Tolitech.CodeGenerator.Auditing.Trail, 1.0.0-alpha-1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Tolitech.CodeGenerator.Auditing.Trail as a Cake Addin
#addin nuget:?package=Tolitech.CodeGenerator.Auditing.Trail&version=1.0.0-alpha-1&prerelease

// Install Tolitech.CodeGenerator.Auditing.Trail as a Cake Tool
#tool nuget:?package=Tolitech.CodeGenerator.Auditing.Trail&version=1.0.0-alpha-1&prerelease                

Tolitech.CodeGenerator.Auditing.Trail

Auditing trail library used in projects created by the Code Generator tool.

This project helps to discover the differences found between two entities, an old one recovered and a new one to be recorded.

Tolitech Code Generator Tool: http://www.tolitech.com.br

Examples:

public class PersonEntity : AuditableEntity
{
    public PersonEntity(string name, int age, string email)
    {
        using var scope = new AuditScope(this, EventTypeEnum.Insert);
        Name = name;
        Age = age;
        Email = new EmailValueObject(email, name);
    }

    public string Name { get; set; }

    public int Age { get; set; }

    public EmailValueObject Email { get; set; }

    public void ChangeName(string newName)
    {
        using var scope = new AuditScope(this, EventTypeEnum.Update);
        Name = newName;
    }

    public void ChangeAge(int newAge)
    {
        using var scope = new AuditScope(this, EventTypeEnum.Update);
        Age = newAge;
    }
}
Audit.EnableEntitity(typeof(PersonEntity).FullName);
bool b = Audit.IsEntityEnabled(typeof(PersonEntity).FullName);
var person = new PersonEntity()
{
    Name = "Person One",
    Age = 18
};

person.ChangeName("Person Two");
person.ChangeAge(21);
var audit = person.Audit();

audit.AttributesDiff[0].Name == "Name"; // this is true 
audit.AttributesDiff[0].Old == "Person One"; // this is true 
audit.AttributesDiff[0].New == "Person Two"; // this is true 

audit.AttributesDiff[1].Name == "Age"; // this is true 
audit.AttributesDiff[1].Old == "18"; // this is true 
audit.AttributesDiff[1].New == "21"; // this is true 
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0-alpha-1 271 2/15/2022

More information at http://www.tolitech.com.br/