118 lines
3.3 KiB
C#
118 lines
3.3 KiB
C#
using gehGassi.Domain.Localization;
|
|
using gehGassi.Web.Helper;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace gehGassi.Web.Models
|
|
{
|
|
/// <summary>
|
|
/// Viewmodel für eine Text-Seite
|
|
/// </summary>
|
|
public class PageVm
|
|
{
|
|
/// <summary>
|
|
/// Eindeutige Id
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Titel der Seite
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[MaxLength(100, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Page_Title", Description = "Page_Title_Desc")]
|
|
public string Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// Eindeutiger Code für die Seite.
|
|
/// Wird für den Aufruf aus der App verwendet
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[MaxLength(20, ErrorMessage = "Err_StringLength_Max")]
|
|
[Remote("IsCodeAvailable", "Page", AdditionalFields = "Id", ErrorMessage = "Err_Code_InUse", HttpMethod = "POST")]
|
|
[Display(Name = "Page_Code", Description = "Page_Code_Desc")]
|
|
public string Code { get; set; }
|
|
|
|
/// <summary>
|
|
/// Texte mehrsprachig
|
|
/// </summary>
|
|
public List<PageTextVm> TextVms { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Hilfsklasse für das Erfassen Mehrsprachiger Texte für Text-Seiten.
|
|
/// Wird so gelöst, damit beliebig viele Sprachen verwendet werden können
|
|
/// </summary>
|
|
public class PageTextVm
|
|
{
|
|
/// <summary>
|
|
/// Id
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Srache
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
public string Language { get; set; }
|
|
|
|
/// <summary>
|
|
/// Beschreibung
|
|
/// </summary>
|
|
[Display(Name = "Page_Content", Description = "Page_Content_Desc")]
|
|
public string Content { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Viewmodel für ein Text-Seite Listendarstellung
|
|
/// </summary>
|
|
public class PageListVm
|
|
{
|
|
/// <summary>
|
|
/// Eindeutige Id
|
|
/// </summary>
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Titel der Seite
|
|
/// </summary>
|
|
public string Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// Eindeutiger Code für die Seite.
|
|
/// Wird für den Aufruf aus der App verwendet
|
|
/// </summary>
|
|
public string Code { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Viewmodel für ein Text-Seite Listendarstellung
|
|
/// </summary>
|
|
public class PageViewVm
|
|
{
|
|
/// <summary>
|
|
/// Eindeutige Id
|
|
/// </summary>
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Titel der Seite
|
|
/// </summary>
|
|
public string Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// Eindeutiger Code für die Seite.
|
|
/// Wird für den Aufruf aus der App verwendet
|
|
/// </summary>
|
|
public string Code { get; set; }
|
|
|
|
/// <summary>
|
|
/// Inhalt
|
|
/// </summary>
|
|
public string Content { get; set; }
|
|
}
|
|
}
|