44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using DataModel.Database.Common;
|
|
|
|
namespace DataModel.Database;
|
|
|
|
public sealed class Section
|
|
{
|
|
[Key]
|
|
public int Id { get; set; }
|
|
|
|
public Guid UniqueId { get; set; } = Guid.NewGuid();
|
|
|
|
public string Name { get; set; } = string.Empty;
|
|
|
|
public string DataKey { get; set; } = string.Empty;
|
|
|
|
public int Depth { get; set; } = 0;
|
|
|
|
public Section? Parent { get; set; }
|
|
|
|
public List<TextElement> TextElements { get; set; } = new();
|
|
|
|
internal DataContext.JsonUniqueId JsonUniqueId => new(this.DataKey, this.UniqueId, "Sec");
|
|
|
|
internal DataContext.JsonSection ToJsonSection() => new()
|
|
{
|
|
UniqueId = this.JsonUniqueId,
|
|
Name = this.Name,
|
|
DataKey = this.DataKey,
|
|
Depth = this.Depth,
|
|
ParentUniqueId = this.Parent?.JsonUniqueId ?? new DataContext.JsonUniqueId("null", Guid.Empty, "Sec"),
|
|
TextElements = this.TextElements.Select(n => n.JsonUniqueId).ToList()
|
|
};
|
|
|
|
internal static Section FromJsonSection(DataContext.JsonSection jsonSection) => new()
|
|
{
|
|
UniqueId = jsonSection.UniqueId.UniqueId,
|
|
Name = jsonSection.Name,
|
|
DataKey = jsonSection.DataKey,
|
|
Depth = jsonSection.Depth,
|
|
Parent = null,
|
|
TextElements = new(),
|
|
};
|
|
} |