using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using BuildFeed.Models; using BuildFeed.Models.ApiModel; namespace BuildFeed.Controllers { public class apiController : ApiController { public IEnumerable GetBuilds() { return Build.SelectInBuildOrder(); } public IEnumerable GetWin10Labs() { List labs = new List(); labs.AddRange(Build.SelectBuildLabs(6, 4)); labs.AddRange(Build.SelectBuildLabs(10, 0)); return labs.ToArray(); } public IEnumerable GetSearchResult(string query) { List results = new List(); var yearResults = from y in Build.SelectBuildYears() where y.ToString().Contains(query) orderby y descending select new SearchResult() { Url = Url.Route("Year Root", new { controller = "build", action = "year", year = y }), Label = y.ToString().Replace(query, "" + query + ""), Group = "Year" }; results.AddRange(yearResults); var labResults = from l in Build.SelectBuildLabs() where l.Contains(query) orderby l.IndexOf(query) ascending select new SearchResult() { Url = Url.Route("Lab Root", new { controller = "build", action = "lab", lab = l }), Label = l.Replace(query, "" + query + ""), Group = "Lab" }; results.AddRange(labResults); var buildResults = from b in Build.Select() where b.FullBuildString.Contains(query) orderby b.FullBuildString.IndexOf(query) ascending, b.BuildTime descending select new SearchResult() { Url = Url.Route("Actions", new { controller = "build", action = "info", id = b.Id }), Label = b.FullBuildString.Replace(query, "" + query + ""), Group = "Build" }; results.AddRange(buildResults); return results.Take(6); } } }