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