mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-19 12:59:39 -07:00
add a better way to merge RequestedBy and RequestedUsers to avoid code duplication and simplify checks
This commit is contained in:
parent
a668ea04ec
commit
1ca3e0532b
2 changed files with 23 additions and 17 deletions
|
@ -4,6 +4,7 @@ using System.Security.Cryptography;
|
||||||
using Dapper.Contrib.Extensions;
|
using Dapper.Contrib.Extensions;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace PlexRequests.Store
|
namespace PlexRequests.Store
|
||||||
{
|
{
|
||||||
|
@ -39,14 +40,28 @@ namespace PlexRequests.Store
|
||||||
public string SeasonsRequested { get; set; }
|
public string SeasonsRequested { get; set; }
|
||||||
public List<string> RequestedUsers { get; set; }
|
public List<string> RequestedUsers { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<string> AllUsers
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var u = new List<string>();
|
||||||
|
if (!string.IsNullOrEmpty(RequestedBy))
|
||||||
|
{
|
||||||
|
u.Add(RequestedBy);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RequestedUsers.Any())
|
||||||
|
{
|
||||||
|
u.AddRange(RequestedUsers.Where(requestedUser => requestedUser != RequestedBy));
|
||||||
|
}
|
||||||
|
return u;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public bool UserHasRequested(string username)
|
public bool UserHasRequested(string username)
|
||||||
{
|
{
|
||||||
bool alreadyRequested = !string.IsNullOrEmpty(RequestedBy) && RequestedBy.Equals(username, StringComparison.OrdinalIgnoreCase);
|
return AllUsers.Any(x => x.Equals(username, StringComparison.OrdinalIgnoreCase));
|
||||||
if (!alreadyRequested && RequestedUsers != null && RequestedUsers.Count > 0)
|
|
||||||
{
|
|
||||||
alreadyRequested = RequestedUsers.Any(x => x.Equals(username, StringComparison.OrdinalIgnoreCase));
|
|
||||||
}
|
|
||||||
return alreadyRequested;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,10 +88,6 @@ namespace PlexRequests.UI.Modules
|
||||||
}
|
}
|
||||||
|
|
||||||
var viewModel = dbMovies.Select(movie => {
|
var viewModel = dbMovies.Select(movie => {
|
||||||
if (!string.IsNullOrEmpty(movie.RequestedBy) && !movie.RequestedUsers.Any(x => x.Equals(movie.RequestedBy, StringComparison.OrdinalIgnoreCase)))
|
|
||||||
{
|
|
||||||
movie.RequestedUsers.Add(movie.RequestedBy);
|
|
||||||
}
|
|
||||||
return new RequestViewModel
|
return new RequestViewModel
|
||||||
{
|
{
|
||||||
ProviderId = movie.ProviderId,
|
ProviderId = movie.ProviderId,
|
||||||
|
@ -107,7 +103,7 @@ namespace PlexRequests.UI.Modules
|
||||||
Approved = movie.Available || movie.Approved,
|
Approved = movie.Available || movie.Approved,
|
||||||
Title = movie.Title,
|
Title = movie.Title,
|
||||||
Overview = movie.Overview,
|
Overview = movie.Overview,
|
||||||
RequestedUsers = isAdmin ? movie.RequestedUsers.ToArray() : new string[] { },
|
RequestedUsers = isAdmin ? movie.AllUsers.ToArray() : new string[] { },
|
||||||
ReleaseYear = movie.ReleaseDate.Year.ToString(),
|
ReleaseYear = movie.ReleaseDate.Year.ToString(),
|
||||||
Available = movie.Available,
|
Available = movie.Available,
|
||||||
Admin = isAdmin,
|
Admin = isAdmin,
|
||||||
|
@ -131,11 +127,6 @@ namespace PlexRequests.UI.Modules
|
||||||
}
|
}
|
||||||
|
|
||||||
var viewModel = dbTv.Select(tv => {
|
var viewModel = dbTv.Select(tv => {
|
||||||
if (!string.IsNullOrEmpty(tv.RequestedBy) &&
|
|
||||||
!tv.RequestedUsers.Any(x => x.Equals(tv.RequestedBy, StringComparison.OrdinalIgnoreCase)))
|
|
||||||
{
|
|
||||||
tv.RequestedUsers.Add(tv.RequestedBy);
|
|
||||||
}
|
|
||||||
return new RequestViewModel
|
return new RequestViewModel
|
||||||
{
|
{
|
||||||
ProviderId = tv.ProviderId,
|
ProviderId = tv.ProviderId,
|
||||||
|
@ -151,7 +142,7 @@ namespace PlexRequests.UI.Modules
|
||||||
Approved = tv.Available || tv.Approved,
|
Approved = tv.Available || tv.Approved,
|
||||||
Title = tv.Title,
|
Title = tv.Title,
|
||||||
Overview = tv.Overview,
|
Overview = tv.Overview,
|
||||||
RequestedUsers = isAdmin ? tv.RequestedUsers.ToArray() : new string[] { },
|
RequestedUsers = isAdmin ? tv.AllUsers.ToArray() : new string[] { },
|
||||||
ReleaseYear = tv.ReleaseDate.Year.ToString(),
|
ReleaseYear = tv.ReleaseDate.Year.ToString(),
|
||||||
Available = tv.Available,
|
Available = tv.Available,
|
||||||
Admin = isAdmin,
|
Admin = isAdmin,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue