private static List<string> GetKeywordSynonyms(string keyword, BusinessCache cache) { var synonymString = string.Empty; if (!string.IsNullOrEmpty(keyword)) { var cacheKey = _cacheKeyPrefix + keyword; if (cache.Contains(cacheKey)) { var cacheValue = cache.Get(cacheKey).ToString(); return StringToListOfStrings(cacheValue); } var synonyms = new StringBuilder(); var jsonValues = GetWebServiceResponse(keyword); if (jsonValues.Length > 0) { var jsonObject = JObject.Parse(jsonValues); var icd9Property = jsonObject["Icd9"]; if (icd9Property != null) { var Icd9Value = icd9Property.First.Value<JProperty>(); var name = Icd9Value.Name; var icd9Object = JObject.Parse(icd9Property.ToString()); if (icd9Object.First.HasValues) { foreach (var value in icd9Object.First.Values()) { synonyms.Append(value + " "); } } synonymString = StripPunctuation(synonyms.ToString()) + " " + name; } //cache keyword synonyms cache.Put(cacheKey, synonymString, CacheSeconds.Larger); } } return StringToListOfStrings(synonymString); }