public override DataSourceResult GetMods([DataSourceRequest] DataSourceRequest request) { var installed = this.GetInstalledPlugins(TCAdmin.GameHosting.SDK.Objects.Service.GetSelectedService()); var filters = request.GetAllFilterDescriptors(); var query = string.Empty; var termFilter = filters.FirstOrDefault(x => x.Member == "Term"); var sortBy = (filters.FirstOrDefault(x => x.Member == "SortBy") ?? new Kendo.Mvc.FilterDescriptor("SortBy", Kendo.Mvc.FilterOperator.Contains, installed.Count > 0 ? "installed" : "modpack/featured")).Value.ToString(); List <MinecraftModpacksBrowser> mods = null; if (sortBy == "installed") { mods = new List <MinecraftModpacksBrowser>(); foreach (var modpack in installed) { var pack = MinecraftModpacksBrowser.GetPack(int.Parse(modpack.Split(':')[0].Replace("MCMP", string.Empty))); if (pack.Status == "success") { mods.Add(pack); } else { pack = MinecraftModpacksBrowser.GetCurseforgePack(int.Parse(modpack.Split(':')[0].Replace("MCMP", string.Empty))); if (pack.Status == "success") { mods.Add(pack); } } } } else { if (termFilter != null && !string.IsNullOrEmpty(termFilter.Value.ToString())) { sortBy = "modpack/search"; query = termFilter.Value.ToString(); } mods = MinecraftModpacksBrowser.Search(sortBy, query, request.Page, request.PageSize); } request.Filters = new List <IFilterDescriptor>(); var dataSourceResult = mods.ToDataSourceResult(request); dataSourceResult.Total = 5000; dataSourceResult.Data = mods; return(dataSourceResult); }