aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Activity/ActivityRepository.cs
blob: af0b20d9215100ef759dd61d2f0e7b3e36b9fef4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Model.Activity;
using Microsoft.EntityFrameworkCore;

namespace Emby.Server.Implementations.Activity
{
    public class ActivityRepository : DbContext, IActivityRepository
    {
        protected string _dataDirPath;

        public DbSet<ActivityLogEntry> ActivityLogs { get; set; }

        public ActivityRepository(string dataDirPath)
        {
            _dataDirPath = dataDirPath;
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            // Ensure the dir exists
            Directory.CreateDirectory(_dataDirPath);

            optionsBuilder.UseSqlite($"Filename={Path.Combine(_dataDirPath, "activitylog.sqlite.db")}");
        }

        public async Task CreateAsync(ActivityLogEntry entry)
        {
            await ActivityLogs.AddAsync(entry);
            await SaveChangesAsync();
        }

        public IQueryable<ActivityLogEntry> GetActivityLogEntries()
            => ActivityLogs;
    }
}