Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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(".");
        }