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>