private bool ValidateDate(CsvReader csv) { if (!DateTime.TryParse(csv[(int)StatisticFields.StartDate], System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out m_StartDate)) { m_Errors.Add(new CsvError(csv.CurrentRecordIndex, (int)StatisticFields.StartDate, 0, "errInvalidDateFormat", csv[(int)StatisticFields.StartDate], GetLine(csv))); return(false); } StatisticPeriodType periodType = (StatisticPeriodType)m_StatisticTypeRow["idfsStatisticPeriodType"]; switch (periodType) { case StatisticPeriodType.Day: m_FinishDate = m_StartDate; break; case StatisticPeriodType.Month: if (m_StartDate.Day != 1) { m_Errors.Add(new CsvError(csv.CurrentRecordIndex, (int)StatisticFields.StartDate, 0, "errInvalidMonthStartDate", csv[(int)StatisticFields.StartDate], GetLine(csv))); return(false); } m_FinishDate = m_StartDate.AddMonths(1).AddDays(-1); break; case StatisticPeriodType.Quarter: if (m_StartDate.Day != 1 || m_StartDate.Month != 1 || m_StartDate.Month != 4 || m_StartDate.Month != 7 || m_StartDate.Month != 10) { m_Errors.Add(new CsvError(csv.CurrentRecordIndex, (int)StatisticFields.StartDate, 0, "errInvalidQuarterStartDate", csv[(int)StatisticFields.StartDate], GetLine(csv))); return(false); } m_FinishDate = m_StartDate.AddMonths(3).AddDays(-1); break; case StatisticPeriodType.Week: if (m_StartDate.DayOfWeek != System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek) { m_Errors.Add(new CsvError(csv.CurrentRecordIndex, (int)StatisticFields.StartDate, 0, "errInvalidWeekStartDate", csv[(int)StatisticFields.StartDate], GetLine(csv))); return(false); } m_FinishDate = m_StartDate.AddDays(6); break; case StatisticPeriodType.Year: if (m_StartDate.DayOfYear != 1) { m_Errors.Add(new CsvError(csv.CurrentRecordIndex, (int)StatisticFields.StartDate, 0, "errInvalidYearStartDate", csv[(int)StatisticFields.StartDate], GetLine(csv))); return(false); } m_FinishDate = m_StartDate.AddYears(1).AddDays(-1); break; } return(true); }
public SituationOnInfectiousDiseasesSurrogateModel (string language, int year, StatisticPeriodType periodType, int periodNumber, DateTime startDate, DateTime endDate, long?regionId, string regionName, bool useArchive) : base(language, startDate, endDate, useArchive) { Year = year; PeriodType = periodType; PeriodNumber = periodNumber; RegionId = regionId; RegionName = regionName; }