ActivityRepository.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. Directory.CreateDirectory(_dataDirPath);
  20. optionsBuilder.UseSqlite($"Filename={Path.Combine(_dataDirPath, "activitylog.sqlite.db")}");
  21. }
  22. public async Task CreateAsync(ActivityLogEntry entry)
  23. {
  24. await ActivityLogs.AddAsync(entry);
  25. await SaveChangesAsync();
  26. }
  27. public IQueryable<ActivityLogEntry> GetActivityLogEntries()
  28. => ActivityLogs;
  29. }
  30. }