Пример #1
0
 public static List <SearchHistory> GetHistoryItems()
 {
     using (var db = new HistoryDbContext())
     {
         return(db.SearchHistory.OrderByDescending(x => x.LastUpdated).ToList());
     }
 }
Пример #2
0
 public static int GetHistoryCount()
 {
     using (var db = new HistoryDbContext())
     {
         return(db.SearchHistory.Count());
     }
 }
Пример #3
0
 public static async Task InitializeAsync()
 {
     using (var db = new HistoryDbContext())
     {
         await db.Database.EnsureCreatedAsync();
     }
 }
Пример #4
0
 public static Task InitializeAsync()
 {
     using (var db = new HistoryDbContext())
     {
         return(db.Database.MigrateAsync());
     }
 }
Пример #5
0
 public static void Clear()
 {
     using (var db = new HistoryDbContext())
     {
         var items = db.SearchHistory.ToList();
         db.SearchHistory.RemoveRange(items);
         db.SaveChanges();
     }
 }
Пример #6
0
        public static bool RemoveHistory(string keyword, SearchTarget target)
        {
            bool removeSuccess = false;

            using (var db = new HistoryDbContext())
            {
                var searchHistory = db.SearchHistory.SingleOrDefault(x => x.Keyword == keyword && x.Target == target);

                if (searchHistory != null)
                {
                    db.SearchHistory.Remove(searchHistory);
                    removeSuccess = true;
                }

                db.SaveChanges();
            }

            return(removeSuccess);
        }
Пример #7
0
        public static void Searched(string keyword, SearchTarget target)
        {
            using (var db = new HistoryDbContext())
            {
                var searchHistory = db.SearchHistory.SingleOrDefault(x => x.Keyword == keyword && x.Target == target);

                if (searchHistory == null)
                {
                    searchHistory = new SearchHistory()
                    {
                        Keyword     = keyword,
                        Target      = target,
                        SearchCount = 1,
                        LastUpdated = DateTime.Now
                    };

                    db.SearchHistory.Add(searchHistory);


                    if (db.SearchHistory.Count() > MaxSearchHistoryCount)
                    {
                        // 一番古いアイテムを削除
                        var recentItem = db.SearchHistory.OrderBy(x => x.LastUpdated).First();
                        db.SearchHistory.Remove(recentItem);
                    }
                }

                else
                {
                    searchHistory.SearchCount++;
                    searchHistory.LastUpdated = DateTime.Now;

                    db.SearchHistory.Update(searchHistory);
                }

                db.SaveChanges();
            }
        }