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; }
}
}