mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-30 11:38:32 -07:00
Added a filter onto the movies requests page for some inital feedback
This commit is contained in:
parent
8621a754f5
commit
71ff8fe301
14 changed files with 276 additions and 88 deletions
|
@ -17,5 +17,6 @@ namespace Ombi.Core.Engine.Interfaces
|
|||
Task<RequestEngineResult> ApproveMovie(MovieRequests request);
|
||||
Task<RequestEngineResult> ApproveMovieById(int requestId);
|
||||
Task<RequestEngineResult> DenyMovieById(int modelId);
|
||||
IEnumerable<MovieRequests> Filter(FilterViewModel vm);
|
||||
}
|
||||
}
|
|
@ -335,22 +335,41 @@ namespace Ombi.Core.Engine
|
|||
return new RequestEngineResult { Result = true, Message = $"{movieName} has been successfully added!" };
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<MovieRequests>> GetApprovedRequests()
|
||||
public IEnumerable<MovieRequests> Filter(FilterViewModel vm)
|
||||
{
|
||||
var allRequests = MovieRepository.GetWithUser();
|
||||
return await allRequests.Where(x => x.Approved && !x.Available).ToListAsync();
|
||||
}
|
||||
var requests = MovieRepository.GetWithUser();
|
||||
switch (vm.AvailabilityFilter)
|
||||
{
|
||||
case FilterType.None:
|
||||
break;
|
||||
case FilterType.Available:
|
||||
requests = requests.Where(x => x.Available);
|
||||
break;
|
||||
case FilterType.NotAvailable:
|
||||
requests = requests.Where(x => !x.Available);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<MovieRequests>> GetNewRequests()
|
||||
{
|
||||
var allRequests = MovieRepository.GetWithUser();
|
||||
return await allRequests.Where(x => !x.Approved && !x.Available).ToListAsync();
|
||||
}
|
||||
switch (vm.StatusFilter)
|
||||
{
|
||||
case FilterType.None:
|
||||
break;
|
||||
case FilterType.Approved:
|
||||
requests = requests.Where(x => x.Approved);
|
||||
break;
|
||||
case FilterType.Processing:
|
||||
requests = requests.Where(x => x.Approved && !x.Available);
|
||||
break;
|
||||
case FilterType.PendingApproval:
|
||||
requests = requests.Where(x => !x.Approved && !x.Available && !(x.Denied ?? false));
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<MovieRequests>> GetAvailableRequests()
|
||||
{
|
||||
var allRequests = MovieRepository.GetWithUser();
|
||||
return await allRequests.Where(x => !x.Approved && x.Available).ToListAsync();
|
||||
return requests;
|
||||
}
|
||||
}
|
||||
}
|
18
src/Ombi.Core/Models/Requests/FilterViewModel.cs
Normal file
18
src/Ombi.Core/Models/Requests/FilterViewModel.cs
Normal file
|
@ -0,0 +1,18 @@
|
|||
namespace Ombi.Core.Models.Requests
|
||||
{
|
||||
public class FilterViewModel
|
||||
{
|
||||
public FilterType AvailabilityFilter { get; set; }
|
||||
public FilterType StatusFilter { get; set; }
|
||||
}
|
||||
|
||||
public enum FilterType
|
||||
{
|
||||
None = 0,
|
||||
Available = 1,
|
||||
NotAvailable = 2,
|
||||
Approved = 3,
|
||||
Processing = 4,
|
||||
PendingApproval = 5
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue