198 lines
5.6 KiB
C#

using System.ComponentModel.DataAnnotations.Schema;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using gehGassi.Web.Helper;
namespace gehGassi.Web.Models
{
/// <summary>
/// Viewmodel für eine AppVersion
/// </summary>
public class AppVersionVm
{
/// <summary>
/// Id der Appversion
/// </summary>
public int Id { get; set; }
/// <summary>
/// Plattform für die die Version gilt
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppVersion_Platform", Description = "AppVersion_Platform_Desc")]
public PlatformVm Platform { get; set; }
/// <summary>
/// Version Major
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppVersion_Major", Description = "AppVersion_Major_Desc")]
public int Major { get; set; }
/// <summary>
/// Version Minor
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppVersion_Minor", Description = "AppVersion_Minor_Desc")]
public int Minor { get; set; }
/// <summary>
/// Version Build
/// </summary>
[Display(Name = "AppVersion_Build", Description = "AppVersion_Build_Desc")]
public int? Build { get; set; }
/// <summary>
/// Version Revision
/// </summary>
[Display(Name = "AppVersion_Revision", Description = "AppVersion_Revision_Desc")]
public int? Revision { get; set; }
/// <summary>
/// Version als string
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[MaxLength(100, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "AppVersion_Version", Description = "AppVersion_Version_Desc")]
public string Version { get; set; }
/// <summary>
/// Ist die aktuell verfügbare Version
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppVersion_IsCurrent", Description = "AppVersion_IsCurrent_Desc")]
public bool IsCurrent { get; set; }
/// <summary>
/// Ist die Version verpflichtend?
/// Muss installiert werden wenn die aktuell installierte Version älter ist
/// </summary>
[Required(ErrorMessage = "Err_Required")]
[Display(Name = "AppVersion_IsMandatory", Description = "AppVersion_IsMandatory_Desc")]
public bool IsMandatory { get; set; }
/// <summary>
/// Veröffentlichungsdatum
/// </summary>
[Display(Name = "AppVersion_ReleaseDate", Description = "AppVersion_ReleaseDate_Desc")]
public DateTimeOffset ReleaseDate { get; set; }
/// <summary>
/// Texte mehrsprachig
/// </summary>
public List<AppVersionTextVm> TextVms { get; set; }
}
/// <summary>
/// Hilfsklasse für das Erfassen Mehrsprachiger Texte für Appversionen.
/// Wird so gelöst, damit beliebig viele Sprachen verwendet werden können
/// </summary>
public class AppVersionTextVm
{
/// <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>
/// Titel
/// </summary>
[RequiredIfDefaultLanguage("Language", ErrorMessage = "Err_Required")]
[MaxLength(100, ErrorMessage = "Err_StringLength_Max")]
[Display(Name = "AppVersion_ReleaseTitle", Description = "AppVersion_ReleaseTitle_Desc")]
public string ReleaseTitle { get; set; }
/// <summary>
/// Notes
/// </summary>
[RequiredIfDefaultLanguage("Language", ErrorMessage = "Err_Required")]
[Display(Name = "AppVersion_ReleaseNotes", Description = "AppVersion_ReleaseNotes_Desc")]
public string ReleaseNotes { get; set; }
}
/// <summary>
/// Viewmodel für eine AppVersion - Listendarstellung
/// </summary>
public class AppVersionListVm
{
/// <summary>
/// Id der Appversion
/// </summary>
public int Id { get; set; }
/// <summary>
/// Plattform für die die Version gilt
/// </summary>
public PlatformVm Platform { get; set; }
/// <summary>
/// Plattform für die die Version gilt
/// </summary>
public string PlatformText { get; set; }
/// <summary>
/// Version Major
/// </summary>
public int Major { get; set; }
/// <summary>
/// Version Minor
/// </summary>
public int Minor { get; set; }
/// <summary>
/// Version Build
/// </summary>
public int? Build { get; set; }
/// <summary>
/// Version Revision
/// </summary>
public int? Revision { get; set; }
/// <summary>
/// Version als string
/// </summary>
public string Version { get; set; }
/// <summary>
/// Ist die aktuell verfügbare Version
/// </summary>
public bool IsCurrent { get; set; }
/// <summary>
/// Ist die Version verpflichtend?
/// Muss installiert werden wenn die aktuell installierte Version älter ist
/// </summary>
public bool IsMandatory { get; set; }
/// <summary>
/// Titel des Releases
/// </summary>
public string ReleaseTitle { get; set; }
/// <summary>
/// Veröffentlichungsdatum
/// </summary>
public DateTimeOffset ReleaseDate { get; set; }
/// <summary>
/// Letztes Update
/// </summary>
public DateTimeOffset LastUpdate { get; set; }
/// <summary>
/// Wann erstellt
/// </summary>
public DateTimeOffset Created { get; set; }
}
}