mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-14 17:22:54 -07:00
First pass with RequestPlex
This commit is contained in:
parent
83848865e8
commit
a4f892b702
38 changed files with 8028 additions and 0 deletions
15
RequestPlex/RequestPlex.Api.Interfaces/IApiRequest.cs
Normal file
15
RequestPlex/RequestPlex.Api.Interfaces/IApiRequest.cs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using RestSharp;
|
||||||
|
|
||||||
|
namespace RequestPlex.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface IApiRequest
|
||||||
|
{
|
||||||
|
T Execute<T>(IRestRequest request, Uri baseUri) where T : new();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("RequestPlex.Api.Interfaces")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("RequestPlex.Api.Interfaces")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("95834072-a675-415d-aa8f-877c91623810")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -0,0 +1,61 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{95834072-A675-415D-AA8F-877C91623810}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>RequestPlex.Api.Interfaces</RootNamespace>
|
||||||
|
<AssemblyName>RequestPlex.Api.Interfaces</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RestSharp.105.2.3\lib\net452\RestSharp.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="IApiRequest.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
4
RequestPlex/RequestPlex.Api.Interfaces/packages.config
Normal file
4
RequestPlex/RequestPlex.Api.Interfaces/packages.config
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="RestSharp" version="105.2.3" targetFramework="net452" />
|
||||||
|
</packages>
|
41
RequestPlex/RequestPlex.Api/ApiRequest.cs
Normal file
41
RequestPlex/RequestPlex.Api/ApiRequest.cs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using RequestPlex.Api.Interfaces;
|
||||||
|
|
||||||
|
using RestSharp;
|
||||||
|
|
||||||
|
namespace RequestPlex.Api
|
||||||
|
{
|
||||||
|
public class ApiRequest : IApiRequest
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// An API request handler
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">The type of class you want to deserialize</typeparam>
|
||||||
|
/// <param name="request">The request.</param>
|
||||||
|
/// <param name="baseUri">The base URI.</param>
|
||||||
|
/// <returns>The type of class you want to deserialize</returns>
|
||||||
|
public T Execute<T>(IRestRequest request, Uri baseUri) where T : new()
|
||||||
|
{
|
||||||
|
var client = new RestClient { BaseUrl = baseUri };
|
||||||
|
|
||||||
|
var response = client.Execute<T>(request);
|
||||||
|
|
||||||
|
if (response.ErrorException != null)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
var message = "Error retrieving response. Check inner details for more info.";
|
||||||
|
throw new ApplicationException(message, response.ErrorException);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response.Data;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
34
RequestPlex/RequestPlex.Api/Models/MovieSearch.cs
Normal file
34
RequestPlex/RequestPlex.Api/Models/MovieSearch.cs
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace RequestPlex.Api.Models
|
||||||
|
{
|
||||||
|
public class MovieResult
|
||||||
|
{
|
||||||
|
public bool adult { get; set; }
|
||||||
|
public string backdrop_path { get; set; }
|
||||||
|
public List<object> genre_ids { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
public string original_language { get; set; }
|
||||||
|
public string original_title { get; set; }
|
||||||
|
public string overview { get; set; }
|
||||||
|
public string release_date { get; set; }
|
||||||
|
public string poster_path { get; set; }
|
||||||
|
public double popularity { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public bool video { get; set; }
|
||||||
|
public double vote_average { get; set; }
|
||||||
|
public int vote_count { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MovieSearch
|
||||||
|
{
|
||||||
|
public int page { get; set; }
|
||||||
|
public List<MovieResult> results { get; set; }
|
||||||
|
public int total_pages { get; set; }
|
||||||
|
public int total_results { get; set; }
|
||||||
|
}
|
||||||
|
}
|
14
RequestPlex/RequestPlex.Api/MovieBase.cs
Normal file
14
RequestPlex/RequestPlex.Api/MovieBase.cs
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace RequestPlex.Api
|
||||||
|
{
|
||||||
|
public abstract class MovieBase
|
||||||
|
{
|
||||||
|
protected string ApiKey = "b8eabaf5608b88d0298aa189dd90bf00";
|
||||||
|
protected string Url = "http://api.themoviedb.org/3";
|
||||||
|
}
|
||||||
|
}
|
36
RequestPlex/RequestPlex.Api/Properties/AssemblyInfo.cs
Normal file
36
RequestPlex/RequestPlex.Api/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("RequestPlex.Api")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("RequestPlex.Api")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("8cb8d235-2674-442d-9c6a-35fcaeeb160d")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
75
RequestPlex/RequestPlex.Api/RequestPlex.Api.csproj
Normal file
75
RequestPlex/RequestPlex.Api/RequestPlex.Api.csproj
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{8CB8D235-2674-442D-9C6A-35FCAEEB160D}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>RequestPlex.Api</RootNamespace>
|
||||||
|
<AssemblyName>RequestPlex.Api</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RestSharp.105.2.3\lib\net452\RestSharp.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="TMDbLib, Version=0.8.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\TMDbLib.0.8.3\lib\net45\TMDbLib.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="ApiRequest.cs" />
|
||||||
|
<Compile Include="Models\MovieSearch.cs" />
|
||||||
|
<Compile Include="TheMovieDbApi.cs" />
|
||||||
|
<Compile Include="MovieBase.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\RequestPlex.Api.Interfaces\RequestPlex.Api.Interfaces.csproj">
|
||||||
|
<Project>{95834072-A675-415D-AA8F-877C91623810}</Project>
|
||||||
|
<Name>RequestPlex.Api.Interfaces</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup />
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
32
RequestPlex/RequestPlex.Api/TheMovieDbApi.cs
Normal file
32
RequestPlex/RequestPlex.Api/TheMovieDbApi.cs
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
using RequestPlex.Api.Interfaces;
|
||||||
|
using RequestPlex.Api.Models;
|
||||||
|
|
||||||
|
using RestSharp;
|
||||||
|
|
||||||
|
using TMDbLib.Client;
|
||||||
|
using TMDbLib.Objects.General;
|
||||||
|
using TMDbLib.Objects.Search;
|
||||||
|
|
||||||
|
namespace RequestPlex.Api
|
||||||
|
{
|
||||||
|
public class TheMovieDbApi : MovieBase
|
||||||
|
{
|
||||||
|
|
||||||
|
public List<SearchMovie> SearchMovie(string searchTerm)
|
||||||
|
{
|
||||||
|
var client = new TMDbClient(ApiKey);
|
||||||
|
var results = client.SearchMovie(searchTerm);
|
||||||
|
return results.Results;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<SearchTv> SearchTv(string searchTerm)
|
||||||
|
{
|
||||||
|
var client = new TMDbClient(ApiKey);
|
||||||
|
var results = client.SearchTvShow(searchTerm);
|
||||||
|
return results.Results;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
5
RequestPlex/RequestPlex.Api/packages.config
Normal file
5
RequestPlex/RequestPlex.Api/packages.config
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="RestSharp" version="105.2.3" targetFramework="net452" />
|
||||||
|
<package id="TMDbLib" version="0.8.3" targetFramework="net452" />
|
||||||
|
</packages>
|
11
RequestPlex/RequestPlex.UI/Bootstrapper.cs
Normal file
11
RequestPlex/RequestPlex.UI/Bootstrapper.cs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
using Nancy;
|
||||||
|
|
||||||
|
namespace RequestPlex.UI
|
||||||
|
{
|
||||||
|
public class Bootstrapper : DefaultNancyBootstrapper
|
||||||
|
{
|
||||||
|
// The bootstrapper enables you to reconfigure the composition of the framework,
|
||||||
|
// by overriding the various methods and properties.
|
||||||
|
// For more information https://github.com/NancyFx/Nancy/wiki/Bootstrapper
|
||||||
|
}
|
||||||
|
}
|
6997
RequestPlex/RequestPlex.UI/Content/bootstrap.css
vendored
Normal file
6997
RequestPlex/RequestPlex.UI/Content/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load diff
7
RequestPlex/RequestPlex.UI/Content/bootstrap.min.js
vendored
Normal file
7
RequestPlex/RequestPlex.UI/Content/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
RequestPlex/RequestPlex.UI/Content/jquery-2.2.1.min.js
vendored
Normal file
4
RequestPlex/RequestPlex.UI/Content/jquery-2.2.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
RequestPlex/RequestPlex.UI/Content/nancy-logo.png
Normal file
BIN
RequestPlex/RequestPlex.UI/Content/nancy-logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
12
RequestPlex/RequestPlex.UI/Modules/AdminModule.cs
Normal file
12
RequestPlex/RequestPlex.UI/Modules/AdminModule.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using Nancy;
|
||||||
|
|
||||||
|
namespace RequestPlex.UI.Modules
|
||||||
|
{
|
||||||
|
public class AdminModule : NancyModule
|
||||||
|
{
|
||||||
|
public AdminModule()
|
||||||
|
{
|
||||||
|
Get["admin/"] = _ => "Hello!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
19
RequestPlex/RequestPlex.UI/Modules/IndexModule.cs
Normal file
19
RequestPlex/RequestPlex.UI/Modules/IndexModule.cs
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
using Nancy;
|
||||||
|
|
||||||
|
namespace RequestPlex.UI.Modules
|
||||||
|
{
|
||||||
|
public class IndexModule : NancyModule
|
||||||
|
{
|
||||||
|
public IndexModule()
|
||||||
|
{
|
||||||
|
Get["/"] = parameters => View["Index"];
|
||||||
|
Get["/Index"] = parameters => View["Index"];
|
||||||
|
|
||||||
|
Get["/test"] = parameters =>
|
||||||
|
{
|
||||||
|
var model = "this is my model";
|
||||||
|
return View["Test", model];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
12
RequestPlex/RequestPlex.UI/Modules/LoginModule.cs
Normal file
12
RequestPlex/RequestPlex.UI/Modules/LoginModule.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using Nancy;
|
||||||
|
|
||||||
|
namespace RequestPlex.UI.Modules
|
||||||
|
{
|
||||||
|
public class LoginModule : NancyModule
|
||||||
|
{
|
||||||
|
public LoginModule()
|
||||||
|
{
|
||||||
|
Get["/"] = _ => View["Login/Index"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
12
RequestPlex/RequestPlex.UI/Modules/ManageModule.cs
Normal file
12
RequestPlex/RequestPlex.UI/Modules/ManageModule.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using Nancy;
|
||||||
|
|
||||||
|
namespace RequestPlex.UI.Modules
|
||||||
|
{
|
||||||
|
public class ManageModule : NancyModule
|
||||||
|
{
|
||||||
|
public ManageModule()
|
||||||
|
{
|
||||||
|
Get["manage/"] = _ => "Hello!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
49
RequestPlex/RequestPlex.UI/Modules/RequestModule.cs
Normal file
49
RequestPlex/RequestPlex.UI/Modules/RequestModule.cs
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
using Nancy;
|
||||||
|
using Nancy.ModelBinding;
|
||||||
|
using Nancy.Responses.Negotiation;
|
||||||
|
|
||||||
|
using RequestPlex.Api;
|
||||||
|
|
||||||
|
namespace RequestPlex.UI.Modules
|
||||||
|
{
|
||||||
|
public class RequestModule : NancyModule
|
||||||
|
{
|
||||||
|
public RequestModule()
|
||||||
|
{
|
||||||
|
Get["request/"] = parameters => RequestLoad();
|
||||||
|
|
||||||
|
Get["request/movie/{searchTerm}"] = parameters =>
|
||||||
|
{
|
||||||
|
var search = (string)parameters.searchTerm;
|
||||||
|
return SearchMovie(search);
|
||||||
|
};
|
||||||
|
|
||||||
|
Get["request/tv/{searchTerm}"] = parameters =>
|
||||||
|
{
|
||||||
|
var search = (string)parameters.searchTerm;
|
||||||
|
return SearchTvShow(search);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private Negotiator RequestLoad()
|
||||||
|
{
|
||||||
|
return View["Request/Index"];
|
||||||
|
}
|
||||||
|
|
||||||
|
private Response SearchMovie(string searchTerm)
|
||||||
|
{
|
||||||
|
var api = new TheMovieDbApi();
|
||||||
|
var movies = api.SearchMovie(searchTerm);
|
||||||
|
|
||||||
|
return Response.AsJson(movies);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Response SearchTvShow(string searchTerm)
|
||||||
|
{
|
||||||
|
var api = new TheMovieDbApi();
|
||||||
|
var movies = api.SearchTv(searchTerm);
|
||||||
|
|
||||||
|
return Response.AsJson(movies);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
24
RequestPlex/RequestPlex.UI/Program.cs
Normal file
24
RequestPlex/RequestPlex.UI/Program.cs
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
using Microsoft.Owin.Hosting;
|
||||||
|
|
||||||
|
using Nancy.Hosting.Self;
|
||||||
|
|
||||||
|
namespace RequestPlex.UI
|
||||||
|
{
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
static void Main(string[] args)
|
||||||
|
{
|
||||||
|
var uri =
|
||||||
|
"http://localhost:3579";
|
||||||
|
|
||||||
|
using (WebApp.Start<Startup>(uri))
|
||||||
|
{
|
||||||
|
Console.WriteLine("Running on {0}", uri);
|
||||||
|
Console.WriteLine("Press enter to exit");
|
||||||
|
Console.ReadLine();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
35
RequestPlex/RequestPlex.UI/Properties/AssemblyInfo.cs
Normal file
35
RequestPlex/RequestPlex.UI/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("RequestPlex.UI")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("RequestPlex.UI")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2013")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("354f3a80-8093-46a6-8ef5-139aef621c10")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
170
RequestPlex/RequestPlex.UI/RequestPlex.UI.csproj
Normal file
170
RequestPlex/RequestPlex.UI/RequestPlex.UI.csproj
Normal file
|
@ -0,0 +1,170 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}</ProjectGuid>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>RequestPlex.UI</RootNamespace>
|
||||||
|
<AssemblyName>RequestPlex.UI</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
|
||||||
|
<RestorePackages>true</RestorePackages>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<StartupObject>
|
||||||
|
</StartupObject>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Owin.Host.HttpListener, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Owin.Host.HttpListener.3.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Owin.Hosting, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Owin.Hosting.3.0.1\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Nancy">
|
||||||
|
<HintPath>..\packages\Nancy.1.4.1\lib\net40\Nancy.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Nancy.Hosting.Self">
|
||||||
|
<HintPath>..\packages\Nancy.Hosting.Self.1.4.1\lib\net40\Nancy.Hosting.Self.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Nancy.Owin, Version=1.4.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Nancy.Owin.1.4.1\lib\net40\Nancy.Owin.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Nancy.ViewEngines.Razor">
|
||||||
|
<HintPath>..\packages\Nancy.Viewengines.Razor.1.4.1\lib\net40\Nancy.ViewEngines.Razor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RestSharp.105.2.3\lib\net452\RestSharp.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Web" />
|
||||||
|
<Reference Include="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<Private>True</Private>
|
||||||
|
<HintPath>..\packages\Microsoft.AspNet.Razor.2.0.30506.0\lib\net40\System.Web.Razor.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="TMDbLib, Version=0.8.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\TMDbLib.0.8.3\lib\net45\TMDbLib.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Bootstrapper.cs" />
|
||||||
|
<Content Include="Content\bootstrap.css">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Compile Include="Modules\AdminModule.cs" />
|
||||||
|
<Compile Include="Modules\IndexModule.cs" />
|
||||||
|
<Compile Include="Modules\LoginModule.cs" />
|
||||||
|
<Compile Include="Modules\ManageModule.cs" />
|
||||||
|
<Compile Include="Modules\RequestModule.cs" />
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Startup.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="Content\bootstrap.min.js">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Content\jquery-2.2.1.min.js">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="icon.png" />
|
||||||
|
<None Include="app.config" />
|
||||||
|
<Content Include="packages.config" />
|
||||||
|
<Content Include="Views\Index.cshtml">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="web.config">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Views\Test.cshtml">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Views\Shared\_Layout.cshtml">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Views\_ViewStart.cshtml">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Views\Request\Index.cshtml">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="Views\Login\Index.cshtml">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<None Include="Web.Debug.config">
|
||||||
|
<DependentUpon>web.config</DependentUpon>
|
||||||
|
</None>
|
||||||
|
<None Include="Web.Release.config">
|
||||||
|
<DependentUpon>web.config</DependentUpon>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Models\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="Content\nancy-logo.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\RequestPlex.Api\RequestPlex.Api.csproj">
|
||||||
|
<Project>{8cb8d235-2674-442d-9c6a-35fcaeeb160d}</Project>
|
||||||
|
<Name>RequestPlex.Api</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<PostBuildEvent>
|
||||||
|
if $(ConfigurationName) == Debug (
|
||||||
|
xcopy /s /y /R "$(SolutionDir)packages\Nancy.Viewengines.Razor.1.4.1\BuildProviders\Nancy.ViewEngines.Razor.BuildProviders.dll" "$(ProjectDir)bin\"
|
||||||
|
xcopy /s /y /R "$(SolutionDir)packages\Nancy.Viewengines.Razor.1.4.1\lib\Net40\Nancy.ViewEngines.Razor.dll" "$(ProjectDir)bin\"
|
||||||
|
)</PostBuildEvent>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
12
RequestPlex/RequestPlex.UI/Startup.cs
Normal file
12
RequestPlex/RequestPlex.UI/Startup.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using Owin;
|
||||||
|
|
||||||
|
namespace RequestPlex.UI
|
||||||
|
{
|
||||||
|
public class Startup
|
||||||
|
{
|
||||||
|
public void Configuration(IAppBuilder app)
|
||||||
|
{
|
||||||
|
app.UseNancy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
RequestPlex/RequestPlex.UI/Views/Index.cshtml
Normal file
1
RequestPlex/RequestPlex.UI/Views/Index.cshtml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
BODY
|
1
RequestPlex/RequestPlex.UI/Views/Login/Index.cshtml
Normal file
1
RequestPlex/RequestPlex.UI/Views/Login/Index.cshtml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
74
RequestPlex/RequestPlex.UI/Views/Request/Index.cshtml
Normal file
74
RequestPlex/RequestPlex.UI/Views/Request/Index.cshtml
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
<div>
|
||||||
|
<h2 >Search</h2>
|
||||||
|
<!-- Nav tabs -->
|
||||||
|
<ul id="nav-tabs" class="nav nav-tabs" role="tablist">
|
||||||
|
<li role="presentation" class="active"><a href="#MoviesTab" aria-controls="home" role="tab" data-toggle="tab">Movies</a></li>
|
||||||
|
<li role="presentation"><a href="#TvShowTab" aria-controls="profile" role="tab" data-toggle="tab">TV Shows</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- Tab panes -->
|
||||||
|
<div class="tab-content">
|
||||||
|
<div role="tabpanel" class="tab-pane active" id="MoviesTab">
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="movieSearchContent" type="text" class="form-control">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button" id="movieSearchButton">Search</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div id="movieList">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div role="tabpanel" class="tab-pane" id="TvShowTab">
|
||||||
|
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="tvSearchContent" type="text" class="form-control">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button" id="tvSearchButton">Search</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div id="tvList">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$('#movieSearchButton').click(function (e) {
|
||||||
|
$('#list').html("");
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
var query = $('#movieSearchContent').val();
|
||||||
|
|
||||||
|
$.ajax("/request/movie/" + query).success(function (results) {
|
||||||
|
results.forEach(function (result) {
|
||||||
|
$('#movieList').append("<div id='" + result.id + "'>" + result.title + "</div>");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#tvSearchButton').click(function (e) {
|
||||||
|
$('#list').html("");
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
var query = $('#tvSearchContent').val();
|
||||||
|
|
||||||
|
$.ajax("/request/tv/" + query).success(function (results) {
|
||||||
|
results.forEach(function (result) {
|
||||||
|
$('#tvList').append("<div id='" + result.id + "'>" + result.name + "</div>");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
32
RequestPlex/RequestPlex.UI/Views/Shared/_Layout.cshtml
Normal file
32
RequestPlex/RequestPlex.UI/Views/Shared/_Layout.cshtml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase
|
||||||
|
<link rel="stylesheet" href="/Content/bootstrap.css" type="text/css"/>
|
||||||
|
<script src="/Content/jquery-2.2.1.min.js"></script>
|
||||||
|
<script src="/Content/bootstrap.min.js"></script>
|
||||||
|
<nav class="navbar navbar-default">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
|
||||||
|
<span class="sr-only">Toggle navigation</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="#">Request Plex</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="active"><a href="/request">Search</a></li>
|
||||||
|
<li><a href="/admin">Admin</a></li>
|
||||||
|
<li><a href="/admin">Requested</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-nav navbar-right">
|
||||||
|
<li><a href="#">Login</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
@RenderBody()
|
||||||
|
</div>
|
25
RequestPlex/RequestPlex.UI/Views/Test.cshtml
Normal file
25
RequestPlex/RequestPlex.UI/Views/Test.cshtml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
@Model string;
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>RequestPlex.UI</title>
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
body {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<img src="~/Content/nancy-logo.png" alt="Nancy logo" /><br />
|
||||||
|
This view was rendered using the Nancy Razor view engine
|
||||||
|
@if (1 == 1)
|
||||||
|
{
|
||||||
|
<div>@Model</div>
|
||||||
|
}
|
||||||
|
</body>
|
||||||
|
</html>
|
3
RequestPlex/RequestPlex.UI/Views/_ViewStart.cshtml
Normal file
3
RequestPlex/RequestPlex.UI/Views/_ViewStart.cshtml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
@{
|
||||||
|
Layout = "Views/Shared/_Layout.cshtml";
|
||||||
|
}
|
30
RequestPlex/RequestPlex.UI/Web.Debug.config
Normal file
30
RequestPlex/RequestPlex.UI/Web.Debug.config
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
|
||||||
|
|
||||||
|
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||||
|
<!--
|
||||||
|
In the example below, the "SetAttributes" transform will change the value of
|
||||||
|
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
|
||||||
|
finds an attribute "name" that has a value of "MyDB".
|
||||||
|
|
||||||
|
<connectionStrings>
|
||||||
|
<add name="MyDB"
|
||||||
|
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
|
||||||
|
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
|
||||||
|
</connectionStrings>
|
||||||
|
-->
|
||||||
|
<system.web>
|
||||||
|
<!--
|
||||||
|
In the example below, the "Replace" transform will replace the entire
|
||||||
|
<customErrors> section of your web.config file.
|
||||||
|
Note that because there is only one customErrors section under the
|
||||||
|
<system.web> node, there is no need to use the "xdt:Locator" attribute.
|
||||||
|
|
||||||
|
<customErrors defaultRedirect="GenericError.htm"
|
||||||
|
mode="RemoteOnly" xdt:Transform="Replace">
|
||||||
|
<error statusCode="500" redirect="InternalError.htm"/>
|
||||||
|
</customErrors>
|
||||||
|
-->
|
||||||
|
</system.web>
|
||||||
|
</configuration>
|
31
RequestPlex/RequestPlex.UI/Web.Release.config
Normal file
31
RequestPlex/RequestPlex.UI/Web.Release.config
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
|
||||||
|
|
||||||
|
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||||
|
<!--
|
||||||
|
In the example below, the "SetAttributes" transform will change the value of
|
||||||
|
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
|
||||||
|
finds an attribute "name" that has a value of "MyDB".
|
||||||
|
|
||||||
|
<connectionStrings>
|
||||||
|
<add name="MyDB"
|
||||||
|
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
|
||||||
|
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
|
||||||
|
</connectionStrings>
|
||||||
|
-->
|
||||||
|
<system.web>
|
||||||
|
<compilation xdt:Transform="RemoveAttributes(debug)" />
|
||||||
|
<!--
|
||||||
|
In the example below, the "Replace" transform will replace the entire
|
||||||
|
<customErrors> section of your web.config file.
|
||||||
|
Note that because there is only one customErrors section under the
|
||||||
|
<system.web> node, there is no need to use the "xdt:Locator" attribute.
|
||||||
|
|
||||||
|
<customErrors defaultRedirect="GenericError.htm"
|
||||||
|
mode="RemoteOnly" xdt:Transform="Replace">
|
||||||
|
<error statusCode="500" redirect="InternalError.htm"/>
|
||||||
|
</customErrors>
|
||||||
|
-->
|
||||||
|
</system.web>
|
||||||
|
</configuration>
|
19
RequestPlex/RequestPlex.UI/app.config
Normal file
19
RequestPlex/RequestPlex.UI/app.config
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||||
|
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
|
||||||
|
<appSettings>
|
||||||
|
<add key="webPages:Enabled" value="false" />
|
||||||
|
</appSettings>
|
||||||
|
<system.web.webPages.razor>
|
||||||
|
<pages pageBaseType="Nancy.ViewEngines.Razor.NancyRazorViewBase">
|
||||||
|
<namespaces>
|
||||||
|
<add namespace="Nancy.ViewEngines.Razor" />
|
||||||
|
</namespaces>
|
||||||
|
</pages>
|
||||||
|
</system.web.webPages.razor>
|
||||||
|
</configuration>
|
BIN
RequestPlex/RequestPlex.UI/icon.png
Normal file
BIN
RequestPlex/RequestPlex.UI/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 547 B |
14
RequestPlex/RequestPlex.UI/packages.config
Normal file
14
RequestPlex/RequestPlex.UI/packages.config
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Microsoft.AspNet.Razor" version="2.0.30506.0" targetFramework="net45" />
|
||||||
|
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.Owin.Host.HttpListener" version="3.0.1" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.Owin.Hosting" version="3.0.1" targetFramework="net452" />
|
||||||
|
<package id="Nancy" version="1.4.1" requireReinstallation="true" />
|
||||||
|
<package id="Nancy.Hosting.Self" version="1.4.1" requireReinstallation="true" />
|
||||||
|
<package id="Nancy.Owin" version="1.4.1" targetFramework="net452" />
|
||||||
|
<package id="Nancy.Viewengines.Razor" version="1.4.1" requireReinstallation="true" />
|
||||||
|
<package id="Owin" version="1.0" targetFramework="net452" />
|
||||||
|
<package id="RestSharp" version="105.2.3" targetFramework="net452" />
|
||||||
|
<package id="TMDbLib" version="0.8.3" targetFramework="net452" />
|
||||||
|
</packages>
|
47
RequestPlex/RequestPlex.UI/web.config
Normal file
47
RequestPlex/RequestPlex.UI/web.config
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
For more information on how to configure your ASP.NET application, please visit
|
||||||
|
http://go.microsoft.com/fwlink/?LinkId=169433
|
||||||
|
-->
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||||
|
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
|
||||||
|
<system.web>
|
||||||
|
<compilation debug="true" targetFramework="4.5.2">
|
||||||
|
|
||||||
|
<buildProviders>
|
||||||
|
<add extension=".cshtml"
|
||||||
|
type="Nancy.ViewEngines.Razor.BuildProviders.NancyCSharpRazorBuildProvider, Nancy.ViewEngines.Razor.BuildProviders" />
|
||||||
|
<add extension=".vbhtml"
|
||||||
|
type="Nancy.ViewEngines.Razor.BuildProviders.NancyVisualBasicRazorBuildProvider, Nancy.ViewEngines.Razor.BuildProviders" />
|
||||||
|
</buildProviders>
|
||||||
|
</compilation>
|
||||||
|
|
||||||
|
<httpHandlers>
|
||||||
|
<add verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*" />
|
||||||
|
</httpHandlers>
|
||||||
|
</system.web>
|
||||||
|
|
||||||
|
<appSettings>
|
||||||
|
<add key="webPages:Enabled" value="false" />
|
||||||
|
</appSettings>
|
||||||
|
<system.web.webPages.razor>
|
||||||
|
<pages pageBaseType="Nancy.ViewEngines.Razor.NancyRazorViewBase">
|
||||||
|
<namespaces>
|
||||||
|
<add namespace="Nancy.ViewEngines.Razor" />
|
||||||
|
</namespaces>
|
||||||
|
</pages>
|
||||||
|
</system.web.webPages.razor>
|
||||||
|
<system.webServer>
|
||||||
|
<validation validateIntegratedModeConfiguration="false" />
|
||||||
|
<httpErrors existingResponse="PassThrough"/>
|
||||||
|
<handlers>
|
||||||
|
<add name="Nancy" verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*" />
|
||||||
|
</handlers>
|
||||||
|
</system.webServer>
|
||||||
|
</configuration>
|
34
RequestPlex/RequestPlex.sln
Normal file
34
RequestPlex/RequestPlex.sln
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 14
|
||||||
|
VisualStudioVersion = 14.0.24720.0
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RequestPlex.UI", "RequestPlex.UI\RequestPlex.UI.csproj", "{68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RequestPlex.Api", "RequestPlex.Api\RequestPlex.Api.csproj", "{8CB8D235-2674-442D-9C6A-35FCAEEB160D}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RequestPlex.Api.Interfaces", "RequestPlex.Api.Interfaces\RequestPlex.Api.Interfaces.csproj", "{95834072-A675-415D-AA8F-877C91623810}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{68F5F5F3-B8BB-4911-875F-6F00AAE04EA6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{8CB8D235-2674-442D-9C6A-35FCAEEB160D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{8CB8D235-2674-442D-9C6A-35FCAEEB160D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{8CB8D235-2674-442D-9C6A-35FCAEEB160D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{8CB8D235-2674-442D-9C6A-35FCAEEB160D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{95834072-A675-415D-AA8F-877C91623810}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{95834072-A675-415D-AA8F-877C91623810}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{95834072-A675-415D-AA8F-877C91623810}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{95834072-A675-415D-AA8F-877C91623810}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
Loading…
Add table
Add a link
Reference in a new issue