381 lines
11 KiB
C#
381 lines
11 KiB
C#
using System;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using gehGassi.Web.Helper;
|
|
|
|
namespace gehGassi.Web.Models
|
|
{
|
|
/// <summary>
|
|
/// Viewmodel für einen Hund
|
|
/// </summary>
|
|
public class DogVm : SyncEntityVm
|
|
{
|
|
/// <summary>
|
|
/// Id der Hunderasse
|
|
/// </summary>
|
|
[MaxLength(128, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Dog_DogRaceId", Description = "Dog_DogRaceId_Desc")]
|
|
public string DogRaceId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des Hundebesitzers
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[MaxLength(128, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Dog_DogOwnerId", Description = "Dog_DogOwnerId_Desc")]
|
|
public string AppUserId { get; set; }
|
|
|
|
#region Basis
|
|
|
|
/// <summary>
|
|
/// Nummer des Hundes
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[MaxLength(100, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Dog_Number", Description = "Dog_Number_Desc")]
|
|
public string Number { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name des Hundes
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[MaxLength(100, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Dog_Name", Description = "Dog_Name_Desc")]
|
|
public string Name { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optional: Beschreibung für Walker und Sitter
|
|
/// </summary>
|
|
[MaxLength(5000, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Dog_Description", Description = "Dog_Description_Desc")]
|
|
public string Description { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optional - Foto des Hundes
|
|
/// </summary>
|
|
[MaxLength(500, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Dog_Photo", Description = "Dog_Photo_Desc")]
|
|
public string Photo { get; set; }
|
|
|
|
/// <summary>
|
|
/// Geburtstag des Hundes
|
|
/// </summary>
|
|
[Display(Name = "Dog_BirthDate")]
|
|
public DateTimeOffset? BirthDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Geschlecht des Hundes
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_Sex")]
|
|
public DogSexVm Sex { get; set; }
|
|
|
|
/// <summary>
|
|
/// Größe des Hundes
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_Size")]
|
|
public DogSizeVm Size { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region Eigenschaften beim Gassi gehen
|
|
|
|
/// <summary>
|
|
/// Zieht an der Leine
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_PullsTheLeash")]
|
|
public bool PullsTheLeash { get; set; }
|
|
|
|
/// <summary>
|
|
/// Geht an der Leine
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_WalksTheLeash")]
|
|
public bool WalksTheLeash { get; set; }
|
|
|
|
/// <summary>
|
|
/// Kennt die Grundkommandos
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_BasicCommands", Description = "Dog_BasicCommands_Desc")]
|
|
public bool BasicCommands { get; set; }
|
|
|
|
/// <summary>
|
|
/// Jagd andere Tiere
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_Hunter")]
|
|
public bool Hunter { get; set; }
|
|
|
|
/// <summary>
|
|
/// Versucht alles zu essen
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_Eating", Description = "Dog_Eating_Desc")]
|
|
public bool Eating { get; set; }
|
|
|
|
/// <summary>
|
|
/// Springt Menschen an
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_Jumper")]
|
|
public bool Jumper { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region Persönlichkeit
|
|
|
|
/// <summary>
|
|
/// Mag Erwachsene
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_LikesAdults")]
|
|
public bool LikesAdults { get; set; }
|
|
|
|
/// <summary>
|
|
/// Mag Kinder
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_LikesChildren")]
|
|
public bool LikesChildren { get; set; }
|
|
|
|
/// <summary>
|
|
/// Mag Artgenossen
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_LikesConspecifics")]
|
|
public bool LikesConspecifics { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ist zutraulich
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_IsTrustful")]
|
|
public bool IsTrustful { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ist aggressiv
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_IsAggressiv", Description = "Dog_IsAggressiv_Desc")]
|
|
public bool IsAggressiv { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ist ein Einzelgänger
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_IsLoneGunner")]
|
|
public bool IsLoneGunner { get; set; }
|
|
|
|
/// <summary>
|
|
/// Aggressionsgrad des Hundes, wenn aggressiv
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_DogAggressionLevel", Description = "Dog_DogAggressionLevel_Desc")]
|
|
public DogAggressionLevelVm AggressionLevel { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region Verhalten wenn jemand das Haus betritt
|
|
|
|
/// <summary>
|
|
/// Stürmt nach draussen
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_RushesOutside", Description = "Dog_RushesOutside_Desc")]
|
|
public bool RushesOutside { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ist ruhig und entspannt
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_IsCalm", Description = "Dog_IsCalm_Desc")]
|
|
public bool IsCalm { get; set; }
|
|
|
|
/// <summary>
|
|
/// Pinkelt vor Aufregung
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_IsPeeing", Description = "Dog_IsPeeing_Desc")]
|
|
public bool IsPeeing { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ist schüchtern
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_IsShy", Description = "Dog_IsShy_Desc")]
|
|
public bool IsShy { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bewacht das zuhause
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_IsGuard", Description = "Dog_IsGuard_Desc")]
|
|
public bool IsGuard { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region Medical
|
|
|
|
/// <summary>
|
|
/// Unverträglichkeiten
|
|
/// </summary>
|
|
[MaxLength(500, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Dog_Intolerances", Description = "Dog_Intolerances_Desc")]
|
|
public string Intolerances { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ist gechipt
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_Chiped", Description = "Dog_Chiped_Desc")]
|
|
public bool Chiped { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ist sterilisiert?
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_Sterilized", Description = "Dog_Sterilized_Desc")]
|
|
public bool Sterilized { get; set; }
|
|
|
|
/// <summary>
|
|
/// Medizinische Informationen
|
|
/// </summary>
|
|
[MaxLength(500, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Dog_MedicalInfo", Description = "Dog_MedicalInfo_Desc")]
|
|
public string MedicalInfo { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region Sitting
|
|
|
|
/// <summary>
|
|
/// Ist stubenrein?
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_HouseTrained")]
|
|
public bool HouseTrained { get; set; }
|
|
|
|
/// <summary>
|
|
/// Fütterungszeiten
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Err_Required")]
|
|
[Display(Name = "Dog_FeedingTimes", Description = "Dog_FeedingTimes_Desc")]
|
|
public DogFeedingTimesVm FeedingTimes { get; set; }
|
|
|
|
/// <summary>
|
|
/// Fütterungszeiten Individuell
|
|
/// </summary>
|
|
[RequiredIf("FeedingTimes", (int)DogFeedingTimesVm.Individual, ErrorMessage = "Err_Required")]
|
|
[MaxLength(500, ErrorMessage = "Err_StringLength_Max")]
|
|
[Display(Name = "Dog_FeedingIndividual", Description = "Dog_FeedingIndividual_Desc")]
|
|
public string FeedingIndividual { get; set; }
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// Optional: Kommentar von gehgassi
|
|
/// </summary>
|
|
[Display(Name = "Dog_Comment", Description = "Dog_Comment_Desc")]
|
|
public string Comment { get; set; }
|
|
|
|
/// <summary>
|
|
/// Datum der Erstellung
|
|
/// </summary>
|
|
[Display(Name = "Common_Created")]
|
|
public DateTimeOffset Created { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Viewmodel für das Anlegen & Bearbeiten eines Hundes
|
|
/// </summary>
|
|
public class DogCrudVm : DogVm
|
|
{
|
|
/// <summary>
|
|
/// Name der Hunderasse
|
|
/// </summary>
|
|
public string DogRaceName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name des Hundebesitzers
|
|
/// </summary>
|
|
public string AppUserName { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Viewmodel für einen Hund - Listendarstellung
|
|
/// </summary>
|
|
public class DogListVm : SyncEntityListVm
|
|
{
|
|
/// <summary>
|
|
/// Id der Hunderasse
|
|
/// </summary>
|
|
public string DogRaceId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name der Hunderasse
|
|
/// </summary>
|
|
public string DogRaceName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Id des App-Users
|
|
/// </summary>
|
|
public string AppUserId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name des Hundebesitzers
|
|
/// </summary>
|
|
public string AppUserName { get; set; }
|
|
|
|
#region Basis
|
|
|
|
/// <summary>
|
|
/// Nummer des Hundes
|
|
/// </summary>
|
|
public string Number { get; set; }
|
|
|
|
/// <summary>
|
|
/// Name des Hundes
|
|
/// </summary>
|
|
public string Name { get; set; }
|
|
|
|
/// <summary>
|
|
/// Optional - Foto des Hundes
|
|
/// </summary>
|
|
public string Photo { get; set; }
|
|
|
|
/// <summary>
|
|
/// Geburtstag des Hundes
|
|
/// </summary>
|
|
public DateTimeOffset? BirthDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Geschlecht des Hundes
|
|
/// </summary>
|
|
public DogSexVm Sex { get; set; }
|
|
|
|
/// <summary>
|
|
/// Geschlecht des Hundes
|
|
/// </summary>
|
|
public string SexText { get; set; }
|
|
|
|
/// <summary>
|
|
/// Größe des Hundes
|
|
/// </summary>
|
|
public DogSizeVm Size { get; set; }
|
|
|
|
/// <summary>
|
|
/// Größe des Hundes
|
|
/// </summary>
|
|
public string SizeText { get; set; }
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// Datum der Erstellung
|
|
/// </summary>
|
|
public DateTimeOffset Created { get; set; }
|
|
}
|
|
}
|