mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-14 01:02:57 -07:00
Added TVRequestsLite
This commit is contained in:
parent
8f4357b461
commit
f097dedea6
3 changed files with 53 additions and 3 deletions
|
@ -1,7 +1,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Ombi.Core.Models.Requests;
|
using Ombi.Core.Models.Requests;
|
||||||
using Ombi.Core.Models.Search;
|
using Ombi.Core.Models.UI;
|
||||||
using Ombi.Store.Entities.Requests;
|
using Ombi.Store.Entities.Requests;
|
||||||
|
|
||||||
namespace Ombi.Core.Engine.Interfaces
|
namespace Ombi.Core.Engine.Interfaces
|
||||||
|
@ -13,6 +13,7 @@ namespace Ombi.Core.Engine.Interfaces
|
||||||
Task<TvRequests> GetTvRequest(int requestId);
|
Task<TvRequests> GetTvRequest(int requestId);
|
||||||
Task<RequestEngineResult> RequestTvShow(TvRequestViewModel tv);
|
Task<RequestEngineResult> RequestTvShow(TvRequestViewModel tv);
|
||||||
Task<RequestEngineResult> DenyChildRequest(int requestId);
|
Task<RequestEngineResult> DenyChildRequest(int requestId);
|
||||||
|
Task<RequestsViewModel<TvRequests>> GetRequestsLite(int count, int position, OrderFilterModel type);
|
||||||
Task<IEnumerable<TvRequests>> SearchTvRequest(string search);
|
Task<IEnumerable<TvRequests>> SearchTvRequest(string search);
|
||||||
Task<IEnumerable<TreeNode<TvRequests, List<ChildRequests>>>> SearchTvRequestTree(string search);
|
Task<IEnumerable<TreeNode<TvRequests, List<ChildRequests>>>> SearchTvRequestTree(string search);
|
||||||
Task<TvRequests> UpdateTvRequest(TvRequests request);
|
Task<TvRequests> UpdateTvRequest(TvRequests request);
|
||||||
|
|
|
@ -168,6 +168,35 @@ namespace Ombi.Core.Engine
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<RequestsViewModel<TvRequests>> GetRequestsLite(int count, int position, OrderFilterModel type)
|
||||||
|
{
|
||||||
|
var shouldHide = await HideFromOtherUsers();
|
||||||
|
List<TvRequests> allRequests;
|
||||||
|
if (shouldHide.Hide)
|
||||||
|
{
|
||||||
|
allRequests = await TvRepository.GetLite(shouldHide.UserId)
|
||||||
|
.OrderByDescending(x => x.ChildRequests.Max(y => y.RequestedDate))
|
||||||
|
.Skip(position).Take(count).ToListAsync();
|
||||||
|
|
||||||
|
// Filter out children
|
||||||
|
|
||||||
|
FilterChildren(allRequests, shouldHide);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
allRequests = await TvRepository.GetLite()
|
||||||
|
.OrderByDescending(x => x.ChildRequests.Max(y => y.RequestedDate))
|
||||||
|
.Skip(position).Take(count).ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
allRequests.ForEach(async r => { await CheckForSubscription(shouldHide, r); });
|
||||||
|
|
||||||
|
return new RequestsViewModel<TvRequests>
|
||||||
|
{
|
||||||
|
Collection = allRequests
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<TreeNode<TvRequests, List<ChildRequests>>>> GetRequestsTreeNode(int count, int position)
|
public async Task<IEnumerable<TreeNode<TvRequests, List<ChildRequests>>>> GetRequestsTreeNode(int count, int position)
|
||||||
{
|
{
|
||||||
var shouldHide = await HideFromOtherUsers();
|
var shouldHide = await HideFromOtherUsers();
|
||||||
|
|
|
@ -189,8 +189,28 @@ namespace Ombi.Controllers
|
||||||
return await TvRequestEngine.GetRequests(count, position, new OrderFilterModel
|
return await TvRequestEngine.GetRequests(count, position, new OrderFilterModel
|
||||||
{
|
{
|
||||||
OrderType = (OrderType)orderType,
|
OrderType = (OrderType)orderType,
|
||||||
AvailabilityFilter = (FilterType) availabilityType,
|
AvailabilityFilter = (FilterType)availabilityType,
|
||||||
StatusFilter = (FilterType) statusType,
|
StatusFilter = (FilterType)statusType,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the tv requests lite.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="count">The count of items you want to return.</param>
|
||||||
|
/// <param name="position">The position.</param>
|
||||||
|
/// <param name="orderType"></param>
|
||||||
|
/// <param name="statusType"></param>
|
||||||
|
/// <param name="availabilityType"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("tv/{count:int}/{position:int}/{orderType:int}/{statusFilterType:int}/{availabilityFilterType:int}")]
|
||||||
|
public async Task<RequestsViewModel<TvRequests>> GetTvRequestsLite(int count, int position, int orderType, int statusType, int availabilityType)
|
||||||
|
{
|
||||||
|
return await TvRequestEngine.GetRequestsLite(count, position, new OrderFilterModel
|
||||||
|
{
|
||||||
|
OrderType = (OrderType)orderType,
|
||||||
|
AvailabilityFilter = (FilterType)availabilityType,
|
||||||
|
StatusFilter = (FilterType)statusType,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue