示例#1
0
        public RankingEntry?GetNextEntry()
        {
            if (!PendingEntries.Any())
            {
                return(null);
            }

            var index = RandomNumberGenerator.GetInt32(fromInclusive: 0, toExclusive: PendingEntries.Count);
            var entry = PendingEntries[index];

            PendingEntries.Remove(entry);
            UnrankedEntries.Add(entry);
            return(entry);
        }
示例#2
0
            void FetchWatchees()
            {
                for (;;)
                {
                    Entry e;
                    if (!PendingEntries.TryDequeue(out e))
                    {
                        break;
                    }

                    if (e.IsWatch)
                    {
                        this.watchees.Add(e);
                    }
                    else
                    {
                        this.watchees.Remove(e);
                    }
                }
            }
示例#3
0
            void FetchWatchees()
            {
                for (;;)
                {
                    Entry e = PendingEntries.Dequeue();
                    if (e == null)
                    {
                        break;
                    }

                    if (e.IsWatch)
                    {
                        this.watchees.Add(e);
                    }
                    else
                    {
                        this.watchees.Remove(e);
                    }
                }
            }
示例#4
0
        private void RetrieveData()
        {
            if (PendingEntries.Count != 0)
            {
                PendingEntries.Clear();
            }

            var pendingEntries = _entryService.GetAllPendingEntries();

            foreach (var pendingEntry in pendingEntries)
            {
                PendingEntries.Add(pendingEntry);
            }

            if (AcceptedEntries.Count != 0)
            {
                AcceptedEntries.Clear();
            }

            var acceptedEntries = _entryService.GetAllAcceptedEntries();

            foreach (var acceptedEntry in acceptedEntries)
            {
                AcceptedEntries.Add(acceptedEntry);
            }

            if (RejectedEntries.Count != 0)
            {
                RejectedEntries.Clear();
            }

            var rejectedEntries = _entryService.GetAllRejectedEntries();

            foreach (var rejectedEntry in rejectedEntries)
            {
                RejectedEntries.Add(rejectedEntry);
            }
        }
示例#5
0
 public IEnumerable <RankingEntry> GetAllEntries()
 {
     return(PendingEntries.Concat(RankedEntries).Concat(UnrankedEntries));
 }