Ejemplo n.º 1
0
        public async void Monitor()
        {
            while (IsRunning)
            {
                await Task.Delay(100);

                if (!IsRunning)
                {
                    break;
                }

                var count = CandidateStore.GetCount(MatchSet.Id);
                if (count == MatchSet.Capacity)
                {
                    Ready?.Invoke(MatchSet);
                }
                else if (count % 2 == 0)
                {
                    Ready?.Invoke(MatchSet);
                }
                else
                {
                    NotReady?.Invoke(MatchSet);
                }
            }
        }
Ejemplo n.º 2
0
 public IEnumerable <IEnumerable <string> > ExecuteMatch()
 {
     if (CanExecute)
     {
         var processedData = Processor.Process(CandidateStore.Get(Set.Id));
         return(Matcher.Match(processedData.Item1, processedData.Item2));
     }
     else
     {
         throw new InvalidOperationException();
     }
 }
Ejemplo n.º 3
0
 public void Dispose()
 {
     CandidateStore.Dispose();
     MatchSetStore.Dispose();
 }
Ejemplo n.º 4
0
 public void Collect(IEnumerable <ICandidate> candidates)
 {
     CandidateStore.Store(candidates);
 }