using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using gehGassi.Domain.Localization; using gehGassi.Web.Helper; namespace gehGassi.Web.Models { /// /// Viewmodel für eine Steuer /// public class TaxRateVm { /// /// Id des Steuereintrags /// [Required(ErrorMessage = "Err_Required")] public int Id { get; set; } /// /// Land für die Steuer /// [Required(ErrorMessage = "Err_Required")] [MaxLength(2, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "Common_Country")] public string CountryIso { get; set; } /// /// Steuer in Prozent /// [Required(ErrorMessage = "Err_Required")] [Range(0.0, 100.0, ErrorMessage = "Err_Range")] [Display(Name = "TaxRate_Value")] public decimal Value { get; set; } /// /// Gibt an ob dieser Steuersatz für die Versandkosten verwendet werden soll /// [Required(ErrorMessage = "Err_Required")] [Display(Name = "TaxRate_UseForShipment", Description = "TaxRate_UseForShipment_Desc")] public bool UseForShipment { get; set; } /// /// Titel des Steuersatzes /// [Required(ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "TaxRate_Title")] public string Title { get; set; } /// /// Anmerkungen intern /// [Display(Name = "Common_Comment")] public string Comment { get; set; } /// /// Texte mehrsprachig /// public List TextVms { get; set; } } /// /// Viewmodel für das Anlegen und Bearbeiten einer Steuer /// public class TaxRateCrudVm : TaxRateVm { /// /// Land-Name /// public string CountryName { get; set; } } /// /// Hilfsklasse für das Erfassen Mehrsprachiger Texte für Steuern. /// Wird so gelöst, damit beliebig viele Sprachen verwendet werden können /// public class TaxRateTextVm { /// /// Id /// [Required(ErrorMessage = "Err_Required")] public int Id { get; set; } /// /// Srache /// [Required(ErrorMessage = "Err_Required")] public string Language { get; set; } /// /// Name /// [RequiredIfDefaultLanguage("Language", ErrorMessage = "Err_Required")] [MaxLength(100, ErrorMessage = "Err_StringLength_Max")] [Display(Name = "TaxRate_Name", Description = "TaxRate_Name_Desc")] public string Name { get; set; } } /// /// Viewmodel für Steuern in Listendarstellung /// public class TaxRateListVm : LocalizableBase { /// /// Id des Steuereintrags /// public int Id { get; set; } /// /// Land für die Steuer /// public string CountryIso { get; set; } /// /// Steuer in Prozent /// public decimal Value { get; set; } /// /// Gibt an ob dieser Steuersatz für die Versandkosten verwendet werden soll /// public bool UseForShipment { get; set; } /// /// Titel des Steuersatzes /// public string Title { get; set; } /// /// Name des Steuersatzed /// public string Name { get => Get("Name", GetLanguage()); set => Set("Name", GetLanguage(), value); } /// /// Übersetzungen Name /// public string NameLocalized { get; set; } } }