mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-14 02:26:55 -07:00
Loads more work *phew* !wip
This commit is contained in:
parent
f72e48659c
commit
70db3c7bca
33 changed files with 841 additions and 487 deletions
|
@ -28,6 +28,7 @@ namespace Ombi.Store.Context
|
|||
void Seed();
|
||||
DbSet<Audit> Audit { get; set; }
|
||||
DbSet<MovieRequests> MovieRequests { get; set; }
|
||||
DbSet<AlbumRequest> AlbumRequests { get; set; }
|
||||
DbSet<TvRequests> TvRequests { get; set; }
|
||||
DbSet<ChildRequests> ChildRequests { get; set; }
|
||||
DbSet<Issues> Issues { get; set; }
|
||||
|
|
|
@ -31,6 +31,7 @@ namespace Ombi.Store.Context
|
|||
public DbSet<EmbyEpisode> EmbyEpisode { get; set; }
|
||||
|
||||
public DbSet<MovieRequests> MovieRequests { get; set; }
|
||||
public DbSet<AlbumRequest> AlbumRequests { get; set; }
|
||||
public DbSet<TvRequests> TvRequests { get; set; }
|
||||
public DbSet<ChildRequests> ChildRequests { get; set; }
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ namespace Ombi.Store.Entities
|
|||
|
||||
public int? MovieRequestLimit { get; set; }
|
||||
public int? EpisodeRequestLimit { get; set; }
|
||||
public int? MusicRequestLimit { get; set; }
|
||||
|
||||
public string UserAccessToken { get; set; }
|
||||
|
||||
|
@ -59,5 +60,6 @@ namespace Ombi.Store.Entities
|
|||
get => base.ConcurrencyStamp;
|
||||
set => base.ConcurrencyStamp = value;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -7,6 +7,7 @@ namespace Ombi.Store.Entities
|
|||
public enum RequestType
|
||||
{
|
||||
TvShow = 0,
|
||||
Movie = 1
|
||||
Movie = 1,
|
||||
Album = 2,
|
||||
}
|
||||
}
|
||||
|
|
21
src/Ombi.Store/Entities/Requests/AlbumRequest.cs
Normal file
21
src/Ombi.Store/Entities/Requests/AlbumRequest.cs
Normal file
|
@ -0,0 +1,21 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Ombi.Store.Entities.Requests
|
||||
{
|
||||
[Table("AlbumRequests")]
|
||||
public class AlbumRequest : BaseRequest
|
||||
{
|
||||
public string ForeignAlbumId { get; set; }
|
||||
public string ForeignArtistId { get; set; }
|
||||
public string Disk { get; set; }
|
||||
public string Cover { get; set; }
|
||||
public decimal Rating { get; set; }
|
||||
public DateTime ReleaseDate { get; set; }
|
||||
public string ArtistName { get; set; }
|
||||
[NotMapped]
|
||||
public bool Subscribed { get; set; }
|
||||
[NotMapped]
|
||||
public bool ShowSubscribe { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Ombi.Store.Entities.Requests;
|
||||
|
||||
namespace Ombi.Store.Repository.Requests
|
||||
{
|
||||
public interface IMusicRequestRepository : IRepository<AlbumRequest>
|
||||
{
|
||||
IQueryable<AlbumRequest> GetAll(string userId);
|
||||
AlbumRequest GetRequest(string foreignAlbumId);
|
||||
Task<AlbumRequest> GetRequestAsync(string foreignAlbumId);
|
||||
IQueryable<AlbumRequest> GetWithUser();
|
||||
IQueryable<AlbumRequest> GetWithUser(string userId);
|
||||
Task Save();
|
||||
Task Update(AlbumRequest request);
|
||||
}
|
||||
}
|
72
src/Ombi.Store/Repository/Requests/MusicRequestRepository.cs
Normal file
72
src/Ombi.Store/Repository/Requests/MusicRequestRepository.cs
Normal file
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Ombi.Store.Context;
|
||||
using Ombi.Store.Entities.Requests;
|
||||
|
||||
namespace Ombi.Store.Repository.Requests
|
||||
{
|
||||
public class MusicRequestRepository : Repository<AlbumRequest>, IMusicRequestRepository
|
||||
{
|
||||
public MusicRequestRepository(IOmbiContext ctx) : base(ctx)
|
||||
{
|
||||
Db = ctx;
|
||||
}
|
||||
|
||||
private IOmbiContext Db { get; }
|
||||
|
||||
public Task<AlbumRequest> GetRequestAsync(string foreignAlbumId)
|
||||
{
|
||||
return Db.AlbumRequests.Where(x => x.ForeignAlbumId == foreignAlbumId)
|
||||
.Include(x => x.RequestedUser)
|
||||
.FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
public IQueryable<AlbumRequest> GetAll(string userId)
|
||||
{
|
||||
return GetWithUser().Where(x => x.RequestedUserId == userId);
|
||||
}
|
||||
|
||||
public AlbumRequest GetRequest(string foreignAlbumId)
|
||||
{
|
||||
return Db.AlbumRequests.Where(x => x.ForeignAlbumId == foreignAlbumId)
|
||||
.Include(x => x.RequestedUser)
|
||||
.FirstOrDefault();
|
||||
}
|
||||
|
||||
public IQueryable<AlbumRequest> GetWithUser()
|
||||
{
|
||||
return Db.AlbumRequests
|
||||
.Include(x => x.RequestedUser)
|
||||
.ThenInclude(x => x.NotificationUserIds)
|
||||
.AsQueryable();
|
||||
}
|
||||
|
||||
|
||||
public IQueryable<AlbumRequest> GetWithUser(string userId)
|
||||
{
|
||||
return Db.AlbumRequests
|
||||
.Where(x => x.RequestedUserId == userId)
|
||||
.Include(x => x.RequestedUser)
|
||||
.ThenInclude(x => x.NotificationUserIds)
|
||||
.AsQueryable();
|
||||
}
|
||||
|
||||
public async Task Update(AlbumRequest request)
|
||||
{
|
||||
if (Db.Entry(request).State == EntityState.Detached)
|
||||
{
|
||||
Db.AlbumRequests.Attach(request);
|
||||
Db.Update(request);
|
||||
}
|
||||
await Db.SaveChangesAsync();
|
||||
}
|
||||
|
||||
public async Task Save()
|
||||
{
|
||||
await Db.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue