public void SelectsAnagramsOfAWordFromAGivenList() { AnagramList selector = new AnagramList(); var selection = selector.SelectAnagrams("master", new List <string> { "stream", "something", "maters" }); Assert.True(selection.SequenceEqual( new List <string> { "stream", "maters" })); }
public IActionResult Index(string phrase = "") { AnagramList anagramList = new AnagramList(); IList <string> anagrams = new List <string>(); string ipAddress = HttpContext.Connection.RemoteIpAddress.ToString(); ViewBag.Message = ""; if (!string.IsNullOrWhiteSpace(phrase)) { bool access = _userService.CheckIPLimit(ipAddress); if (access) { anagrams = _cacheService.GetAnagramsFromCache(phrase); if (anagrams.Count() == 0) { anagrams = _requestService.DetectAnagrams(phrase); } _cacheService.InsertWordToCache(phrase, anagrams); _userService.InsertToUserLog(phrase, ipAddress); _userService.DecrementCounter(ipAddress); } else { ViewBag.Message = "Number of requests exceeded. Insert new word to gain access"; } } anagramList.Anagrams = anagrams; return(View(anagramList)); }