93 lines
2.5 KiB
C#

using System;
namespace gehGassi.Web.Models
{
/// <summary>
/// Viewmodel für die Anzeige von Status-Infos
/// </summary>
public class AuditInfoVm
{
/// <summary>
/// Schlüssel nach Objekt
/// </summary>
public string Key { get; set; }
/// <summary>
/// Objekt-Typ bzw. Tabellenname
/// </summary>
public string Table { get; set; }
/// <summary>
/// Benutzer der die Aktion durchgeführt hat
/// </summary>
public string UserName { get; set; }
/// <summary>
/// Durchgeführte Aktion als int.
/// 1: Angelegt
/// 2: Bearbeitet
/// 3: gelöscht
/// </summary>
public int Action { get; set; }
/// <summary>
/// Datum + Uhrzeit der Aktion
/// </summary>
public DateTimeOffset DateTime { get; set; }
}
/// <summary>
/// Viewmodel für die Erweiterte Anzeige von Status-Infos
/// </summary>
public class AuditInfoWithNamesVm : AuditInfoVm
{
/// <summary>
/// Benutzer der die Aktion durchgeführt hat - Voller Name
/// </summary>
public string UserFullName { get; set; }
/// <summary>
/// Benutzer der die Aktion durchgeführt hat - Foto
/// </summary>
public string UserPhoto { get; set; }
/// <summary>
/// Gibt den Namen des Benuzters zurück
/// </summary>
/// <returns></returns>
public string GetName()
{
return !string.IsNullOrWhiteSpace(UserFullName) ? UserFullName : UserName;
}
/// <summary>
/// Gibt das Foto des Benutzers oder des Systems zurück
/// </summary>
/// <returns>Foto Url</returns>
public string GetPhoto()
{
if (!string.IsNullOrWhiteSpace(UserPhoto))
return UserPhoto;
if (UserName.ToLowerInvariant() == "system")
return "/images/icon_system.png";
return "/images/icon_user.png";
}
/// <summary>
/// Gibt ein Icon je nach Action zurück
/// </summary>
/// <returns>Icon</returns>
public string GetActionIcon()
{
if (Action == 1)
return "fa fa-plus-circle";
if (Action == 2)
return "fa fa-pencil";
if (Action == 3)
return "fa fa-times-circle";
return "fa fa-question-circle";
}
}
}