private static ReaderRegistration GetLastRegistration ( ReaderRegistration[] registrations ) { ReaderRegistration result = null; if (registrations.Length != 0) { string maxDate = registrations[0].DateString; result = registrations[0]; for (int i = 1; i < registrations.Length; i++) { string date = registrations[i].DateString; if (string.CompareOrdinal(date, maxDate) > 0) { maxDate = date; result = registrations[i]; } } } return(result); }
private static void ProcessReader ( ReaderInfo reader ) { string ticket = reader.Ticket; if (string.IsNullOrEmpty(ticket)) { return; } ticket = ticket.ToLower(); if (ticket.Contains(Litres)) { return; } string workplace = reader.WorkPlace; if (!string.IsNullOrEmpty(workplace)) { workplace = workplace.ToLower(); if (workplace.Contains(LibraryName)) { return; } } VisitInfo[] debt = reader.Visits .GetLoans() .GetDebt(); if (debt.Length != 0) { return; } VisitInfo lastEvent = null; if (reader.Visits.Length != 0) { VisitInfo[] visits = reader.Visits; string maxDate = visits[0].DateGivenString; lastEvent = visits[0]; for (int i = 1; i < visits.Length; i++) { string date = visits[i].DateGivenString; if (string.CompareOrdinal(date, maxDate) > 0) { maxDate = date; lastEvent = visits[i]; } } } if (ReferenceEquals(lastEvent, null)) { ReaderRegistration lastRegistration = GetLastRegistration(reader.Registrations); if (!ReferenceEquals(lastRegistration, null)) { if (lastRegistration.Date >= Threshold) { return; } reader.UserData = lastRegistration.Date .ToShortDateString() + " перерегистрация"; } else { lastRegistration = GetLastRegistration(reader.Enrollment); if (!ReferenceEquals(lastRegistration, null)) { if (lastRegistration.Date >= Threshold) { return; } reader.UserData = lastRegistration.Date .ToShortDateString() + " регистрация"; } else { return; } } } else { DateTime dateGiven = lastEvent.DateGiven; if (dateGiven < LowerBound || dateGiven >= Threshold) { return; } reader.UserData = dateGiven.ToShortDateString() + " посещение"; } OldReaders.Add(reader); Console.Write("."); }