private List <T> SaveNewKeywordsToDb <T>(IEnumerable <string> keywordsStringList, List <T> keywordsFromDb) where T : IKeywordDbModel { var keywordsFromDbNames = keywordsFromDb.Select(k => k.Name); var nonStoredKeywordsNames = keywordsStringList.Except(keywordsFromDbNames); foreach (var newKeywordName in nonStoredKeywordsNames) { if (typeof(T) == typeof(CategoryKeyword)) { var categoryKeyword = new CategoryKeyword { Name = newKeywordName }; this.keywordsService.AddCategoryKeywordToContext(categoryKeyword); } else if (typeof(T) == typeof(ColorKeyword)) { var colorKeyword = new ColorKeyword { Name = newKeywordName }; this.keywordsService.AddColorKeywordToContext(colorKeyword); } } this.keywordsService.SaveChanges(); keywordsFromDb = this.keywordsService.GetKeywordsByNames <T>(keywordsStringList).ToList(); return(keywordsFromDb); }
public void VoteForKeyword(Guid categoryId, string keywordText, bool correct, int weight) { var keyword = keywordProvider.Get(keywordText, categoryId); if (keyword == null) { keyword = new CategoryKeyword() { CategoryId = categoryId, Keyword = keywordText }; } keyword.SuccessVotes += correct ? weight : 0; keyword.TotalVotes += weight; keywordProvider.Save(keyword); }
private static bool ShouldTrustKeyword(CategoryKeyword keyword) => keyword.TrustRate >= Constants.Keywords.ValidTrustRate;
public void AddCategoryKeywordToContext(CategoryKeyword categoryKeyword) { this.dbContext.CategoryKeyword.Add(categoryKeyword); }