public static string ValidateFiscalQuarter(string fiscalPeriodParam) { var tokens = fiscalPeriodParam.Split('Q'); if (tokens.Length != 2) { return("フォーマットが正しくありません。'2017Q1'のように設定してください"); } else if (!uint.TryParse(tokens[0], out uint year)) { return("年が数値ではありません。"); } else if (!uint.TryParse(tokens[1], out uint quarter)) { return("四半期が数値ではありません。"); } else { try { FiscalYearValidator.Validate(year); } catch (ValidationError) { return($"年の設定が不正です: {year}"); } try { FiscalQuarterValidator.Validate(quarter); } catch (ValidationError) { return($"四半期の設定が不正です: {quarter}"); } } return(null); }
public void ValidateTest() { // 1 - 5 is quarter, path validate method new List <uint> { 1, 2, 3, 4, 5 }.ForEach(q => FiscalQuarterValidator.Validate(q)); // error case, 0 or 6+ int Assert.ThrowsException <ValidationError>(() => FiscalQuarterValidator.Validate(0)); Assert.ThrowsException <ValidationError>(() => FiscalQuarterValidator.Validate(6)); }
public static FiscalQuarterPeriod Create(uint fiscalYear, uint fiscalQuarter) { FiscalYearValidator.Validate(fiscalYear); FiscalQuarterValidator.Validate(fiscalQuarter); return(new FiscalQuarterPeriod(fiscalYear, fiscalQuarter)); }