NLog.Targets.FileTarget.PreviousLogOverlappedPeriod C# (CSharp) Method

PreviousLogOverlappedPeriod() private method

private PreviousLogOverlappedPeriod ( LogEventInfo logEvent, System.DateTime lastWrite ) : bool
logEvent LogEventInfo
lastWrite System.DateTime
return bool
        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;
        }