public TimePeriodQuery(int startYear, TimeIdentifier startCode, int endYear, TimeIdentifier endCode)
 {
     StartYear = startYear;
     StartCode = startCode;
     EndYear   = endYear;
     EndCode   = endCode;
 }
 private static TimePeriodReplacementViewModel ValidateTimePeriodForReplacement(
     int year,
     TimeIdentifier code,
     ReplacementSubjectMeta replacementSubjectMeta)
 {
     return(new TimePeriodReplacementViewModel(
                year: year,
                code: code,
                valid: replacementSubjectMeta.TimePeriods.Contains((year, code))
                ));
 }
        private string FormatInternal(int year, TimeIdentifier timeIdentifier)
        {
            var labelValueAttribute = timeIdentifier.GetEnumAttribute <TimeIdentifierMetaAttribute>();
            var formattedYear       = FormatYearInternal(year);

            return(LabelFormat switch
            {
                TimePeriodLabelFormat.FullLabel => $"{formattedYear} {labelValueAttribute.Label}",
                TimePeriodLabelFormat.FullLabelBeforeYear => $"{labelValueAttribute.Label} {formattedYear}",
                TimePeriodLabelFormat.NoLabel => formattedYear,
                TimePeriodLabelFormat.ShortLabel => IsNullOrEmpty(labelValueAttribute.ShortLabel)
                    ? formattedYear
                    : $"{formattedYear} {labelValueAttribute.ShortLabel}",
                _ => throw new ArgumentOutOfRangeException()
            });
        public static bool IsAlike(this TimeIdentifier timeIdentifier, TimeIdentifier compare)
        {
            if (timeIdentifier.Equals(compare))
            {
                return(true);
            }

            return(IsAcademicQuarter(timeIdentifier) && IsAcademicQuarter(compare) ||
                   IsCalendarQuarter(timeIdentifier) && IsCalendarQuarter(compare) ||
                   IsFinancialQuarter(timeIdentifier) && IsFinancialQuarter(compare) ||
                   IsTaxQuarter(timeIdentifier) && IsTaxQuarter(compare) ||
                   IsMonth(timeIdentifier) && IsMonth(compare) ||
                   IsWeek(timeIdentifier) && IsWeek(compare) ||
                   IsTerm(timeIdentifier) && IsTerm(compare) ||
                   IsFinancialYearPart(timeIdentifier) && IsFinancialYearPart(compare));
        }
        public static TimeIdentifier[] GetAssociatedRange(this TimeIdentifier timeIdentifier)
        {
            if (timeIdentifier.IsMonth())
            {
                return(GetMonths());
            }

            if (timeIdentifier.IsWeek())
            {
                return(GetWeeks());
            }

            if (timeIdentifier.IsAcademicQuarter())
            {
                return(GetAcademicQuarters());
            }

            if (timeIdentifier.IsCalendarQuarter())
            {
                return(GetCalendarQuarters());
            }

            if (timeIdentifier.IsFinancialQuarter())
            {
                return(GetFinancialQuarters());
            }

            if (timeIdentifier.IsTaxQuarter())
            {
                return(GetTaxQuarters());
            }

            if (timeIdentifier.IsTerm())
            {
                return(GetTerms());
            }

            if (timeIdentifier.IsFinancialYearPart())
            {
                return(GetFinancialYearParts());
            }

            throw new ArgumentOutOfRangeException(nameof(timeIdentifier),
                                                  "The time identifier has no associated range");
        }
 public static bool IsCalendarQuarter(this TimeIdentifier timeIdentifier)
 {
     return(GetCalendarQuarters().Contains(timeIdentifier));
 }
 public static bool HasAssociatedRange(this TimeIdentifier timeIdentifier)
 {
     return(!timeIdentifier.IsYear());
 }
 public static bool IsTerm(this TimeIdentifier timeIdentifier)
 {
     return(GetTerms().Contains(timeIdentifier));
 }
 public static bool IsFinancialYearPart(this TimeIdentifier timeIdentifier)
 {
     return(GetFinancialYearParts().Contains(timeIdentifier));
 }
 public static bool IsMonth(this TimeIdentifier timeIdentifier)
 {
     return(GetMonths().Contains(timeIdentifier));
 }
 public static bool IsWeek(this TimeIdentifier timeIdentifier)
 {
     return(GetWeeks().Contains(timeIdentifier));
 }
 public static bool IsFinancialQuarter(this TimeIdentifier timeIdentifier)
 {
     return(GetFinancialQuarters().Contains(timeIdentifier));
 }
 public static bool IsTaxQuarter(this TimeIdentifier timeIdentifier)
 {
     return(GetTaxQuarters().Contains(timeIdentifier));
 }
 public static bool IsAcademicQuarter(this TimeIdentifier timeIdentifier)
 {
     return(GetAcademicQuarters().Contains(timeIdentifier));
 }
Example #15
0
 public TimePeriodReplacementViewModel(bool valid, TimeIdentifier code, int year) : base(valid)
 {
     Code = code;
     Year = year;
 }
 public static bool IsYear(this TimeIdentifier timeIdentifier)
 {
     return(GetYears().Contains(timeIdentifier));
 }
 public static string GetTimePeriod(this(int Year, TimeIdentifier TimeIdentifier) tuple)
Example #18
0
 public TimePeriodMetaViewModel(int year, TimeIdentifier code)
 {
     Code  = code;
     Label = TimePeriodLabelFormatter.Format(year, code);
     Year  = year;
 }
 public static string Format(int year, TimeIdentifier timeIdentifier,
                             TimePeriodLabelFormat?overridingLabelFormat = null)
 {
     return(FormatterFor(timeIdentifier, overridingLabelFormat).FormatInternal(year, timeIdentifier));
 }
 public static string FormatYear(int year, TimeIdentifier timeIdentifier)
 {
     return(FormatterFor(timeIdentifier).FormatYearInternal(year));
 }