using System; using System.ComponentModel.DataAnnotations; using gehGassi.Web.Helper; namespace gehGassi.Web.Models { /// /// ViewModel für eine Adresse /// Nur Land REQUIRED /// public class AddressVm { /// /// Optionale Adresszeile 1 /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_AddressLine1")] public string AddressLine1 { get; set; } /// /// Optionale Adresszeile 2 /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_AddressLine2")] public string AddressLine2 { get; set; } /// /// Optional: Stadt / Ort /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_City")] public string City { get; set; } /// /// Optinale PLZ /// [MaxLength(20, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_Zip")] public string Zip { get; set; } /// /// Bundesland / Staat /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Required(ErrorMessage = "Err_Required")] [Display(Name = "Address_State")] public string State { get; set; } /// /// ISO2 Ländercode /// [Required(ErrorMessage = "Err_Required")] [MaxLength(2, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_CountryCode")] public string CountryCode { get; set; } } /// /// Adresse mit Namen für Bundesland und Land aufgelöst /// public class AddressWithNamesVm : AddressVm { /// /// Bundesland Name /// public string StateName { get; set; } /// /// Landname /// public string CountryName { get; set; } } /// /// ViewModel für eine Adresse /// Adresszeile1, Stadt, PLZ und Land REQUIRED /// public class AddressRequiredVm { /// /// Optionale Adresszeile 1 /// [Required(ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_AddressLine1")] public string AddressLine1 { get; set; } /// /// Optionale Adresszeile 2 /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_AddressLine2")] public string AddressLine2 { get; set; } /// /// Optional: Stadt / Ort /// [Required(ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_City")] public string City { get; set; } /// /// Optinale PLZ /// [Required(ErrorMessage = "Err_Required")] [MaxLength(20, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_Zip")] public string Zip { get; set; } /// /// Bundesland / Staat /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Required(ErrorMessage = "Err_Required")] [Display(Name = "Address_State")] public string State { get; set; } /// /// ISO2 Ländercode /// [Required(ErrorMessage = "Err_Required")] [MaxLength(2, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_CountryCode")] public string CountryCode { get; set; } } /// /// ViewModel für eine Adresse bei Endkunden. /// Required wird nur angewandt wenn die Lieferadresse ungleich der Rechnungsadresse ist /// public class DeliveryAddressVm { /// /// Optionale Adresszeile 1 /// [RequiredIf("DeliveryAddressIsBilling", false, ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_AddressLine1")] public string AddressLine1 { get; set; } /// /// Optionale Adresszeile 2 /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_AddressLine2")] public string AddressLine2 { get; set; } /// /// Optional: Stadt / Ort /// [RequiredIf("DeliveryAddressIsBilling", false, ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_City")] public string City { get; set; } /// /// Optinale PLZ /// [RequiredIf("DeliveryAddressIsBilling", false, ErrorMessage = "Err_Required")] [MaxLength(20, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_Zip")] public string Zip { get; set; } /// /// Bundesland / Staat /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_State")] public string State { get; set; } /// /// ISO2 Ländercode /// [Required(ErrorMessage = "Err_Required")] [MaxLength(2, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Address_CountryCode")] public string CountryCode { get; set; } /// /// Ist die Liefer-Adresse auch die Rechnungsadresse? /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "Address_DeliveryAddressIsBilling",Description = "Address_DeliveryAddressIsBilling_Desc")] public bool DeliveryAddressIsBilling { get; set; } } /// /// ViewModel für Kontaktdaten /// public class ContactVm { /// /// Email-Adresse der Kontaktperson /// [EmailAddress(ErrorMessage = "Err_InvalidEmail")] [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Email")] public string Email { get; set; } /// /// Optinale Telefonnummer (Festnetz) /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Phone")] public string Phone { get; set; } /// /// Optinale Handy-Nummer /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Mobile")] public string Mobile { get; set; } /// /// Optional: Fax /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Fax")] public string Fax { get; set; } /// /// Optional: Web-Adresse /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Web")] public string Web { get; set; } } /// /// ViewModel für Kontaktdaten /// public class ContactEmailRequiredVm { /// /// Email-Adresse der Kontaktperson /// [Required(ErrorMessage = "Err_Required")] [EmailAddress(ErrorMessage = "Err_InvalidEmail")] [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Email")] public string Email { get; set; } /// /// Optinale Telefonnummer (Festnetz) /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Phone")] public string Phone { get; set; } /// /// Optinale Handy-Nummer /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Mobile")] public string Mobile { get; set; } /// /// Optional: Fax /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Fax")] public string Fax { get; set; } /// /// Optional: Web-Adresse /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Web")] public string Web { get; set; } } /// /// ViewModel für Kontaktdaten Minversion /// public class ContactMinVm { /// /// Email-Adresse der Kontaktperson /// [Required(ErrorMessage = "Err_Required")] [EmailAddress(ErrorMessage = "Err_InvalidEmail")] [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Email")] public string Email { get; set; } /// /// Optinale Telefonnummer (Festnetz) /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Phone")] public string Phone { get; set; } /// /// Optinale Handy-Nummer /// [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Contact_Mobile")] public string Mobile { get; set; } } /// /// Viewmodel für die Übernahme von Identitäten - Admin Modus /// Mandant kann zusätzlich gewählt werden /// public class ImpersionateAdminVm : ImpersionateVm { } /// /// Viewmodel für die Übernahme von Identitäten /// public class ImpersionateVm { /// /// Id des Kunden /// [Display(Name = "Common_CustomerId")] public long? CustomerId { get; set; } /// /// Name des Kunden /// [Display(Name = "Common_CustomerId")] public string CustomerName { get; set; } /// /// Id des App-Users /// [Display(Name = "Common_AppUserId")] public string AppUserId { get; set; } /// /// Name des App-Users /// [Display(Name = "Common_AppUserId")] public string AppUserName { get; set; } } /// /// Viewmodel für das Aktivieren der 2 Faktor Authentifizierung /// public class EnableTwoFactorVm { /// /// 2-Faktor Code /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "TwoFactor_Code")] public string Code { get; set; } /// /// Schlüssel /// public string SharedKey { get; set; } /// /// Url für den Authenticator /// public string AuthenticatorUri { get; set; } } /// /// Viewmodel für das Authentifizieren mit 2 Faktor Code /// public class VerifyAuthenticatorCodeViewModel { /// /// 2-Faktor Code /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "TwoFactor_Code")] public string Code { get; set; } } /// /// Model für Views wenn ein Kunde ausgewählt wurde. /// Wird verwendet um sowohl die TenantId als auch die CustomerId an einen View zu übergeben /// public class CustomerSelectedModel { /// /// Id Mandanten /// public Guid? TenantId { get; set; } /// /// Id des Kunden /// public long? CustomerId { get; set; } } /// /// Viewmodel für die Verwaltung von SocialMedia Infos /// public class SocialMediaVm { /// /// Link zu Twitter /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_Twitter", Description = "SocialMedia_Url_Desc")] public string Twitter { get; set; } /// /// Link zu facebook /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_Facebook", Description = "SocialMedia_Url_Desc")] public string Facebook { get; set; } /// /// Link zu LinkedIn /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_LinkedIn", Description = "SocialMedia_Url_Desc")] public string LinkedIn { get; set; } /// /// Link zu Xing /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_Xing", Description = "SocialMedia_Url_Desc")] public string Xing { get; set; } /// /// Link zu Instagram /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_Instagram", Description = "SocialMedia_Url_Desc")] public string Instagram { get; set; } /// /// Link zu Pinterest /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_Pinterest", Description = "SocialMedia_Url_Desc")] public string Pinterest { get; set; } /// /// Link zu eigenem Blog /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_Blog", Description = "SocialMedia_Url_Desc")] public string Blog { get; set; } /// /// Link zu Youtube /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_YouTube", Description = "SocialMedia_Url_Desc")] public string YouTube { get; set; } /// /// Link zu Vimeo /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_Vimeo", Description = "SocialMedia_Url_Desc")] public string Vimeo { get; set; } /// /// Link zu Snapchat /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_SnapChat", Description = "SocialMedia_Url_Desc")] public string SnapChat { get; set; } /// /// Link zu TikTok /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_TikTok", Description = "SocialMedia_Url_Desc")] public string TikTok { get; set; } /// /// Link zu Reddit /// [MaxLength(255, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "SocialMedia_Reddit")] public string Reddit { get; set; } /// /// Gibt an ob Social Media angezeigt werden sollen, wenn vorhanden /// [Display(Name = "SocialMedia_Show", Description = "SocialMedia_Show_Desc")] public bool Show { get; set; } } /// /// Viewmodel für das Anzeigen einer Karte mit voreingestellten Werten /// public class MapVm { /// /// Breitengrad /// [Required(ErrorMessage = "Err_Required")] [Range(-90.0, 90.0, ErrorMessage = "Err_Range")] [Display(Name = "Pin_Lat", Description = "Pin_Lat_Desc")] public double Lat { get; set; } /// /// Längengrad /// [Required(ErrorMessage = "Err_Required")] [Range(-180.0, 180.0, ErrorMessage = "Err_Range")] [Display(Name = "Pin_Lng", Description = "Pin_Lng_Desc")] public double Lng { get; set; } /// /// Effektiver Radius des Pins /// [Required(ErrorMessage = "Err_Required")] [Range(0.1, 500.0, ErrorMessage = "Err_Range")] [Display(Name = "Pin_Radius", Description = "Pin_Radius_Desc")] public double Radius { get; set; } /// /// Soll die Auswahl des Radius gesperrt werden? /// [Required(ErrorMessage = "Err_Required")] public bool RadiusLocked { get; set; } } }