commit 64b92ec1e3de096fa45120717f0e5a2b458c17c9
Author: Dominik Chlouba <dchlouba@students.zcu.cz>
Date:   Thu Apr 8 21:15:21 2021 +0200

    Updated gitignore

diff --git a/.gitignore b/.gitignore
index abf1be5..0434cea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -906,4 +906,8 @@ fabric.properties
 # Android studio 3.1+ serialized cache file
 .idea/caches/build_file_checksums.ser
 
-.idea/
\ No newline at end of file
+.idea/
+
+*.xml
+*.dll
+*.json
\ No newline at end of file
diff --git a/docs/Leuze.Core.Application.xml b/docs/Leuze.Core.Application.xml
deleted file mode 100644
index 20b02e5..0000000
--- a/docs/Leuze.Core.Application.xml
+++ /dev/null
@@ -1,404 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>Leuze.Core.Application</name>
-    </assembly>
-    <members>
-        <member name="T:Leuze.Core.Application.Authentication.DomainUserProvider">
-            <inheritdoc />
-        </member>
-        <member name="T:Leuze.Core.Application.Authentication.IApplicationUserProvider">
-            <summary>
-                An application service that provides currently authenticated user from presentation layer such as ASP.NET application or Console App.
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.Behaviors.ValidationBehavior`2">
-            <summary>
-            
-            </summary>
-            <typeparam name="TRequest"></typeparam>
-            <typeparam name="TResponse"></typeparam>
-        </member>
-        <member name="M:Leuze.Core.Application.Behaviors.ValidationBehavior`2.#ctor(System.Collections.Generic.IEnumerable{FluentValidation.IValidator{`0}})">
-            <summary>
-            
-            </summary>
-            <param name="validators"></param>
-        </member>
-        <member name="M:Leuze.Core.Application.Behaviors.ValidationBehavior`2.Handle(`0,System.Threading.CancellationToken,MediatR.RequestHandlerDelegate{`1})">
-            <summary>
-            
-            </summary>
-            <param name="request"></param>
-            <param name="cancellationToken"></param>
-            <param name="next"></param>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Application.Configuration.ApplicationConfiguration">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.Configuration.ApplicationConfiguration.Priority">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.Configuration.ApplicationConfiguration.Execute(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.IServiceProvider)">
-            <summary>
-            
-            </summary>
-            <param name="applicationBuilder"></param>
-            <param name="serviceProvider"></param>
-        </member>
-        <member name="T:Leuze.Core.Application.Configuration.ApplicationServices">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.Configuration.ApplicationServices.Priority">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.Configuration.ApplicationServices.Execute(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.IServiceProvider)">
-            <summary>
-            
-            </summary>
-            <param name="services"></param>
-            <param name="serviceProvider"></param>
-        </member>
-        <member name="T:Leuze.Core.Application.Configuration.AppSettings">
-            <summary>
-                A wrapper class for AppSettings configuration on application level.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.Configuration.AppSettings.DatabaseConnection">
-            <summary>
-                A database connection section.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.Configuration.AppSettings.Encryption">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.Configuration.AppSettings.EncryptionSection">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.Configuration.AppSettings.EncryptionSection.Key">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.Configuration.AppSettings.EncryptionSection.IV">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.Configuration.AppSettings.DatabaseConnectionSection">
-            <summary>
-                A wrapper class for <see cref="T:Leuze.Core.Application.Configuration.AppSettings" /> Database connection section.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.Configuration.AppSettings.DatabaseConnectionSection.ConnectionString">
-            <summary>
-                Specifies connection string for database.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.Configuration.AppSettings.DatabaseConnectionSection.IsInMemory">
-            <summary>
-                Sets whether the database connection should be done in memory.
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.IBaseRequest">
-            <summary>
-            Base request that is sent to messaging bus using <see cref="T:MediatR.Mediator"/>.
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.IBaseRequest`1">
-            <summary>
-            Base generic request that is sent to messaging bus using <see cref="T:MediatR.Mediator"/>.
-            </summary>
-            <typeparam name="TResult">The result of the request.</typeparam>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.IBaseRequestHandler`1">
-            <summary>
-            Base request handler that returns default request response.
-            </summary>
-            <typeparam name="TRequest">The request that should be handled.</typeparam>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.IBaseRequestHandler`2">
-            <summary>
-            Base request handler that returns default request response.
-            </summary>
-            <typeparam name="TRequest">The request that should be handled.</typeparam>
-            <typeparam name="TResult">The result of the request.</typeparam>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Query">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Query.#ctor(Leuze.Core.Application.Models.Controllers.PagedModel)">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Response">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Response.#ctor(System.Collections.Generic.IList{Leuze.Core.Domain.Domains.Identity.DTOs.PermissionItem},System.Int32,System.Int32,System.Int32)">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Handler">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Handler.#ctor(Leuze.Core.Domain.Repositories.IPermissionRepository)">
-            <summary>
-            
-            </summary>
-            <param name="permissionRepository"></param>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Handler.Handle(Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Query,System.Threading.CancellationToken)">
-            <summary>
-            
-            </summary>
-            <param name="request"></param>
-            <param name="cancellationToken"></param>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.IBaseRequestResponse">
-            <summary>
-                Base request response.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.IBaseRequestResponse.ResponseType">
-            <summary>
-                The type of the request response.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.IBaseRequestResponse.IsSuccess">
-            <summary>
-                Gets whether the response is successful.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.IBaseRequestResponse.Errors">
-            <summary>
-                Gets the collection of errors.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.IBaseRequestResponse.AddError(System.String)">
-            <summary>
-                Adds a new error message to the collection of <see cref="P:Leuze.Core.Application.CQRS.IBaseRequestResponse.Errors"/>.
-            </summary>
-            <param name="errorMessage"></param>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.IBaseRequestResponse`1">
-            <summary>
-                Base request response that returns <see cref="!:TResult"/>.
-            </summary>
-            <typeparam name="TResult">The response object.</typeparam>
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.IBaseRequestResponse`1.Result">
-            <summary>
-                The result of the response.
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.RequestResponse">
-            <summary>
-                Non generic request response which does not have any result type.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.RequestResponse.ResponseType">
-            <inheritdoc />
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.RequestResponse.IsSuccess">
-            <inheritdoc />
-        </member>
-        <member name="F:Leuze.Core.Application.CQRS.RequestResponse._errors">
-            <summary>
-                Backing field for <see cref="P:Leuze.Core.Application.CQRS.RequestResponse.Errors"/>.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.RequestResponse.Errors">
-            <inheritdoc />
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.RequestResponse.AddError(System.String)">
-            <inheritdoc />
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.RequestResponse.CreateErrorResponse(System.String[])">
-            <summary>
-            Factory method for creating request response containing <paramref name="errorMessages"/>.
-            </summary>
-            <param name="errorMessages">The collection of error messages.</param>
-            <returns>Created request response.</returns>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.RequestResponse.CreateSuccessResponse">
-            <summary>
-            Factory method for creating successful request response.
-            </summary>
-            <returns>Created request response.</returns>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.RequestResponse`1">
-            <summary>
-                Generic request response which returns a result.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.RequestResponse`1.ResponseType">
-            <inheritdoc />
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.RequestResponse`1.IsSuccess">
-            <inheritdoc />
-        </member>
-        <member name="F:Leuze.Core.Application.CQRS.RequestResponse`1._errors">
-            <summary>
-                Backing field for <see cref="P:Leuze.Core.Application.CQRS.RequestResponse`1.Errors"/>.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.RequestResponse`1.Errors">
-            <inheritdoc />
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.RequestResponse`1.AddError(System.String)">
-            <inheritdoc />
-        </member>
-        <member name="P:Leuze.Core.Application.CQRS.RequestResponse`1.Result">
-            <inheritdoc />
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.RequestResponse`1.CreateSuccessResponse(`0)">
-            <summary>
-            Factory method for creating successful request response with <see cref="!:TResult"/>.
-            </summary>
-            <returns>Created request response with <see cref="!:TResult"/>.</returns>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.RequestResponse`1.CreateErrorResponse(System.String[])">
-            <summary>
-            Factory method for creating error request response.
-            </summary>
-            <returns>Created error request response.</returns>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.RequestResponseType">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="F:Leuze.Core.Application.CQRS.RequestResponseType.Success">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="F:Leuze.Core.Application.CQRS.RequestResponseType.Error">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Command">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Command.#ctor(System.String,System.Collections.Generic.List{System.Guid})">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Response">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Response.#ctor(System.Guid)">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Handler">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Handler.#ctor(Leuze.Core.Domain.Repositories.IPermissionRepository,Leuze.Core.Domain.Repositories.IRoleRepository)">
-            <summary>
-            
-            </summary>
-            <param name="permissionRepository"></param>
-            <param name="roleRepository"></param>
-        </member>
-        <member name="M:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Handler.Handle(Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Command,System.Threading.CancellationToken)">
-            <summary>
-            
-            </summary>
-            <param name="request"></param>
-            <param name="cancellationToken"></param>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Application.DependencyInjection">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.DependencyInjection.AddLeuzeCore(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,Microsoft.AspNetCore.Hosting.IWebHostEnvironment)">
-            <summary>
-            
-            </summary>
-            <param name="services"></param>
-            <param name="config"></param>
-            <param name="env"></param>
-        </member>
-        <member name="M:Leuze.Core.Application.DependencyInjection.UseLeuzeCore(Microsoft.AspNetCore.Builder.IApplicationBuilder)">
-            <summary>
-            
-            </summary>
-            <param name="app"></param>
-        </member>
-        <member name="T:Leuze.Core.Application.Exceptions.ValidationException">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.Exceptions.ValidationException.#ctor">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Application.Exceptions.ValidationException.Errors">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.Exceptions.ValidationException.#ctor(System.Collections.Generic.IEnumerable{FluentValidation.Results.ValidationFailure})">
-            <summary>
-            
-            </summary>
-            <param name="failures"></param>
-        </member>
-        <member name="T:Leuze.Core.Application.Models.Controllers.PagedModel">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Application.Models.Controllers.PagedModel.#ctor(System.Int32,System.Int32)">
-            <summary>
-            
-            </summary>
-        </member>
-    </members>
-</doc>
diff --git a/docs/Leuze.Core.Domain.xml b/docs/Leuze.Core.Domain.xml
deleted file mode 100644
index 1b00d96..0000000
--- a/docs/Leuze.Core.Domain.xml
+++ /dev/null
@@ -1,442 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>Leuze.Core.Domain</name>
-    </assembly>
-    <members>
-        <member name="T:Leuze.Core.Domain.Domains.BaseDomainEvent">
-            <summary>
-                Base class for domain events.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.BaseDomainEvent.SetAsSystemEvent">
-            <inheritdoc />
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.BaseDomainEvent.IsSystemEvent">
-            <inheritdoc />
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.BaseDomainEvent.CreatedOn">
-            <inheritdoc/>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.BaseDomainEventHandler`1">
-            <summary>
-                Base class for domain event handlers.
-            </summary>
-            <typeparam name="TDomainEvent">The type of the domain event.</typeparam>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.BaseDomainEventHandler`1.Handle(`0,System.Threading.CancellationToken)">
-            <summary>
-                Handles the domain event.
-            </summary>
-            <param name="domainEvent">The domain event.</param>
-            <param name="cancellationToken">The cancellation token.</param>
-            <returns>A task.</returns>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.BaseEntity">
-            <summary>
-            Base abstract class for all entities in core business processes.
-            </summary>
-        </member>
-        <member name="F:Leuze.Core.Domain.Domains.BaseEntity._createdBy">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.BaseEntity.CreatedBy">
-            <inheritdoc />
-        </member>
-        <member name="F:Leuze.Core.Domain.Domains.BaseEntity._createdOn">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.BaseEntity.CreatedOn">
-            <inheritdoc />
-        </member>
-        <member name="F:Leuze.Core.Domain.Domains.BaseEntity._lastModifiedBy">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.BaseEntity.LastModifiedBy">
-            <inheritdoc />
-        </member>
-        <member name="F:Leuze.Core.Domain.Domains.BaseEntity._lastModifiedOn">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.BaseEntity.LastModifiedOn">
-            <inheritdoc />
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.BaseEntity.AuditCreation(System.String)">
-            <inheritdoc />
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.BaseEntity.AuditModification(System.String)">
-            <inheritdoc />
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.BaseEntity.DomainEvents">
-            <inheritdoc />
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.BaseEntity.AddDomainEvent(Leuze.Core.Domain.Domains.IDomainEvent)">
-            <inheritdoc />
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.BaseEntity.ClearDomainEvents">
-            <inheritdoc />
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.IAuditableEntity">
-            <summary>
-                An interface that defines an entity which provides timestamps of entity modifications.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.IAuditableEntity.CreatedBy">
-            <summary>
-                An user who created the entity.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.IAuditableEntity.CreatedOn">
-            <summary>
-                A date when the entity was created.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.IAuditableEntity.LastModifiedBy">
-            <summary>
-                A last user who modified the entity.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.IAuditableEntity.LastModifiedOn">
-            <summary>
-                A last modification date.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.IAuditableEntity.AuditCreation(System.String)">
-            <summary>
-                Audits the entity and stores the creation date and the user identifier.
-            <para>
-                If the identifier of the user's who created the entity is not provided, the null value will be used that states the system done the creation.
-            </para>
-            </summary>
-            <param name="createdBy">The user identifier.</param>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.IAuditableEntity.AuditModification(System.String)">
-            <summary>
-                Audits the modification of the entity by storing modification date and the user' identifier.
-            <para>
-                If the identifier of the user's who modified the entity is not provided, the null value will be used that states the system done the modification.
-            </para>
-            </summary>
-            <param name="modifiedBy">The user's identifier. If left blank, system will be used.</param>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.Identity.DTOs.PermissionItem">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Identity.DTOs.PermissionItem.#ctor(System.String,System.String,System.Int32,System.Int32)">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.IDomainEntity">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.IDomainEntity.DomainEvents">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.IDomainEntity.AddDomainEvent(Leuze.Core.Domain.Domains.IDomainEvent)">
-            <summary>
-            
-            </summary>
-            <param name="domainEvent"></param>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.IDomainEntity.ClearDomainEvents">
-            <summary>
-            
-            </summary>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.IDomainEvent">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.IDomainEvent.SetAsSystemEvent">
-            <summary>
-                Sets the domain event as an system event. The initiator of the event will not be resolved.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.IDomainEvent.IsSystemEvent">
-            <summary>
-                Determines whether the domain event is made by the system.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.IDomainEvent.CreatedOn">
-            <summary>
-                Date when domain event was created.
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.Shared.Enums.EnumExtensions">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.Enums.EnumExtensions.ToDescriptionString(System.Enum)">
-            <summary>
-            
-            </summary>
-            <param name="val"></param>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.Shared.ValueObjects.EmailAddress">
-            <summary>
-                Email address record type with validation logic for email addresses.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.EmailAddress.#ctor">
-            <summary>
-                Private constructor for Entity Framework.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.EmailAddress.#ctor(System.String)">
-            <summary>
-                Creates a new email address.
-            </summary>
-            <param name="email">The email address.</param>
-            <exception cref="T:System.InvalidOperationException">Thrown when the <paramref name="email"/> is not in valid format.</exception>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.Shared.ValueObjects.EmailAddress.Email">
-            <summary>
-                The email address.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.EmailAddress.Validate(System.String)">
-            <summary>
-                Validates the correct format of email address.
-            </summary>
-            <param name="emailAddress">The email address to be validated.</param>
-            <returns>Whether the email address is valid.</returns>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.Shared.ValueObjects.PersonFullName">
-            <summary>
-                Record type holding a person's first name nad last name.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.PersonFullName.#ctor">
-            <summary>
-                Private constructor for Entity Framework.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.PersonFullName.#ctor(System.String,System.String)">
-            <summary>
-                Creates a <see cref="T:Leuze.Core.Domain.Domains.Shared.ValueObjects.PersonFullName"/> with required properties.
-            </summary>
-            <param name="firstName">The first name.</param>
-            <param name="lastName">The last name.</param>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.Shared.ValueObjects.PersonFullName.FirstName">
-            <summary>
-                The first name.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.Shared.ValueObjects.PersonFullName.LastName">
-            <summary>
-                The last name.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.PersonFullName.ToString">
-            <summary>
-                Gets the full name of the person.
-            </summary>
-            <returns>The full name.</returns>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.PersonFullName.GetFullName">
-            <summary>
-                Gets a full name.
-            </summary>
-            <returns>The full name.</returns>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.Shared.ValueObjects.PhoneNumber">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.PhoneNumber.#ctor">
-            <summary>
-                Private constructor for Entity Framework.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.PhoneNumber.#ctor(System.String,System.String)">
-            <summary>
-            
-            </summary>
-            <param name="prefix"></param>
-            <param name="number"></param>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.Shared.ValueObjects.PhoneNumber.Prefix">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.Shared.ValueObjects.PhoneNumber.Number">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.PhoneNumber.ToString">
-            <summary>
-            
-            </summary>
-            <returns></returns>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Shared.ValueObjects.PhoneNumber.GetPhoneNumber">
-            <summary>
-            
-            </summary>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.Users.DomainUser">
-            <summary>
-                The domain user that is the root of all users in the system.
-                Each domain has it's own representation of their domain specific users that are linked to this entity.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Users.DomainUser.#ctor">
-            <summary>
-                Private constructor for Entity Framework.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Users.DomainUser.NewUser(System.Guid)">
-            <summary>
-            
-            </summary>
-            <param name="userId"></param>
-            <returns></returns>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.Users.DomainUser.UserId">
-            <summary>
-                The user's identifier from identity provider.
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Domain.Domains.Users.Services.Abstractions.IDomainUserProvider">
-            <summary>
-                Domain user provider for external layers to provide current user that uses the business domains.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Domains.Users.Services.Abstractions.IDomainUserProvider.CurrentUserId">
-            <summary>
-                The identifier of business user.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Domains.Users.Services.Abstractions.IDomainUserProvider.GetCurrentUserAsync">
-            <summary>
-                Gets the current business user.
-            </summary>
-            <returns>The current business user.</returns>
-        </member>
-        <member name="T:Leuze.Core.Domain.Localization.Time.ITimeProvider">
-            <summary>
-                Provides unified time accessor to other system components.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Localization.Time.ITimeProvider.Now">
-            <summary>
-                Gets a <see cref="T:System.DateTime" /> object that is set to the current date and time on current execution
-                environment.
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Domain.Localization.Time.SystemTime">
-            <summary>
-                Singleton time accessor for system components.
-            </summary>
-            <remarks>Default <see cref="T:Leuze.Core.Domain.Localization.Time.ITimeProvider" /> is set to <see cref="T:Leuze.Core.Domain.Localization.Time.UtcTimeProvider" />.</remarks>
-        </member>
-        <member name="P:Leuze.Core.Domain.Localization.Time.SystemTime.Provider">
-            <summary>
-                Injected provider with time accessor. Unless assigned explicitly, a <see cref="T:Leuze.Core.Domain.Localization.Time.UtcTimeProvider" /> is used as
-                default implementation.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Localization.Time.SystemTime.Now">
-            <summary>
-                Gets a <see cref="T:System.DateTime" /> object that is set to the current date and time in current
-                <see cref="T:Leuze.Core.Domain.Localization.Time.ITimeProvider" /> instance.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Localization.Time.SystemTime.SetProvider(Leuze.Core.Domain.Localization.Time.ITimeProvider)">
-            <summary>
-                Injects provider dependency into current execution environment.
-            </summary>
-            <param name="provider">The <see cref="T:Leuze.Core.Domain.Localization.Time.ITimeProvider" /> for current execution environment.</param>
-        </member>
-        <member name="T:Leuze.Core.Domain.Localization.Time.UtcTimeProvider">
-            <summary>
-                Provides Coordinated Universal Time (UTC) time accessor to other system components.
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Domain.Localization.Time.UtcTimeProvider.Now">
-            <summary>
-                Gets a <see cref="T:System.DateTime" /> object that is set to the current date and time on current execution
-                environment, expressed as the Coordinated Universal Time (UTC).
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Domain.Repositories.IPermissionRepository">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Repositories.IPermissionRepository.AddAsync(Leuze.Core.Application.Identity.ApplicationPermission)">
-            <summary>
-            
-            </summary>
-            <param name="entity"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Leuze.Core.Domain.Repositories.IPermissionRepository.ToListAsync">
-            <summary>
-            
-            </summary>
-            <returns></returns>
-        </member>
-        <member name="M:Leuze.Core.Domain.Repositories.IPermissionRepository.RemoveRangeAsync(System.Collections.Generic.IEnumerable{Leuze.Core.Application.Identity.ApplicationPermission})">
-            <summary>
-            
-            </summary>
-            <param name="list"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Leuze.Core.Domain.Repositories.IPermissionRepository.GetFilteredList">
-            <summary>
-            
-            </summary>
-            <returns></returns>
-        </member>
-        <member name="M:Leuze.Core.Domain.Repositories.IPermissionRepository.GetListByIdsAsync(System.Collections.Generic.IList{System.Guid})">
-            <summary>
-            
-            </summary>
-            <param name="permissions"></param>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Domain.Repositories.IRoleRepository">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Domain.Repositories.IRoleRepository.CreateAsync(Leuze.Core.Application.Identity.ApplicationRole)">
-            <summary>
-            
-            </summary>
-            <param name="role"></param>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Domain.Repositories.IUserRepository">
-            <summary>
-            
-            </summary>
-        </member>
-    </members>
-</doc>
diff --git a/docs/Leuze.Core.Infrastructure.Persistence.xml b/docs/Leuze.Core.Infrastructure.Persistence.xml
deleted file mode 100644
index 450a83d..0000000
--- a/docs/Leuze.Core.Infrastructure.Persistence.xml
+++ /dev/null
@@ -1,258 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>Leuze.Core.Infrastructure.Persistence</name>
-    </assembly>
-    <members>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.ServicesConfiguration">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Infrastructure.Persistence.ServicesConfiguration.Priority">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.ServicesConfiguration.Execute(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.IServiceProvider)">
-            <summary>
-            
-            </summary>
-            <param name="services"></param>
-            <param name="serviceProvider"></param>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.ApplicationConfiguration">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:Leuze.Core.Infrastructure.Persistence.ApplicationConfiguration.Priority">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.ApplicationConfiguration.Execute(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.IServiceProvider)">
-            <summary>
-            
-            </summary>
-            <param name="applicationBuilder"></param>
-            <param name="serviceProvider"></param>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.Extensions.PersistenceExtension">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Extensions.PersistenceExtension.AddPersistence(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Boolean,System.String)">
-            <summary>
-                Registers application services defined in application module.
-            </summary>
-            <param name="services">The service collection.</param>
-            <param name="inMemory">Whether the database should be in inMemory.</param>
-            <param name="connectionString">The connection string to the actual database. If database is in memory, then it specifies the name of in memory database.</param>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Extensions.PersistenceExtension.MigrateDatabase(Microsoft.AspNetCore.Builder.IApplicationBuilder)">
-            <summary>
-                Migrates the database with created migrations.
-            </summary>
-            <param name="app">The application pipeline builder.</param>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.Extensions.RepositoriesExtension">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Extensions.RepositoriesExtension.AddRepositories(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
-            <summary>
-            
-            </summary>
-            <param name="services"></param>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.Interceptors.AuditInterceptor">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Interceptors.AuditInterceptor.#ctor">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Interceptors.AuditInterceptor.#ctor(Leuze.Core.Application.Authentication.IApplicationUserProvider)">
-            <summary>
-            
-            </summary>
-            <param name="applicationUserProvider"></param>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Interceptors.AuditInterceptor.SavingChangesAsync(Microsoft.EntityFrameworkCore.Diagnostics.DbContextEventData,Microsoft.EntityFrameworkCore.Diagnostics.InterceptionResult{System.Int32},System.Threading.CancellationToken)">
-            <summary>
-            
-            </summary>
-            <param name="eventData"></param>
-            <param name="result"></param>
-            <param name="cancellationToken"></param>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.Interceptors.DomainEventsInterceptor">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Interceptors.DomainEventsInterceptor.#ctor(MediatR.IMediator)">
-            <summary>
-            
-            </summary>
-            <param name="mediator"></param>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Interceptors.DomainEventsInterceptor.SavingChangesAsync(Microsoft.EntityFrameworkCore.Diagnostics.DbContextEventData,Microsoft.EntityFrameworkCore.Diagnostics.InterceptionResult{System.Int32},System.Threading.CancellationToken)">
-            <summary>
-            
-            </summary>
-            <param name="eventData"></param>
-            <param name="result"></param>
-            <param name="cancellationToken"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Interceptors.DomainEventsInterceptor.GetDomainEntities(Microsoft.EntityFrameworkCore.ChangeTracking.ChangeTracker)">
-            <summary>
-                Gets all the <see cref="T:Leuze.Core.Domain.Domains.IDomainEntity"/> which have any domain events in them from <paramref name="changeTracker"/>.
-            </summary>
-            <param name="changeTracker">The Entity Framework change tracker.</param>
-            <returns>A list of domain entities that contain any domain events inside.</returns>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Interceptors.DomainEventsInterceptor.AnyDomainEventsExist(Microsoft.EntityFrameworkCore.ChangeTracking.ChangeTracker)">
-            <summary>
-                Checks if current entities in <paramref name="changeTracker"/> have any domain events.
-            </summary>
-            <param name="changeTracker">The Entity Framework change tracker.</param>
-            <returns>A boolean indicating whether there are any domain events.</returns>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Interceptors.DomainEventsInterceptor.SavedChangesAsync(Microsoft.EntityFrameworkCore.Diagnostics.SaveChangesCompletedEventData,System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            
-            </summary>
-            <param name="eventData"></param>
-            <param name="result"></param>
-            <param name="cancellationToken"></param>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.LeuzeDbContext">
-            <summary>
-                Leuze database context used for EF Core persistence.
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.LeuzeDbContext.#ctor(Microsoft.EntityFrameworkCore.DbContextOptions{Leuze.Core.Infrastructure.Persistence.LeuzeDbContext})">
-            <summary>
-                A public constructor with required dependencies.
-            </summary>
-            <param name="options">The database context options.</param>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.LeuzeDbContext.OnModelCreating(Microsoft.EntityFrameworkCore.ModelBuilder)">
-            <summary>
-            
-            </summary>
-            <param name="modelBuilder"></param>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.MigrationsFactory">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.Registrars.Identity.ApplicationPermissionRegistrar">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Registrars.Identity.ApplicationPermissionRegistrar.RegisterEntities(Microsoft.EntityFrameworkCore.ModelBuilder)">
-            <summary>
-            
-            </summary>
-            <param name="modelbuilder"></param>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.Registrars.Identity.ApplicationRoleRegistrar">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Registrars.Identity.ApplicationRoleRegistrar.RegisterEntities(Microsoft.EntityFrameworkCore.ModelBuilder)">
-            <summary>
-            
-            </summary>
-            <param name="modelbuilder"></param>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.RepositoryBase`1">
-            <summary>
-            
-            </summary>
-            <typeparam name="TEntity"></typeparam>
-        </member>
-        <member name="F:Leuze.Core.Infrastructure.Persistence.RepositoryBase`1._mapper">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.RepositoryBase`1.#ctor(ExtCore.Data.Abstractions.IStorageContext,AutoMapper.IMapper)">
-            <summary>
-            
-            </summary>
-            <param name="context"></param>
-            <param name="mapper"></param>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.Repository.PermissionRepository">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Repository.PermissionRepository.#ctor(ExtCore.Data.Abstractions.IStorageContext,AutoMapper.IMapper)">
-            <summary>
-            
-            </summary>
-            <param name="context"></param>
-            <param name="mapper"></param>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Repository.PermissionRepository.AddAsync(Leuze.Core.Application.Identity.ApplicationPermission)">
-            <inheritdoc/>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Repository.PermissionRepository.ToListAsync">
-            <inheritdoc/>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Repository.PermissionRepository.RemoveRangeAsync(System.Collections.Generic.IEnumerable{Leuze.Core.Application.Identity.ApplicationPermission})">
-            <inheritdoc/>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Repository.PermissionRepository.GetFilteredList">
-            <inheritdoc/>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Repository.PermissionRepository.GetListByIdsAsync(System.Collections.Generic.IList{System.Guid})">
-            <inheritdoc/>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.Repository.RoleRepository">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Repository.RoleRepository.#ctor(ExtCore.Data.Abstractions.IStorageContext,AutoMapper.IMapper,Microsoft.AspNetCore.Identity.RoleManager{Leuze.Core.Application.Identity.ApplicationRole})">
-            <summary>
-            
-            </summary>
-            <param name="context"></param>
-            <param name="mapper"></param>
-            <param name="roleManager"></param>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Repository.RoleRepository.CreateAsync(Leuze.Core.Application.Identity.ApplicationRole)">
-            <inheritdoc/>
-        </member>
-        <member name="T:Leuze.Core.Infrastructure.Persistence.Repository.UserRepository">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:Leuze.Core.Infrastructure.Persistence.Repository.UserRepository.#ctor(ExtCore.Data.Abstractions.IStorageContext,AutoMapper.IMapper,Microsoft.AspNetCore.Identity.UserManager{Leuze.Core.Application.Identity.ApplicationUser})">
-            <summary>
-            
-            </summary>
-            <param name="context"></param>
-            <param name="mapper"></param>
-            <param name="userManager"></param>
-        </member>
-    </members>
-</doc>
diff --git a/docs/Leuze.Tests.Configuration.xml b/docs/Leuze.Tests.Configuration.xml
deleted file mode 100644
index 94ab6fb..0000000
--- a/docs/Leuze.Tests.Configuration.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>Leuze.Tests.Configuration</name>
-    </assembly>
-    <members>
-        <member name="P:Leuze.Tests.Configuration.DatabaseInMemoryFixture.Services">
-            <summary>
-            Provider for registered services for fixture
-            </summary>
-        </member>
-        <member name="P:Leuze.Tests.Configuration.DatabaseInMemoryFixture.Storage">
-            <summary>
-            Instance of database context
-            </summary>
-        </member>
-        <member name="P:Leuze.Tests.Configuration.DatabaseInMemoryFixture.LoggerFactory">
-            <summary>
-            Instance of logger
-            </summary>
-        </member>
-        <member name="P:Leuze.Tests.Configuration.DatabaseInMemoryFixture.UserManager">
-            <summary>
-            Instance of user manager
-            </summary>
-        </member>
-        <member name="P:Leuze.Tests.Configuration.DatabaseInMemoryFixture.RoleManager">
-            <summary>
-            Instance of role manager
-            </summary>
-        </member>
-        <member name="M:Leuze.Tests.Configuration.DatabaseInMemoryFixture.GetDbContextOptionsBuilder">
-            <summary>
-            For use by DbContextFactory.
-            </summary>
-            <returns></returns>
-        </member>
-        <member name="T:Leuze.Tests.Configuration.DatabaseInMemoryFixture.TestStorageContextOptions">
-            <summary>
-            Utility class to use the IOptions pattern as required by IStorage implementations constructors.
-            </summary>
-        </member>
-    </members>
-</doc>
