using System; using System.ComponentModel.DataAnnotations; using gehGassi.Web.Helper; namespace gehGassi.Web.Models { /// /// Viewmodel für eine News-Meldung /// public class NewsVm { /// /// Eindeutige Id /// [Required(ErrorMessage = "Err_Required")] public long Id { get; set; } /// /// Id der News-Kategorie /// [Required(ErrorMessage = "Err_Required")] [MaxLength(128, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "News_CategoryId")] public string CategoryId { get; set; } /// /// Status der News /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "News_Status", Description = "News_Status_Desc")] public NewsStatusVm Status { get; set; } /// /// Sichtbarkeit der News /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "News_Visibility", Description = "News_Visibility_Desc")] public NewsVisibilityVm Visibility { get; set; } /// /// Startdatum /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "News_Start", Description = "News_Start_Desc")] public DateTimeOffset? Start { get; set; } /// /// Enddatum /// [Display(Name = "News_End", Description = "News_End_Desc")] public DateTimeOffset? End { get; set; } /// /// Erstellt von /// [Required(ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "News_Creator", Description = "News_Creator_Desc")] public string Creator { get; set; } /// /// Stammt von einer externen Quelle /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "News_IsExternal", Description = "News_IsExternal_Desc")] public bool IsExternal { get; set; } /// /// Quelle der News wenn extern /// [RequiredIf("IsExternal", true, ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "News_Source", Description = "News_Source_Desc")] public string Source { get; set; } #region Inhalt /// /// Sprache für welche die News zur Verfüggung steht /// [Required(ErrorMessage = "Err_Required")] [MaxLength(2, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "News_Language", Description = "News_Language_Desc")] public string Language { get; set; } /// /// Bild für die Newsmeldung /// [MaxLength(500, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "News_Image", Description = "News_Image_Desc")] public string Image { get; set; } /// /// Schlagzeile /// [Required(ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "News_Headline", Description = "News_Headline_Desc")] public string Headline { get; set; } /// /// Inhalt - HTML /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "News_Content", Description = "News_Content_Desc")] public string Content { get; set; } #endregion #region Geo-Einschränkungen /// /// Art der Geo-Einschränkung /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "Common_GeoMode", Description = "Common_GeoMode_Desc")] public GeoModeVm GeoMode { get; set; } /// /// Bundesland / Staat /// [RequiredIf("GeoMode", (int)GeoModeVm.CountryAndState, ErrorMessage = "Err_Required")] [MaxLength(10, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_State")] public string State { get; set; } /// /// ISO2 Ländercode /// [RequiredIf("GeoMode", (int)GeoModeVm.Country, ErrorMessage = "Err_Required")] [MaxLength(2, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_CountryCode")] public string CountryCode { get; set; } /// /// Breitengrad /// [Range(-90.0, 90.0, ErrorMessage = "Err_Range")] [Display(Name = "Common_Lat")] public double Lat { get; set; } /// /// Längengrad /// [Range(-180.0, 180.0, ErrorMessage = "Err_Range")] [Display(Name = "Common_Lng")] public double Lng { get; set; } /// /// Radius für eine Geolocation /// [Range(0.0, 500.0, ErrorMessage = "Err_Range")] [Display(Name = "Common_Radius", Description = "Common_Radius_Desc")] public double Radius { get; set; } #endregion /// /// Gelöscht /// [Display(Name = "Common_Deleted")] public bool Deleted { get; set; } /// /// Datum der Erstellung /// [Display(Name = "Common_Created")] public DateTimeOffset Created { get; set; } } /// /// Viewmodel für das Anlegen und Bearbeiten einer News /// public class NewsCrudVm : NewsVm { /// /// Name der Kategorie /// public string CategoryName { get; set; } /// /// Land-Name /// public string CountryName { get; set; } /// /// Bundesland-Name /// public string StateName { get; set; } } /// /// Viewmodel für eine News-Meldung Listendarstellung /// public class NewsListVm { /// /// Eindeutige Id /// public long Id { get; set; } /// /// Id der News-Kategorie /// public string CategoryId { get; set; } /// /// Name der Kategorie /// public string CategoryName { get; set; } /// /// Status der News /// public NewsStatusVm Status { get; set; } /// /// Status der News /// public string StatusText { get; set; } /// /// Sichtbarkeit der News /// public NewsVisibilityVm Visibility { get; set; } /// /// Sichtbarkeit der News /// public string VisibilityText { get; set; } /// /// Startdatum /// public DateTimeOffset Start { get; set; } /// /// Enddatum /// public DateTimeOffset? End { get; set; } /// /// Erstellt von /// public string Creator { get; set; } /// /// Stammt von einer externen Quelle /// public bool IsExternal { get; set; } /// /// Quelle der News wenn extern /// public string Source { get; set; } #region Inhalt /// /// Sprache für welche die News zur Verfüggung steht /// public string Language { get; set; } /// /// Bild für die Newsmeldung /// public string Image { get; set; } /// /// Schlagzeile /// public string Headline { get; set; } #endregion #region Geo-Einschränkungen /// /// Art der Geo-Einschränkung /// public GeoModeVm GeoMode { get; set; } /// /// Art der Geo-Einschränkung /// public string GeoModeText { get; set; } /// /// Bundesland / Staat /// public string State { get; set; } /// /// Bundesland /// public string StateName { get; set; } /// /// ISO2 Ländercode /// public string CountryCode { get; set; } /// /// Land /// public string CountryName { get; set; } #endregion /// /// Gelöscht /// public bool Deleted { get; set; } /// /// Datum der Erstellung /// public DateTimeOffset Created { get; set; } } }