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