private static bool TryParseDateAndSequence(string archiveFileNameWithoutPath, string dateFormat, FileNameTemplate fileTemplate, out DateTime date, out int sequence)
{
int trailerLength = fileTemplate.Template.Length - fileTemplate.EndAt;
int dateAndSequenceIndex = fileTemplate.BeginAt;
int dateAndSequenceLength = archiveFileNameWithoutPath.Length - trailerLength - dateAndSequenceIndex;
if (dateAndSequenceLength < 0)
{
date = default(DateTime);
sequence = 0;
return false;
}
string dateAndSequence = archiveFileNameWithoutPath.Substring(dateAndSequenceIndex, dateAndSequenceLength);
int sequenceIndex = dateAndSequence.LastIndexOf('.') + 1;
string sequencePart = dateAndSequence.Substring(sequenceIndex);
if (!Int32.TryParse(sequencePart, NumberStyles.None, CultureInfo.CurrentCulture, out sequence))
{
date = default(DateTime);
return false;
}
var dateAndSequenceLength2 = dateAndSequence.Length - sequencePart.Length - 1;
if (dateAndSequenceLength2 < 0)
{
date = default(DateTime);
return false;
}
string datePart = dateAndSequence.Substring(0, dateAndSequenceLength2);
if (!DateTime.TryParseExact(datePart, dateFormat, CultureInfo.CurrentCulture, DateTimeStyles.None,
out date))
{
return false;
}
return true;
}