static void Main(string[] args) { var codeFirstDataBase = new CodeFirstDataBase(); var myDictionaryManager = new DictionaryManager(); codeFirstDataBase.AddFromFile(myDictionaryManager.LoadDictionary(ConfigurationManager.AppSettings["DictionaryPath"]), "Server=localhost;Database=anagramsolver; User Id = sa; Password = LAMA55lama;"); // StartApp(); }
public async Task <ActionResult <Dictionary <string, DictionaryEntry> > > GetFilteredWord(string word) { var dataBase = new CodeFirstDataBase(); var items = await dataBase.FilterWords(word, Configuration["ConnectionString"]); if (items.Count < 1) { return(NotFound()); } return(items); }
public async Task <ActionResult <Dictionary <string, DictionaryEntry> > > Get(int index) { var dataBase = new CodeFirstDataBase(); var numberOfItemsToReturn = Int32.Parse(Configuration["NumberOfDictionaryEntriesToReturn"]); var items = await dataBase.GetWords(index, numberOfItemsToReturn, Configuration["ConnectionString"]); if (items.Count < 1) { return(NotFound()); } return(items); }
public async Task <List <string> > GenerateAnagrams(string word, int maxNumberOfAnagrams, string connString) { var codeFirstDataBase = new CodeFirstDataBase(); var returned = await codeFirstDataBase.GetCachedWords(word, connString); if (returned.Count > 0) { return(returned); } var generatedAnagrams = new List <string>(); var entities = new List <WordEntity>(); if (word.Length < 6) { var returnList = await FindAllCombinations(word); foreach (var item in returnList) { var wordEntity = await Task.Run(() => codeFirstDataBase.CheckIfExistsInWords(item, connString)); if (wordEntity.Word != null && item != word && generatedAnagrams.Count < maxNumberOfAnagrams && !generatedAnagrams.Any(listItem => listItem == item)) { generatedAnagrams.Add(item); entities.Add(wordEntity); } } } else { var orderedWord = word.ToCharArray(); Array.Sort(orderedWord); var wordEntities = await Task.Run(() => codeFirstDataBase.CheckIfExistsInOrderedWords(new string(orderedWord), connString)); foreach (var wordEntity in wordEntities) { if (wordEntity.Word != word && generatedAnagrams.Count < maxNumberOfAnagrams) { generatedAnagrams.Add(wordEntity.Word); entities.Add(wordEntity); } } } await codeFirstDataBase.AddToChaced(word, entities, connString); return(generatedAnagrams); }
public async Task <ActionResult <List <string> > > Get(string id, [FromQuery] int numberOfAnagramsToGenerate) { if (numberOfAnagramsToGenerate == 0) { numberOfAnagramsToGenerate = 1; } var anagramGenerator = new AnagramGenerator(); var items = await anagramGenerator.GenerateAnagrams(id, numberOfAnagramsToGenerate, Configuration["ConnectionString"]); if (items.Count < 1) { return(NotFound()); } var codeFirstDataBase = new CodeFirstDataBase(); await codeFirstDataBase.SaveUserLog(HttpContext.Connection.RemoteIpAddress.ToString(), id, Configuration["ConnectionString"]); return(items); }