Skip to content

Commit

Permalink
Adding basic support for entity interfaces and abstracts
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuck committed Dec 10, 2020
1 parent 2ce505f commit ad6ff26
Show file tree
Hide file tree
Showing 9 changed files with 68 additions and 9 deletions.
7 changes: 7 additions & 0 deletions src/YuckQi.Domain/Entities/Abstract/EntityBase.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace YuckQi.Domain.Entities.Abstract
{
public abstract class EntityBase<TKey> : IEntity<TKey> where TKey : struct
{
public TKey Key { get; set; }
}
}
8 changes: 8 additions & 0 deletions src/YuckQi.Domain/Entities/Abstract/IAuditedEntity.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace YuckQi.Domain.Entities.Abstract
{
public interface IAuditedEntity<TKey, TIdentity> : ITemporalEntity<TKey> where TKey : struct
{
TIdentity CreatedBy { get; set; }
TIdentity RevisedBy { get; set; }
}
}
7 changes: 7 additions & 0 deletions src/YuckQi.Domain/Entities/Abstract/IEntity.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace YuckQi.Domain.Entities.Abstract
{
public interface IEntity<TKey> where TKey : struct
{
TKey Key { get; set; }
}
}
10 changes: 10 additions & 0 deletions src/YuckQi.Domain/Entities/Abstract/ITemporalEntity.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System;

namespace YuckQi.Domain.Entities.Abstract
{
public interface ITemporalEntity<TKey> : IEntity<TKey> where TKey : struct
{
DateTime CreationMomentUtc { get; set; }
DateTime RevisionMomentUtc { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using YuckQi.Domain.Entities.Abstract;

namespace YuckQi.Domain.Entities.MultiTenant.Abstract
{
public interface IMultiTenantEntity<TKey, TTenantKey> : IEntity<TKey> where TKey : struct where TTenantKey : struct
{
TTenantKey TenantId { get; set; }

bool IsValidTenant(TTenantKey? tenantId);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using YuckQi.Domain.Entities.Abstract;

namespace YuckQi.Domain.Entities.MultiTenant.Abstract
{
public abstract class MultiTenantEntityBase<TKey, TTenantKey> : EntityBase<TKey>, IMultiTenantEntity<TKey, TTenantKey> where TKey : struct where TTenantKey : struct
{
public TTenantKey TenantId { get; set; }

public bool IsValidTenant(TTenantKey? tenantId)
{
return TenantId.Equals(tenantId);
}
}
}
8 changes: 0 additions & 8 deletions src/YuckQi.Domain/Entities/TypeEntityBase.cs

This file was deleted.

10 changes: 10 additions & 0 deletions src/YuckQi.Domain/Entities/Types/TypeEntityBase.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using YuckQi.Domain.Entities.Abstract;

namespace YuckQi.Domain.Entities.Types
{
public abstract class TypeEntityBase<TKey> : EntityBase<TKey> where TKey : struct
{
public string Code { get; set; }
public string Name { get; set; }
}
}
2 changes: 1 addition & 1 deletion src/YuckQi.Domain/YuckQi.Domain.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Kevin J Lambert</Authors>
<Company />
<Version>0.0.2</Version>
<Version>0.0.3</Version>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
</PropertyGroup>

Expand Down

0 comments on commit ad6ff26

Please sign in to comment.