aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Activity/ActivityRepository.cs
blob: 34d6bc19843a11da11e6819402cd0573194b331f (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
            if (!Directory.Exists(_dataDirPath)) 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;
    }
}