ActivityRepository.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System.IO;
  2. using System.Linq;
  3. using System.Threading.Tasks;
  4. using MediaBrowser.Model.Activity;
  5. using Microsoft.EntityFrameworkCore;
  6. namespace Emby.Server.Implementations.Activity
  7. {
  8. public class ActivityRepository : DbContext, IActivityRepository
  9. {
  10. protected string _dataDirPath;
  11. public DbSet<ActivityLogEntry> ActivityLogs { get; set; }
  12. public ActivityRepository(string dataDirPath)
  13. {
  14. _dataDirPath = dataDirPath;
  15. }
  16. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  17. {
  18. // Ensure the dir exists
  19. if (!Directory.Exists(_dataDirPath))
  20. {
  21. Directory.CreateDirectory(_dataDirPath);
  22. }
  23. optionsBuilder.UseSqlite($"Filename={Path.Combine(_dataDirPath, "activitylog.sqlite.db")}");
  24. }
  25. public async Task CreateAsync(ActivityLogEntry entry)
  26. {
  27. await ActivityLogs.AddAsync(entry);
  28. await SaveChangesAsync();
  29. }
  30. public IQueryable<ActivityLogEntry> GetActivityLogEntries()
  31. => ActivityLogs;
  32. }
  33. }