private bool PreviousLogOverlappedPeriod(LogEventInfo logEvent, DateTime lastWrite)
{
if (!previousLogEventTimestamp.HasValue)
return false;
string formatString = GetArchiveDateFormatString(string.Empty);
string lastWriteTimeString = lastWrite.ToString(formatString, CultureInfo.InvariantCulture);
string logEventTimeString = logEvent.TimeStamp.ToString(formatString, CultureInfo.InvariantCulture);
if (lastWriteTimeString != logEventTimeString)
return false;
DateTime periodAfterPreviousLogEventTime;
switch (this.ArchiveEvery)
{
case FileArchivePeriod.Year: periodAfterPreviousLogEventTime = previousLogEventTimestamp.Value.AddYears(1); break;
case FileArchivePeriod.Month: periodAfterPreviousLogEventTime = previousLogEventTimestamp.Value.AddMonths(1); break;
case FileArchivePeriod.Day: periodAfterPreviousLogEventTime = previousLogEventTimestamp.Value.AddDays(1); break;
case FileArchivePeriod.Hour: periodAfterPreviousLogEventTime = previousLogEventTimestamp.Value.AddHours(1); break;
case FileArchivePeriod.Minute: periodAfterPreviousLogEventTime = previousLogEventTimestamp.Value.AddMinutes(1); break;
default: return false;
}
string periodAfterPreviousLogEventTimeString = periodAfterPreviousLogEventTime.ToString(formatString, CultureInfo.InvariantCulture);
return lastWriteTimeString == periodAfterPreviousLogEventTimeString;
}