using gehGassi.Domain.Common; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassi.Domain.Localization; using System.ComponentModel.DataAnnotations.Schema; namespace gehGassi.Domain.Levels { /// /// Repräsentiert eine Stufe für einen Dogwalker /// public class DogWalkerLevel : LocalizableBase, IAuditable { /// /// Eindeutige Id /// [Key] [Required] public long Id { get; set; } /// /// Stufe /// [Required] public int Number { get; set; } /// /// Punkte die für diese Stufe benötigt werden /// [Required] public int ExperiencePoints { get; set; } /// /// Name der Stufe /// [Localized] [NotMapped] public string Name { get => Get("Name", GetLanguage()); set => Set("Name", GetLanguage(), value); } /// /// Name der Stufe - Inhalt /// Max-Length / 100 im Viewmodel /// [Column] public string NameLocalized { get; set; } /// /// Kurzbeschreibung /// [Localized] [NotMapped] public string ShortDescription { get => Get("ShortDescription", GetLanguage()); set => Set("ShortDescription", GetLanguage(), value); } /// /// Kurzbeschreibung /// public string ShortDescriptionLocalized { get; set; } /// /// Beschreibung der Stufe HTML /// [Localized] [NotMapped] public string Description { get => Get("Description", GetLanguage()); set => Set("Description", GetLanguage(), value); } /// /// Beschreibung /// public string DescriptionLocalized { get; set; } #region IAuditable /// /// Gibt den eindeutigen Key für die Entität zurück; /// Hier als String gelöst, weil damit auch kombinierte Schlüssel möglich sind. /// /// Eindeutiger Key public string AuditKey() { return Id.ToString(); } /// /// Gibt den Objektnamen bzw. die Tabelle der Entität zurück /// /// Objektnamen public string AuditTable() { return "Levels"; } public AuditableOptions Options() { return AuditableOptions.Create | AuditableOptions.Edit | AuditableOptions.Delete; } #endregion } }