using System.Linq; using System.Text; using System.Threading.Tasks; using Nancy; using Nancy.ModelBinding; using Newtonsoft.Json; using Sony.Filtr.Contracts.Abstractions; using Sony.Filtr.Contracts.Definitions; using Sony.Filtr.Search; using StructureMap; namespace Sony.Filtr.AdminAPI.Modules.EditorialPlaylist { public class EditorialPlaylistSearchModule : BaseModule { private readonly SearchManager _searchManager; public EditorialPlaylistSearchModule(IApplicationInstanceManager applicationInstanceManager, SearchManager searchManager) : base(applicationInstanceManager) { _searchManager = searchManager; Post["PlaylistSearchPost", "/EditorialPlaylist/search/", true] = async (parameters, token) => await PerformSearch(); Get["PlaylistSearch", "/EditorialPlaylist/search/", true] = async (parameters, cancellationToken) => await PerformSearch(); } public async Task PerformSearch() { var searchParams = this.Bind(); var playlists = await _searchManager.SearchPlaylistsAsync(searchParams); return Response.AsJson(playlists); } } }