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; }
}
}