using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassi.Domain.Base; using gehGassi.Domain.Common; using gehGassi.Domain.Localization; namespace gehGassi.Domain.Dogs { /// /// Repräsentiert eine Hunderasse /// public class DogRace : SyncEntityLocalizable, IAuditable { /// /// Name der Rasse /// [Localized] [NotMapped] public string Name { get => Get("Name", GetLanguage()); set => Set("Name", GetLanguage(), value); } /// /// Name - Inhalt /// Max-Length / 100 im Viewmodel /// [Column] public string NameLocalized { get; set; } /// /// Beschreibung der Rasse /// [Localized] [NotMapped] public string Description { get => Get("Description", GetLanguage()); set => Set("Description", GetLanguage(), value); } /// /// Beschreibung der Rasse. /// [Column] public string DescriptionLocalized { get; set; } /// /// Beschreibung der Alterserwartung /// [Localized] [NotMapped] public string Age { get => Get("Age", GetLanguage()); set => Set("Age", GetLanguage(), value); } /// /// Beschreibung der Alterserwartung /// [Column] public string AgeLocalized { get; set; } /// /// Beschreibung der Größe und des Gewichts /// [Localized] [NotMapped] public string SizeAndWeight { get => Get("SizeAndWeight", GetLanguage()); set => Set("SizeAndWeight", GetLanguage(), value); } /// /// Beschreibung der Größe und des Gewichts /// [Column] public string SizeAndWeightLocalized { get; set; } /// /// Beschreibung der Persönlichkeit /// [Localized] [NotMapped] public string Personality { get => Get("Personality", GetLanguage()); set => Set("Personality", GetLanguage(), value); } /// /// Beschreibung der Persönlichkeit /// [Column] public string PersonalityLocalized { get; set; } /// /// Beschreibung Zusammenleben mit anderen Haustieren /// [Localized] [NotMapped] public string Coexistence { get => Get("Coexistence", GetLanguage()); set => Set("Coexistence", GetLanguage(), value); } /// /// Beschreibung Zusammenleben mit anderen Haustieren /// [Column] public string CoexistenceLocalized { get; set; } /// /// Beschreibung Pflege /// [Localized] [NotMapped] public string Care { get => Get("Care", GetLanguage()); set => Set("Care", GetLanguage(), value); } /// /// Beschreibung Pflege /// [Column] public string CareLocalized { get; set; } /// /// Beschreibung Entscheidungshilfe /// [Localized] [NotMapped] public string Decision { get => Get("Decision", GetLanguage()); set => Set("Decision", GetLanguage(), value); } /// /// Beschreibung Entscheidungshilfe /// [Column] public string DecisionLocalized { get; set; } /// /// Optional - Foto der Hunderasse /// [MaxLength(500)] public string Photo { get; set; } /// /// Datum der Erstellung /// public DateTimeOffset Created { 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 "DogRaces"; } public AuditableOptions Options() { return AuditableOptions.Create | AuditableOptions.Edit | AuditableOptions.Delete; } #endregion } /// /// Repräsentiert eine Hunderasse für Listen im Backend /// public class DogRaceWithNames : SyncEntityVw { /// /// Name der Rasse /// public string Name { get; set; } /// /// Name - Inhalt /// Max-Length / 100 im Viewmodel /// [Column] public string NameLocalized { get; set; } /// /// Beschreibung der Rasse /// public string Description { get; set; } /// /// Beschreibung der Branche. /// [Column] public string DescriptionLocalized { get; set; } /// /// Beschreibung der Alterserwartung /// public string Age { get; set; } /// /// Beschreibung der Alterserwartung /// [Column] public string AgeLocalized { get; set; } /// /// Beschreibung der Größe und des Gewichts /// public string SizeAndWeight { get; set; } /// /// Beschreibung der Größe und des Gewichts /// [Column] public string SizeAndWeightLocalized { get; set; } /// /// Beschreibung der Persönlichkeit /// public string Personality { get; set; } /// /// Beschreibung der Persönlichkeit /// [Column] public string PersonalityLocalized { get; set; } /// /// Beschreibung Zusammenleben mit anderen Haustieren /// public string Coexistence { get; set; } /// /// Beschreibung Zusammenleben mit anderen Haustieren /// [Column] public string CoexistenceLocalized { get; set; } /// /// Beschreibung Pflege /// public string Care { get; set; } /// /// Beschreibung Pflege /// [Column] public string CareLocalized { get; set; } /// /// Beschreibung Entscheidungshilfe /// public string Decision { get; set; } /// /// Beschreibung Entscheidungshilfe /// [Column] public string DecisionLocalized { get; set; } /// /// Optional - Foto der Hunderasse /// public string Photo { get; set; } /// /// Datum der Erstellung /// public DateTimeOffset Created { get; set; } } }