Beispiel #1
0
        private Dictionary <string, long> LookupProviders(IVocabularyService vocabularyService)
        {
            var providerKeys = new Dictionary <string, long>(StringComparer.OrdinalIgnoreCase);

            foreach (var pb in personBuilders.Values)
            {
                foreach (var providerKey in pb.Value.ProviderKeys.Keys)
                {
                    if (!providerKeys.ContainsKey(providerKey))
                    {
                        providerKeys.Add(providerKey, 0);
                    }
                }
            }

            if (providerKeys.Count > 0)
            {
                var providerIds = vocabularyService.GetProviderIds(providerKeys.Keys.ToArray());
                foreach (var keyValuePair in providerIds)
                {
                    if (keyValuePair.Value != -1)
                    {
                        providerKeys[keyValuePair.Key] = keyValuePair.Value;
                    }
                }
            }
            return(providerKeys);
        }
Beispiel #2
0
        private Dictionary <string, long> LookupProviders(IVocabularyService vocabularyService)
        {
            var providerKeys = new Dictionary <string, long>(StringComparer.OrdinalIgnoreCase);

            foreach (var pb in personBuilders.Values)
            {
                foreach (var providerKey in pb.Value.ProviderKeys.Keys)
                {
                    if (!providerKeys.ContainsKey(providerKey))
                    {
                        providerKeys.Add(providerKey, 0);
                    }
                }
            }

            if (providerKeys.Count <= 0)
            {
                return(providerKeys);
            }

            var attempt = 0;
            var done    = false;

            while (!done)
            {
                try
                {
                    attempt++;
                    var providerIds = vocabularyService.GetProviderIds(providerKeys.Keys.ToArray());
                    foreach (var keyValuePair in providerIds)
                    {
                        if (keyValuePair.Value != -1)
                        {
                            providerKeys[keyValuePair.Key] = keyValuePair.Value;
                        }
                    }
                    done = true;
                }
                catch (Exception ex)
                {
                    if (attempt <= 11)
                    {
                        Logger.Write(chunkId, LogMessageTypes.Warning,
                                     "LookupProviders attempt=" + attempt + Logger.CreateExceptionString(ex));
                    }
                    else
                    {
                        throw;
                    }
                }
            }
            return(providerKeys);
        }