using gehGassi.Domain.Common; using gehGassi.Web.Helper; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace gehGassi.Web.Models { /// /// Viewmodel für eine FAQ /// public class FaqVm : SyncEntityVm { /// /// Titel der FAQ /// [Required(ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Faq_Title", Description = "Faq_Title_Desc")] public string Title { get; set; } /// /// Reihung des FAQ-Eintrags /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "Faq_Order", Description = "Faq_Order_Desc")] public int Order { get; set; } /// /// Online / Offline Status /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "Common_OnlineStatus", Description = "Common_OnlineStatus_Desc")] public OnlineStatusVm OnlineStatus { get; set; } /// /// Typ der FAQ /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "Faq_Type", Description = "Faq_Type_Desc")] public FaqTypeVm Type { 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 FAQs. /// Wird so gelöst, damit beliebig viele Sprachen verwendet werden können /// public class FaqTextVm { /// /// Id /// [Required(ErrorMessage = "Err_Required")] public string Id { get; set; } /// /// Srache /// [Required(ErrorMessage = "Err_Required")] public string Language { get; set; } /// /// Frage /// [RequiredIfDefaultLanguage("Language", ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Faq_Question", Description = "Faq_Question_Desc")] public string Question { get; set; } /// /// Antwort /// [RequiredIfDefaultLanguage("Language", ErrorMessage = "Err_Required")] [Display(Name = "Faq_Answer", Description = "Faq_Answer_Desc")] public string Answer { get; set; } } /// /// Viewmodel für eine FAQ Liste /// public class FaqListVm : SyncEntityLocalizableListVm { /// /// Titel der FAQ /// public string Title { get; set; } /// /// Reihung des FAQ-Eintrags /// public int Order { get; set; } /// /// Frage /// public string Question { get => Get("Question", GetLanguage()); set => Set("Question", GetLanguage(), value); } /// /// Übersetzungen Name /// public string QuestionLocalized { get; set; } /// /// Online-Status /// public OnlineStatusVm OnlineStatus { get; set; } /// /// Textdarstellung des Online-Status /// public string OnlineStatusText { get; set; } /// /// FAQ-Typ /// public FaqTypeVm Type { get; set; } /// /// Textdarstellung des FAQ-Typs /// public string TypeText { get; set; } /// /// Datum der Erstellung /// public DateTimeOffset Created { get; set; } } }