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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 private static bool ShouldTrustKeyword(CategoryKeyword keyword) => keyword.TrustRate >= Constants.Keywords.ValidTrustRate;
 public void AddCategoryKeywordToContext(CategoryKeyword categoryKeyword)
 {
     this.dbContext.CategoryKeyword.Add(categoryKeyword);
 }