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); }
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); }