protected TaxOfficeInfo GetTaxOfficeInfo(int taxOfficeId, bool allowTest) { var result = OnTaxOfficeInfoQuery(taxOfficeId, allowTest) ?? TaxOffices.Load(taxOfficeId).FirstOrDefault(); if (result != null && result.IsTest && !allowTest) { result = null; } return(result); }
private TaxNumber([NotNull] TaxOffices taxOffices, [NotNull] ParseResult parseResult) { if (taxOffices == null) { throw new ArgumentNullException(nameof(taxOffices)); } TaxOffices = taxOffices; _province = parseResult.Province; _status = parseResult.Status; Number = parseResult.TaxNumber; }
private IReadOnlyList <int> GetProvinceCheckDigitFactors() { IReadOnlyList <int> result; switch (Province) { case Elster.Province.Bayern: case Elster.Province.Brandenburg: case Elster.Province.MecklenburgVorpommern: case Elster.Province.Saarland: case Elster.Province.Sachsen: case Elster.Province.SachsenAnhalt: case Elster.Province.Thueringen: result = _checkDigitFactorsVariant1; break; case Elster.Province.Berlin: result = TaxOffices.IsBerlinA(FederalTaxOfficeId, RegionId) ? _checkDigitFactorsBerlinA : _checkDigitFactorsBerlinB; break; case Elster.Province.RheinlandPfalz: result = _checkDigitFactorsVariant3; break; case Elster.Province.Bremen: case Elster.Province.Hamburg: result = _checkDigitFactorsVariant2; break; case Elster.Province.Niedersachsen: result = _checkDigitFactorsVariant4; break; case Elster.Province.NordrheinWestfalen: result = _checkDigitFactorsVariant5; break; case Elster.Province.BadenWuerttemberg: case Elster.Province.Hessen: case Elster.Province.SchleswigHolstein: result = _checkDigitFactorsVariant6; break; default: throw new NotSupportedException($"Das Bundesland {Province} wird nicht unterstützt."); } Debug.Assert(result == null || result.Count == 12, "Das Ergebnis muss entweder NULL sein oder 12 Elemente haben."); return(result); }
static TaxOffices() { Active = new TaxOffices(new StaticTaxOfficeProvider()); All = new TaxOffices(new StaticTaxOfficeProvider(), null); }
/// <summary> /// Überprüft ob die bundeslandspezifische Steuernummer gültig ist /// </summary> /// <param name="taxOffices">Die Finanzämter die zur Prüfung herangezogen werden</param> /// <param name="taxNumber">Die zu überprüfende bundeslandspezifische Steuernummer</param> /// <param name="province">Das Bundesland für die bundeslandspezifische Steuernummer</param> /// <returns><code>true</code> wenn die bundeslandspezifische Steuernummer gültig ist</returns> public static bool IsValid([NotNull] TaxOffices taxOffices, [NotNull] string taxNumber, Province province) { return(new TaxNumber(taxOffices, taxNumber, province).Valid); }
/// <summary> /// Überprüft ob die ELSTER-Steuernummer gültig ist /// </summary> /// <param name="taxOffices">Die Finanzämter die zur Prüfung herangezogen werden</param> /// <param name="taxNumber">Die zu überprüfende ELSTER-Steuernummer</param> /// <returns><code>true</code> wenn die Steuernummer gültig ist</returns> /// <remarks>Dieser Aufruf funktioniert nur für die ELSTER-Steuernummer, nicht für die bundeslandspezifische Steuernummer</remarks> public static bool IsValid([NotNull] TaxOffices taxOffices, [NotNull] string taxNumber) { return(new TaxNumber(taxOffices, taxNumber, null).Valid); }
public static TaxNumber Parse([NotNull] TaxOffices taxOffices, [NotNull] string taxNumber, Province province) { var parseResult = ParseNumber(taxNumber, province); return(new TaxNumber(taxOffices, parseResult)); }
private TaxNumber([NotNull] TaxOffices taxOffices, [NotNull] string number, Province?province) : this(taxOffices, TryParseNumber(number, province)) { }
/// <summary> /// Initialisiert eine neue Instanz der <see cref="TaxNumber"/> Klasse /// </summary> /// <param name="taxOffices">Die Finanzämter die zur Prüfung herangezogen werden</param> /// <param name="number">Die zu überprüfende Steuernummer</param> /// <param name="province">Das Bundesland für eine bundeslandspezifische Steuernummer</param> public TaxNumber([NotNull] TaxOffices taxOffices, [NotNull] string number, Province province) : this(taxOffices, number, (Province?)province) { }
/// <summary> /// Initialisiert eine neue Instanz der <see cref="TaxNumber"/> Klasse /// </summary> /// <param name="taxOffices">Die Finanzämter die zur Prüfung herangezogen werden</param> /// <param name="number">Die zu überprüfende Steuernummer</param> public TaxNumber([NotNull] TaxOffices taxOffices, [NotNull] string number) : this(taxOffices, number, null) { }