using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using gehGassi.Domain.Localization; using gehGassi.Web.Helper; namespace gehGassi.Web.Models { /// /// Viewmodel für eine Werbungs-Rubrik /// public class AdvertisementCategoryVm : SyncEntityVm { /// /// Titel der Rubrik /// [Required(ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "AdvertisementCategory_Title", Description = "AdvertisementCategory_Title_Desc")] public string Title { get; set; } /// /// Anmerkungen intern /// [Display(Name = "Common_Comment", Description = "Common_Comment_Desc")] public string Comment { get; set; } /// /// Bild für die Rubrik /// [Required(ErrorMessage = "Err_Required")] [MaxLength(500, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "AdvertisementCategory_Image", Description = "AdvertisementCategory_Image_Desc")] public string Image { get; set; } /// /// Online-Status /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "Common_OnlineStatus", Description = "Common_OnlineStatus_Desc")] public OnlineStatusVm OnlineStatus { get; set; } /// /// Datum der Erstellung /// [Display(Name = "Common_Created")] public DateTimeOffset Created { get; set; } /// /// Texte mehrsprachig /// public List TextVms { get; set; } } /// /// Hilfsklasse für das Erfassen Mehrsprachiger Texte für Rubriken. /// Wird so gelöst, damit beliebig viele Sprachen verwendet werden können /// public class AdvertisementCategoryTextVm { /// /// Id /// [Required(ErrorMessage = "Err_Required")] public string Id { get; set; } /// /// Srache /// [Required(ErrorMessage = "Err_Required")] public string Language { get; set; } /// /// Name /// //[Required(ErrorMessage = "Err_Required")] [RequiredIfDefaultLanguage("Language", ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "AdvertisementCategory_Name", Description = "AdvertisementCategory_Name_Desc")] public string Name { get; set; } /// /// Beschreibung /// [Display(Name = "AdvertisementCategory_Description", Description = "AdvertisementCategory_Description_Desc")] public string Description { get; set; } /// /// Bild für die jeweilige Sprache /// [Display(Name = "AdvertisementCategory_ImageLanguage", Description = "AdvertisementCategory_ImageLanguage_Desc")] public string ImageLanguage { get; set; } } /// /// Viewmodel für eine Werbungs-Rubrik Liste /// public class AdvertisementCategoryListVm : SyncEntityLocalizableListVm { /// /// Titel der Rubrik /// public string Title { get; set; } /// /// Anmerkungen intern /// public string Comment { get; set; } /// /// Name der Rubrik /// public string Name { get => Get("Name", GetLanguage()); set => Set("Name", GetLanguage(), value); } /// /// Übersetzungen Name /// public string NameLocalized { get; set; } /// /// Bild für die Rubrik /// public string Image { get; set; } /// /// Online-Status /// public OnlineStatusVm OnlineStatus { get; set; } /// /// Textdarstellung des Online-Status /// public string OnlineStatusText { get; set; } /// /// Datum der Erstellung /// public DateTimeOffset Created { get; set; } } }