239 lines
6.2 KiB
C#
239 lines
6.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using gehGassi.Domain.Common;
|
|
using gehGassi.Domain.Localization;
|
|
|
|
namespace gehGassi.Domain.Dogs
|
|
{
|
|
/// <summary>
|
|
/// Repräsentiert die aktuell verfügbare Versionsnummer der App für die verschiedenen Plattformen
|
|
/// </summary>
|
|
public class AppVersion : LocalizableBase, IAuditable
|
|
{
|
|
/// <summary>
|
|
/// Id der Appversion
|
|
/// </summary>
|
|
[Key]
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Plattform für die die Version gilt
|
|
/// </summary>
|
|
[Required]
|
|
public Platform Platform { get; set; }
|
|
|
|
/// <summary>
|
|
/// Version Major
|
|
/// </summary>
|
|
[Required]
|
|
public int Major { get; set; }
|
|
|
|
/// <summary>
|
|
/// Version Minor
|
|
/// </summary>
|
|
[Required]
|
|
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>
|
|
[Required]
|
|
[MaxLength(100)]
|
|
public string Version { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ist die aktuell verfügbare Version
|
|
/// </summary>
|
|
[Required]
|
|
public bool IsCurrent { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ist die Version verpflichtend?
|
|
/// Muss installiert werden wenn die aktuell installierte Version älter ist
|
|
/// </summary>
|
|
[Required]
|
|
public bool IsMandatory { get; set; }
|
|
|
|
/// <summary>
|
|
/// Titel des Releases
|
|
/// </summary>
|
|
[Localized]
|
|
[NotMapped]
|
|
public string ReleaseTitle
|
|
{
|
|
get => Get("ReleaseTitle", GetLanguage());
|
|
set => Set("ReleaseTitle", GetLanguage(), value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Inhalt - Titel des Releases
|
|
/// </summary>
|
|
public string ReleaseTitleLocalized { get; set; }
|
|
|
|
/// <summary>
|
|
/// Änderungen in der Version
|
|
/// </summary>
|
|
[Localized]
|
|
[NotMapped]
|
|
public string ReleaseNotes
|
|
{
|
|
get => Get("ReleaseNotes", GetLanguage());
|
|
set => Set("ReleaseNotes", GetLanguage(), value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Inhalt - Änderungen in der Version
|
|
/// </summary>
|
|
public string ReleaseNotesLocalized { get; set; }
|
|
|
|
/// <summary>
|
|
/// Veröffentlichungsdatum
|
|
/// </summary>
|
|
[Required]
|
|
public DateTimeOffset ReleaseDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Letztes Update
|
|
/// </summary>
|
|
[Required]
|
|
public DateTimeOffset LastUpdate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Wann erstellt
|
|
/// </summary>
|
|
[Required]
|
|
public DateTimeOffset Created { get; set; }
|
|
|
|
#region IAuditable
|
|
/// <summary>
|
|
/// Gibt den eindeutigen Key für die Entität zurück;
|
|
/// Hier als String gelöst, weil damit auch kombinierte Schlüssel möglich sind.
|
|
/// </summary>
|
|
/// <returns>Eindeutiger Key</returns>
|
|
public string AuditKey()
|
|
{
|
|
return Id.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gibt den Objektnamen bzw. die Tabelle der Entität zurück
|
|
/// </summary>
|
|
/// <returns>Objektnamen</returns>
|
|
public string AuditTable()
|
|
{
|
|
return "AppVersions";
|
|
}
|
|
|
|
public AuditableOptions Options()
|
|
{
|
|
return AuditableOptions.Create | AuditableOptions.Edit | AuditableOptions.Delete;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
/// <summary>
|
|
/// Repräsentiert die aktuell verfügbare Versionsnummer der App für die verschiedenen Plattformen mit Namen aufgelöst
|
|
/// </summary>
|
|
public class AppVersionWithNames
|
|
{
|
|
/// <summary>
|
|
/// Id der Appversion
|
|
/// </summary>
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// Plattform für die die Version gilt
|
|
/// </summary>
|
|
public Platform Platform { 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>
|
|
/// Titel des Releases - Inhalt
|
|
/// </summary>
|
|
[Column]
|
|
public string ReleaseTitleLocalized { get; set; }
|
|
|
|
/// <summary>
|
|
/// Änderungen in der Version
|
|
/// </summary>
|
|
public string ReleaseNotes { get; set; }
|
|
|
|
/// <summary>
|
|
/// Inhalt - Änderungen in der Version
|
|
/// </summary>
|
|
[Column]
|
|
public string ReleaseNotesLocalized { 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; }
|
|
}
|
|
}
|