From 4e0948aa1925916edeaa1c2fce041af8c1b5ad8c Mon Sep 17 00:00:00 2001 From: Michael <Michael@some.where> Date: Fri, 7 Apr 2017 12:50:25 -0400 Subject: [PATCH] Begin work on Unite API. --- Project-Unite/Controllers/APIController.cs | 38 ++++++++++++++++++++++ Project-Unite/Project-Unite.csproj | 6 ++++ 2 files changed, 44 insertions(+) create mode 100644 Project-Unite/Controllers/APIController.cs diff --git a/Project-Unite/Controllers/APIController.cs b/Project-Unite/Controllers/APIController.cs new file mode 100644 index 0000000..1a71209 --- /dev/null +++ b/Project-Unite/Controllers/APIController.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; +using Newtonsoft.Json; +using Project_Unite.Models; + +namespace Project_Unite.Controllers +{ + public class APIController : Controller + { + // GET: API + public ActionResult Index() + { + return Content("Please use a valid API endpoint."); + } + + public ActionResult Releases(bool showUnstable = false, bool showObsolete = false) + { + var db = new ApplicationDbContext(); + + var releases = db.Downloads.ToArray(); + if (!showUnstable) + releases = releases.Where(x => x.IsStable == true).ToArray(); + if (!showObsolete) + releases = releases.Where(x => x.Obsolete == false).ToArray(); + + return Content(JsonConvert.SerializeObject(releases)); + } + + public ActionResult Skins() + { + var db = new ApplicationDbContext(); + return Content(JsonConvert.SerializeObject(db.Skins.ToArray())); + } + } +} \ No newline at end of file diff --git a/Project-Unite/Project-Unite.csproj b/Project-Unite/Project-Unite.csproj index 3050e2a..36b45b0 100644 --- a/Project-Unite/Project-Unite.csproj +++ b/Project-Unite/Project-Unite.csproj @@ -106,6 +106,10 @@ <Private>True</Private> </Reference> <Reference Include="Microsoft.CSharp" /> + <Reference Include="Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>Bin\Newtonsoft.Json.dll</HintPath> + </Reference> <Reference Include="Nito.AsyncEx, Version=3.0.1.0, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\packages\Nito.AsyncEx.3.0.1\lib\net45\Nito.AsyncEx.dll</HintPath> <Private>True</Private> @@ -238,6 +242,7 @@ <Compile Include="App_Start\Startup.Auth.cs" /> <Compile Include="Controllers\AccountController.cs" /> <Compile Include="Controllers\AdminController.cs" /> + <Compile Include="Controllers\APIController.cs" /> <Compile Include="Controllers\DeveloperController.cs" /> <Compile Include="Controllers\DownloadController.cs" /> <Compile Include="Controllers\ForumController.cs" /> @@ -553,6 +558,7 @@ <ItemGroup> <Folder Include="App_Data\" /> <Folder Include="Properties\PublishProfiles\" /> + <Folder Include="Views\API\" /> <Folder Include="Views\WikiController\" /> </ItemGroup> <ItemGroup>