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