public static int GetPeriodId(this DateTime period) { var periods = GetPeriods(); PeriodModel periodModel = periods.FirstOrDefault(x => x.Month == period.Month && x.Year == period.Year); if (periodModel == null) { throw new ArgumentException("Не удается найти период для даты {0}", period.ToString("dd.MM.yyyy")); } return(periodModel.Id); }
public static PeriodModel Next(this IEnumerable <PeriodModel> periods, PeriodModel current) { var last = periods.Last(); if (last.Year == current.Year && last.Month == current.Month) { return(last); } var year = current.Year; var month = current.Month; if (month == 12) { year = year + 1; month = 1; } else { month = month + 1; } return(periods.Single(period => period.Year == year && period.Month == month)); }
public static PeriodModel Previous(this IEnumerable <PeriodModel> periods, PeriodModel current) { var first = periods.First(); if (first.Year == current.Year && first.Month == current.Month) { return(first); } var year = current.Year; var month = current.Month; if (month == 1) { year = year - 1; month = 12; } else { month = month - 1; } return(periods.Single(period => period.Year == year && period.Month == month)); }