Capturing the audit data
So, we want to track every time a record was changed. There are several ways to do this, but we'll do it the Entity Framework way, so that we do not depend on any database-specific features–see, for example, the Change Data Tracking feature of SQL Server Enterprise.
The data we're interested in is as follows:
Creation timestamp
Creation user
Last update timestamp
Last update user
Getting ready
We will be using the NuGet Package Manager to install the Entity Framework Core 1 package, Microsoft.EntityFrameworkCore
. We will also be using a SQL Server database to store the data, so we will also need Microsoft.EntityFrameworkCore.SqlServer
.
We also need the System.Security.Principal.Windows
package in order to get the current logged-in user.
Finally, Xunit
is the package we will be using for the unit tests, and dotnet-text-Xunit
adds tooling support for Visual Studio. Notice that the UnitTests
project is a .NET Core App 1.0 (netcoreapp1.0), that Microsoft.EntityFrameworkCore.Design...