From 7fd6078c257b10c535e8e22f20cb5fb48f140eb4 Mon Sep 17 00:00:00 2001 From: Alexis DRAI Date: Sun, 16 Oct 2022 18:38:32 +0200 Subject: [PATCH] :recycle: Use inheritance, use properties for FK to prepare for many-to-many with TurnEntity --- Sources/Data/EF/Dice/ColorDieEntity.cs | 11 ++--------- Sources/Data/EF/Dice/DieEntity.cs | 19 +++++++++++++++++++ Sources/Data/EF/Dice/Faces/ColorFaceEntity.cs | 11 +++-------- Sources/Data/EF/Dice/Faces/FaceEntity.cs | 15 +++++++++++++++ Sources/Data/EF/Dice/Faces/ImageFaceEntity.cs | 16 +++------------- .../Data/EF/Dice/Faces/NumberFaceEntity.cs | 16 +++------------- Sources/Data/EF/Dice/ImageDieEntity.cs | 11 ++--------- Sources/Data/EF/Dice/NumberDieEntity.cs | 11 ++--------- 8 files changed, 49 insertions(+), 61 deletions(-) create mode 100644 Sources/Data/EF/Dice/DieEntity.cs create mode 100644 Sources/Data/EF/Dice/Faces/FaceEntity.cs diff --git a/Sources/Data/EF/Dice/ColorDieEntity.cs b/Sources/Data/EF/Dice/ColorDieEntity.cs index 877914a..a062808 100644 --- a/Sources/Data/EF/Dice/ColorDieEntity.cs +++ b/Sources/Data/EF/Dice/ColorDieEntity.cs @@ -1,16 +1,9 @@ using Data.EF.Dice.Faces; -using Model.Dice.Faces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Data.EF.Dice { - public class ColorDieEntity + public class ColorDieEntity : DieEntity { - public Guid Id { get; set; } - public ICollection Faces { get; set; } + public new ICollection Faces { get; set; } } } diff --git a/Sources/Data/EF/Dice/DieEntity.cs b/Sources/Data/EF/Dice/DieEntity.cs new file mode 100644 index 0000000..31a4167 --- /dev/null +++ b/Sources/Data/EF/Dice/DieEntity.cs @@ -0,0 +1,19 @@ +using Data.EF.Dice.Faces; +using Data.EF.Games; +using Data.EF.Joins; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Data.EF.Dice +{ + /// + /// not designed to be instantiated, but not abstract in order to allow extensions + /// + /// + public class DieEntity + { + public Guid ID { get; set; } + public ICollection Turns { get; set; } // many to many + public List DieTurns { get; set; } + public ICollection Faces { get; set; } // one to many + } +} diff --git a/Sources/Data/EF/Dice/Faces/ColorFaceEntity.cs b/Sources/Data/EF/Dice/Faces/ColorFaceEntity.cs index 550ae64..d28e6d0 100644 --- a/Sources/Data/EF/Dice/Faces/ColorFaceEntity.cs +++ b/Sources/Data/EF/Dice/Faces/ColorFaceEntity.cs @@ -1,20 +1,15 @@ -using Model.Dice; -using System; -using System.ComponentModel.DataAnnotations.Schema; -using System.Drawing; +using System.Drawing; namespace Data.EF.Dice.Faces { - public class ColorFaceEntity + public class ColorFaceEntity : FaceEntity { - public Guid ID { get; set; } - public byte A { get; set; } public byte R { get; set; } public byte G { get; set; } public byte B { get; set; } - [ForeignKey("ColorDieFK")] + public Guid ColorDieEntityID { get; set; } public ColorDieEntity ColorDieEntity { get; set; } public void SetValue(Color c) diff --git a/Sources/Data/EF/Dice/Faces/FaceEntity.cs b/Sources/Data/EF/Dice/Faces/FaceEntity.cs new file mode 100644 index 0000000..312e0c2 --- /dev/null +++ b/Sources/Data/EF/Dice/Faces/FaceEntity.cs @@ -0,0 +1,15 @@ +using Data.EF.Games; +using Data.EF.Joins; + +namespace Data.EF.Dice.Faces +{ + /// + /// not designed to be instantiated, but not abstract in order to allow extensions + /// + public class FaceEntity + { + public Guid ID { get; set; } + public ICollection Turns { get; set; } // many to many + public List FaceTurns { get; set; } + } +} diff --git a/Sources/Data/EF/Dice/Faces/ImageFaceEntity.cs b/Sources/Data/EF/Dice/Faces/ImageFaceEntity.cs index 3d29656..7227868 100644 --- a/Sources/Data/EF/Dice/Faces/ImageFaceEntity.cs +++ b/Sources/Data/EF/Dice/Faces/ImageFaceEntity.cs @@ -1,19 +1,9 @@ -using Model.Dice; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Data.EF.Dice.Faces +namespace Data.EF.Dice.Faces { - public class ImageFaceEntity + public class ImageFaceEntity : FaceEntity { - public Guid ID { get; set; } public string Value { get; set; } - - [ForeignKey("ImgDieFK")] + public Guid ImageDieEntityID { get; set; } public ImageDieEntity ImageDieEntity { get; set; } } } diff --git a/Sources/Data/EF/Dice/Faces/NumberFaceEntity.cs b/Sources/Data/EF/Dice/Faces/NumberFaceEntity.cs index 2895633..862f333 100644 --- a/Sources/Data/EF/Dice/Faces/NumberFaceEntity.cs +++ b/Sources/Data/EF/Dice/Faces/NumberFaceEntity.cs @@ -1,19 +1,9 @@ -using Model.Dice; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Data.EF.Dice.Faces +namespace Data.EF.Dice.Faces { - public class NumberFaceEntity + public class NumberFaceEntity : FaceEntity { - public Guid Id { get; set; } public int Value { get; set; } - - [ForeignKey("NumDieFK")] + public Guid NumberDieEntityID { get; set; } public NumberDieEntity NumberDieEntity { get; set; } } } diff --git a/Sources/Data/EF/Dice/ImageDieEntity.cs b/Sources/Data/EF/Dice/ImageDieEntity.cs index 2b379ef..f1295ab 100644 --- a/Sources/Data/EF/Dice/ImageDieEntity.cs +++ b/Sources/Data/EF/Dice/ImageDieEntity.cs @@ -1,16 +1,9 @@ using Data.EF.Dice.Faces; -using Model.Dice.Faces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Data.EF.Dice { - public class ImageDieEntity + public class ImageDieEntity : DieEntity { - public Guid Id { get; set; } - public ICollection Faces { get; set; } + public new ICollection Faces { get; set; } } } diff --git a/Sources/Data/EF/Dice/NumberDieEntity.cs b/Sources/Data/EF/Dice/NumberDieEntity.cs index 27b1d21..c3908fe 100644 --- a/Sources/Data/EF/Dice/NumberDieEntity.cs +++ b/Sources/Data/EF/Dice/NumberDieEntity.cs @@ -1,16 +1,9 @@ using Data.EF.Dice.Faces; -using Model.Dice.Faces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Data.EF.Dice { - public class NumberDieEntity + public class NumberDieEntity : DieEntity { - public Guid Id { get; set; } - public ICollection Faces { get; set; } + public new ICollection Faces { get; set; } } }