using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using gehGassi.Web.Helper; namespace gehGassi.Web.Models { /// /// Viewmodel für eine Branche /// public class BranchVm : SyncEntityVm { /// /// Titel der Branche /// [Required(ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Branch_Title", Description = "Branch_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 Branche /// [Required(ErrorMessage = "Err_Required")] [MaxLength(500, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Branch_Image", Description = "Branch_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; } /// /// Für Listungen verfügbar /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "Branch_ListingAllowed", Description = "Branch_ListingAllowed_Desc")] public bool ListingAllowed { get; set; } /// /// sortierung /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "Branch_Order", Description = "Branch_Order_Desc")] public int Order { 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 Branchen. /// Wird so gelöst, damit beliebig viele Sprachen verwendet werden können /// public class BranchTextVm { /// /// 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 = "Branch_Name", Description = "Branch_Name_Desc")] public string Name { get; set; } /// /// Beschreibung /// [Display(Name = "Branch_Description", Description = "Branch_Description_Desc")] public string Description { get; set; } /// /// Bild für die jeweilige Sprache /// [Display(Name = "Branch_ImageLanguage", Description = "Branch_ImageLanguage_Desc")] public string ImageLanguage { get; set; } } /// /// Viewmodel für eine Branche Liste /// public class BranchListVm : SyncEntityLocalizableListVm { /// /// Titel der Branche /// public string Title { get; set; } /// /// Anmerkungen intern /// public string Comment { get; set; } /// /// Name der Branche /// public string Name { get => Get("Name", GetLanguage()); set => Set("Name", GetLanguage(), value); } /// /// Übersetzungen Name /// public string NameLocalized { get; set; } /// /// Bild für die Branche /// public string Image { get; set; } /// /// Online-Status /// public OnlineStatusVm OnlineStatus { get; set; } /// /// Textdarstellung des Online-Status /// public string OnlineStatusText { get; set; } /// /// Für Listungen verfügbar /// public bool ListingAllowed { get; set; } /// /// sortierung /// public int Order { get; set; } /// /// Datum der Erstellung /// public DateTimeOffset Created { get; set; } } }