commit ef47df3cfa99c6bba049ac21f59367aea82dfe47 Author: Tommy Parnell Date: Sun Mar 13 21:39:47 2016 -0400 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..25b02ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,245 @@ +gnore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +src/**/wwwroot/lib + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml diff --git a/Alive.Net.sln b/Alive.Net.sln new file mode 100644 index 0000000..e08fa08 --- /dev/null +++ b/Alive.Net.sln @@ -0,0 +1,46 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{87BBACD9-21A7-4169-94B9-DD6989B700B7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{826840ED-1A86-4502-BB2D-04EECAAE49F0}" + ProjectSection(SolutionItems) = preProject + global.json = global.json + EndProjectSection +EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Alive.Net", "src\Alive.Net\Alive.Net.xproj", "{1628A48E-DD1D-45C7-A316-6CFD8498845C}" +EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Alive.Net.UnitTests", "src\Alive.Net.UnitTests\Alive.Net.UnitTests.xproj", "{4CA8001B-27C7-4671-B451-2C2DA00A3827}" +EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Alive.Net.Example", "src\Alive.Net.Example\Alive.Net.Example.xproj", "{43D7C97A-6041-492F-95C6-FD88C7FA7A7B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1628A48E-DD1D-45C7-A316-6CFD8498845C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1628A48E-DD1D-45C7-A316-6CFD8498845C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1628A48E-DD1D-45C7-A316-6CFD8498845C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1628A48E-DD1D-45C7-A316-6CFD8498845C}.Release|Any CPU.Build.0 = Release|Any CPU + {4CA8001B-27C7-4671-B451-2C2DA00A3827}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CA8001B-27C7-4671-B451-2C2DA00A3827}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CA8001B-27C7-4671-B451-2C2DA00A3827}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CA8001B-27C7-4671-B451-2C2DA00A3827}.Release|Any CPU.Build.0 = Release|Any CPU + {43D7C97A-6041-492F-95C6-FD88C7FA7A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43D7C97A-6041-492F-95C6-FD88C7FA7A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43D7C97A-6041-492F-95C6-FD88C7FA7A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43D7C97A-6041-492F-95C6-FD88C7FA7A7B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {1628A48E-DD1D-45C7-A316-6CFD8498845C} = {87BBACD9-21A7-4169-94B9-DD6989B700B7} + {4CA8001B-27C7-4671-B451-2C2DA00A3827} = {87BBACD9-21A7-4169-94B9-DD6989B700B7} + {43D7C97A-6041-492F-95C6-FD88C7FA7A7B} = {87BBACD9-21A7-4169-94B9-DD6989B700B7} + EndGlobalSection +EndGlobal diff --git a/global.json b/global.json new file mode 100644 index 0000000..5ba986f --- /dev/null +++ b/global.json @@ -0,0 +1,6 @@ +{ + "projects": [ "src", "test" ], + "sdk": { + "version": "1.0.0-rc1-update1" + } +} diff --git a/src/Alive.Net.Example/.bowerrc b/src/Alive.Net.Example/.bowerrc new file mode 100644 index 0000000..6406626 --- /dev/null +++ b/src/Alive.Net.Example/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "wwwroot/lib" +} diff --git a/src/Alive.Net.Example/Alive.Net.Example.xproj b/src/Alive.Net.Example/Alive.Net.Example.xproj new file mode 100644 index 0000000..c1caffa --- /dev/null +++ b/src/Alive.Net.Example/Alive.Net.Example.xproj @@ -0,0 +1,23 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + 43d7c97a-6041-492f-95c6-fd88c7fa7a7b + Alive.Net.Example + ..\..\artifacts\obj\$(MSBuildProjectName) + ..\..\artifacts\bin\$(MSBuildProjectName)\ + + + 2.0 + + + + + + + + diff --git a/src/Alive.Net.Example/Controllers/HomeController.cs b/src/Alive.Net.Example/Controllers/HomeController.cs new file mode 100644 index 0000000..588ac04 --- /dev/null +++ b/src/Alive.Net.Example/Controllers/HomeController.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNet.Mvc; + +namespace Alive.Net.Example.Controllers +{ + public class HomeController : Controller + { + public IActionResult Index() + { + return View(); + } + + public IActionResult About() + { + ViewData["Message"] = "Your application description page."; + + return View(); + } + + public IActionResult Contact() + { + ViewData["Message"] = "Your contact page."; + + return View(); + } + + public IActionResult Error() + { + return View(); + } + } +} diff --git a/src/Alive.Net.Example/Properties/launchSettings.json b/src/Alive.Net.Example/Properties/launchSettings.json new file mode 100644 index 0000000..ee45c40 --- /dev/null +++ b/src/Alive.Net.Example/Properties/launchSettings.json @@ -0,0 +1,25 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:6445/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "Hosting:Environment": "Development" + } + }, + "web": { + "commandName": "web", + "environmentVariables": { + "Hosting:Environment": "Development" + } + } + } +} \ No newline at end of file diff --git a/src/Alive.Net.Example/Startup.cs b/src/Alive.Net.Example/Startup.cs new file mode 100644 index 0000000..201d7a7 --- /dev/null +++ b/src/Alive.Net.Example/Startup.cs @@ -0,0 +1,67 @@ +using Microsoft.AspNet.Builder; +using Microsoft.AspNet.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Alive.Net.Example +{ + public class Startup + { + public Startup(IHostingEnvironment env) + { + // Set up configuration sources. + var builder = new ConfigurationBuilder() + .AddJsonFile("appsettings.json") + .AddEnvironmentVariables(); + Configuration = builder.Build(); + } + + public IConfigurationRoot Configuration { get; set; } + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + // Add framework services. + services.AddMvc(); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + { + loggerFactory.AddConsole(Configuration.GetSection("Logging")); + loggerFactory.AddDebug(); + + if (env.IsDevelopment()) + { + app.UseBrowserLink(); + app.UseDeveloperExceptionPage(); + } + else + { + app.UseExceptionHandler("/Home/Error"); + } + app.UseAlive(a => + { + a.BodyText = "Im awesome"; + }); + app.UseIISPlatformHandler(); + + app.UseStaticFiles(); + + app.UseMvc(routes => + { + routes.MapRoute( + name: "default", + template: "{controller=Home}/{action=Index}/{id?}"); + }); + } + + // Entry point for the application. + public static void Main(string[] args) => WebApplication.Run(args); + } +} \ No newline at end of file diff --git a/src/Alive.Net.Example/Views/Home/About.cshtml b/src/Alive.Net.Example/Views/Home/About.cshtml new file mode 100644 index 0000000..50476d1 --- /dev/null +++ b/src/Alive.Net.Example/Views/Home/About.cshtml @@ -0,0 +1,7 @@ +@{ + ViewData["Title"] = "About"; +} +

@ViewData["Title"].

+

@ViewData["Message"]

+ +

Use this area to provide additional information.

diff --git a/src/Alive.Net.Example/Views/Home/Contact.cshtml b/src/Alive.Net.Example/Views/Home/Contact.cshtml new file mode 100644 index 0000000..15c12c6 --- /dev/null +++ b/src/Alive.Net.Example/Views/Home/Contact.cshtml @@ -0,0 +1,17 @@ +@{ + ViewData["Title"] = "Contact"; +} +

@ViewData["Title"].

+

@ViewData["Message"]

+ +
+ One Microsoft Way
+ Redmond, WA 98052-6399
+ P: + 425.555.0100 +
+ +
+ Support: Support@example.com
+ Marketing: Marketing@example.com +
diff --git a/src/Alive.Net.Example/Views/Home/Index.cshtml b/src/Alive.Net.Example/Views/Home/Index.cshtml new file mode 100644 index 0000000..26e337f --- /dev/null +++ b/src/Alive.Net.Example/Views/Home/Index.cshtml @@ -0,0 +1,110 @@ +@{ + ViewData["Title"] = "Home Page"; +} + + + + diff --git a/src/Alive.Net.Example/Views/Shared/Error.cshtml b/src/Alive.Net.Example/Views/Shared/Error.cshtml new file mode 100644 index 0000000..4852442 --- /dev/null +++ b/src/Alive.Net.Example/Views/Shared/Error.cshtml @@ -0,0 +1,6 @@ +@{ + ViewData["Title"] = "Error"; +} + +

Error.

+

An error occurred while processing your request.

diff --git a/src/Alive.Net.Example/Views/Shared/_Layout.cshtml b/src/Alive.Net.Example/Views/Shared/_Layout.cshtml new file mode 100644 index 0000000..2504e29 --- /dev/null +++ b/src/Alive.Net.Example/Views/Shared/_Layout.cshtml @@ -0,0 +1,67 @@ + + + + + + @ViewData["Title"] - Alive.Net.Example + + + + + + + + + + + + +
+ @RenderBody() +
+
+

© 2016 - Alive.Net.Example

+
+
+ + + + + + + + + + + + + @RenderSection("scripts", required: false) + + diff --git a/src/Alive.Net.Example/Views/_ViewImports.cshtml b/src/Alive.Net.Example/Views/_ViewImports.cshtml new file mode 100644 index 0000000..f52b23f --- /dev/null +++ b/src/Alive.Net.Example/Views/_ViewImports.cshtml @@ -0,0 +1,2 @@ +@using Alive.Net.Example +@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers" diff --git a/src/Alive.Net.Example/Views/_ViewStart.cshtml b/src/Alive.Net.Example/Views/_ViewStart.cshtml new file mode 100644 index 0000000..a5f1004 --- /dev/null +++ b/src/Alive.Net.Example/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} diff --git a/src/Alive.Net.Example/appsettings.json b/src/Alive.Net.Example/appsettings.json new file mode 100644 index 0000000..cc127a8 --- /dev/null +++ b/src/Alive.Net.Example/appsettings.json @@ -0,0 +1,10 @@ +{ + "Logging": { + "IncludeScopes": false, + "LogLevel": { + "Default": "Verbose", + "System": "Information", + "Microsoft": "Information" + } + } +} diff --git a/src/Alive.Net.Example/bower.json b/src/Alive.Net.Example/bower.json new file mode 100644 index 0000000..ac5514c --- /dev/null +++ b/src/Alive.Net.Example/bower.json @@ -0,0 +1,10 @@ +{ + "name": "ASP.NET", + "private": true, + "dependencies": { + "bootstrap": "3.3.5", + "jquery": "2.1.4", + "jquery-validation": "1.14.0", + "jquery-validation-unobtrusive": "3.2.4" + } +} diff --git a/src/Alive.Net.Example/gulpfile.js b/src/Alive.Net.Example/gulpfile.js new file mode 100644 index 0000000..f79a1eb --- /dev/null +++ b/src/Alive.Net.Example/gulpfile.js @@ -0,0 +1,45 @@ +/// +"use strict"; + +var gulp = require("gulp"), + rimraf = require("rimraf"), + concat = require("gulp-concat"), + cssmin = require("gulp-cssmin"), + uglify = require("gulp-uglify"); + +var paths = { + webroot: "./wwwroot/" +}; + +paths.js = paths.webroot + "js/**/*.js"; +paths.minJs = paths.webroot + "js/**/*.min.js"; +paths.css = paths.webroot + "css/**/*.css"; +paths.minCss = paths.webroot + "css/**/*.min.css"; +paths.concatJsDest = paths.webroot + "js/site.min.js"; +paths.concatCssDest = paths.webroot + "css/site.min.css"; + +gulp.task("clean:js", function (cb) { + rimraf(paths.concatJsDest, cb); +}); + +gulp.task("clean:css", function (cb) { + rimraf(paths.concatCssDest, cb); +}); + +gulp.task("clean", ["clean:js", "clean:css"]); + +gulp.task("min:js", function () { + return gulp.src([paths.js, "!" + paths.minJs], { base: "." }) + .pipe(concat(paths.concatJsDest)) + .pipe(uglify()) + .pipe(gulp.dest(".")); +}); + +gulp.task("min:css", function () { + return gulp.src([paths.css, "!" + paths.minCss]) + .pipe(concat(paths.concatCssDest)) + .pipe(cssmin()) + .pipe(gulp.dest(".")); +}); + +gulp.task("min", ["min:js", "min:css"]); diff --git a/src/Alive.Net.Example/package.json b/src/Alive.Net.Example/package.json new file mode 100644 index 0000000..d4d71a9 --- /dev/null +++ b/src/Alive.Net.Example/package.json @@ -0,0 +1,11 @@ +{ + "name": "ASP.NET", + "version": "0.0.0", + "devDependencies": { + "gulp": "3.8.11", + "gulp-concat": "2.5.2", + "gulp-cssmin": "0.1.7", + "gulp-uglify": "1.2.0", + "rimraf": "2.2.8" + } +} diff --git a/src/Alive.Net.Example/project.json b/src/Alive.Net.Example/project.json new file mode 100644 index 0000000..e088a47 --- /dev/null +++ b/src/Alive.Net.Example/project.json @@ -0,0 +1,44 @@ +{ + "version": "1.0.0-*", + "compilationOptions": { + "emitEntryPoint": true + }, + + "dependencies": { + "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final", + "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", + "Microsoft.AspNet.Mvc": "6.0.0-rc1-final", + "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final", + "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final", + "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final", + "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final", + "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final", + "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final", + "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final", + "Alive.Net": "" + }, + + "commands": { + "web": "Microsoft.AspNet.Server.Kestrel" + }, + + "frameworks": { + "dnx451": { }, + "dnxcore50": { } + }, + + "exclude": [ + "wwwroot", + "node_modules" + ], + "publishExclude": [ + "**.user", + "**.vspscc" + ], + "scripts": { + "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ] + } +} \ No newline at end of file diff --git a/src/Alive.Net.Example/wwwroot/_references.js b/src/Alive.Net.Example/wwwroot/_references.js new file mode 100644 index 0000000..a48b29e --- /dev/null +++ b/src/Alive.Net.Example/wwwroot/_references.js @@ -0,0 +1,7 @@ +/// +/// +/// +/// +/// +/// +/// diff --git a/src/Alive.Net.Example/wwwroot/css/site.css b/src/Alive.Net.Example/wwwroot/css/site.css new file mode 100644 index 0000000..1eaae3d --- /dev/null +++ b/src/Alive.Net.Example/wwwroot/css/site.css @@ -0,0 +1,34 @@ +body { + padding-top: 50px; + padding-bottom: 20px; +} + +/* Wrapping element */ +/* Set some basic padding to keep content from hitting the edges */ +.body-content { + padding-left: 15px; + padding-right: 15px; +} + +/* Set widths on the form inputs since otherwise they're 100% wide */ +input, +select, +textarea { + max-width: 280px; +} + +/* Carousel */ +.carousel-caption { + z-index: 10 !important; +} + + .carousel-caption p { + font-size: 20px; + line-height: 1.4; + } + +@media (min-width: 768px) { + .carousel-caption { + z-index: 10 !important; + } +} diff --git a/src/Alive.Net.Example/wwwroot/css/site.min.css b/src/Alive.Net.Example/wwwroot/css/site.min.css new file mode 100644 index 0000000..c12e1a1 --- /dev/null +++ b/src/Alive.Net.Example/wwwroot/css/site.min.css @@ -0,0 +1 @@ +body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}input,select,textarea{max-width:280px}.carousel-caption{z-index:10!important}.carousel-caption p{font-size:20px;line-height:1.4}@media (min-width:768px){.carousel-caption{z-index:10!important}} \ No newline at end of file diff --git a/src/Alive.Net.Example/wwwroot/favicon.ico b/src/Alive.Net.Example/wwwroot/favicon.ico new file mode 100644 index 0000000..a3a7999 Binary files /dev/null and b/src/Alive.Net.Example/wwwroot/favicon.ico differ diff --git a/src/Alive.Net.Example/wwwroot/images/ASP-NET-Banners-01.png b/src/Alive.Net.Example/wwwroot/images/ASP-NET-Banners-01.png new file mode 100644 index 0000000..ad3c267 Binary files /dev/null and b/src/Alive.Net.Example/wwwroot/images/ASP-NET-Banners-01.png differ diff --git a/src/Alive.Net.Example/wwwroot/images/ASP-NET-Banners-02.png b/src/Alive.Net.Example/wwwroot/images/ASP-NET-Banners-02.png new file mode 100644 index 0000000..16c37fc Binary files /dev/null and b/src/Alive.Net.Example/wwwroot/images/ASP-NET-Banners-02.png differ diff --git a/src/Alive.Net.Example/wwwroot/images/Banner-01-Azure.png b/src/Alive.Net.Example/wwwroot/images/Banner-01-Azure.png new file mode 100644 index 0000000..59fb923 Binary files /dev/null and b/src/Alive.Net.Example/wwwroot/images/Banner-01-Azure.png differ diff --git a/src/Alive.Net.Example/wwwroot/images/Banner-02-VS.png b/src/Alive.Net.Example/wwwroot/images/Banner-02-VS.png new file mode 100644 index 0000000..c9f4611 Binary files /dev/null and b/src/Alive.Net.Example/wwwroot/images/Banner-02-VS.png differ diff --git a/src/Alive.Net.Example/wwwroot/js/site.js b/src/Alive.Net.Example/wwwroot/js/site.js new file mode 100644 index 0000000..82ecce7 --- /dev/null +++ b/src/Alive.Net.Example/wwwroot/js/site.js @@ -0,0 +1 @@ +// Write your Javascript code. diff --git a/src/Alive.Net.Example/wwwroot/js/site.min.js b/src/Alive.Net.Example/wwwroot/js/site.min.js new file mode 100644 index 0000000..e69de29 diff --git a/src/Alive.Net.Example/wwwroot/web.config b/src/Alive.Net.Example/wwwroot/web.config new file mode 100644 index 0000000..8485f67 --- /dev/null +++ b/src/Alive.Net.Example/wwwroot/web.config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/Alive.Net.UnitTests/Alive.Net.UnitTests.xproj b/src/Alive.Net.UnitTests/Alive.Net.UnitTests.xproj new file mode 100644 index 0000000..5f780f1 --- /dev/null +++ b/src/Alive.Net.UnitTests/Alive.Net.UnitTests.xproj @@ -0,0 +1,20 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + 4ca8001b-27c7-4671-b451-2c2da00a3827 + Alive.Net.UnitTests + ..\..\artifacts\obj\$(MSBuildProjectName) + ..\..\artifacts\bin\$(MSBuildProjectName)\ + + + + 2.0 + + + diff --git a/src/Alive.Net.UnitTests/Class1.cs b/src/Alive.Net.UnitTests/Class1.cs new file mode 100644 index 0000000..c14b995 --- /dev/null +++ b/src/Alive.Net.UnitTests/Class1.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Alive.Net.UnitTests +{ + // This project can output the Class library as a NuGet Package. + // To enable this option, right-click on the project and select the Properties menu item. In the Build tab select "Produce outputs on build". + public class Class1 + { + public Class1() + { + } + } +} diff --git a/src/Alive.Net.UnitTests/Properties/AssemblyInfo.cs b/src/Alive.Net.UnitTests/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3630061 --- /dev/null +++ b/src/Alive.Net.UnitTests/Properties/AssemblyInfo.cs @@ -0,0 +1,23 @@ +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("Alive.Net.UnitTests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Alive.Net.UnitTests")] +[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("4ca8001b-27c7-4671-b451-2c2da00a3827")] diff --git a/src/Alive.Net.UnitTests/project.json b/src/Alive.Net.UnitTests/project.json new file mode 100644 index 0000000..01fd7c9 --- /dev/null +++ b/src/Alive.Net.UnitTests/project.json @@ -0,0 +1,23 @@ +{ + "version": "1.0.0-*", + "description": "Alive.Net.UnitTests Class Library", + "authors": [ "Tommy Parnell" ], + "tags": [ "" ], + "projectUrl": "", + "licenseUrl": "", + "dependencies": { + "Alive.Net": "" + }, + "frameworks": { + "net451": { }, + "dotnet5.4": { + "dependencies": { + "Microsoft.CSharp": "4.0.1-beta-23516", + "System.Collections": "4.0.11-beta-23516", + "System.Linq": "4.0.1-beta-23516", + "System.Runtime": "4.0.21-beta-23516", + "System.Threading": "4.0.11-beta-23516" + } + } + } +} \ No newline at end of file diff --git a/src/Alive.Net/Alive.Net.xproj b/src/Alive.Net/Alive.Net.xproj new file mode 100644 index 0000000..972c641 --- /dev/null +++ b/src/Alive.Net/Alive.Net.xproj @@ -0,0 +1,20 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + 1628a48e-dd1d-45c7-a316-6cfd8498845c + Alive.Net + ..\..\artifacts\obj\$(MSBuildProjectName) + ..\..\artifacts\bin\$(MSBuildProjectName)\ + + + + 2.0 + + + diff --git a/src/Alive.Net/Alive.cs b/src/Alive.Net/Alive.cs new file mode 100644 index 0000000..611ec2f --- /dev/null +++ b/src/Alive.Net/Alive.cs @@ -0,0 +1,69 @@ +using Microsoft.AspNet.Builder; +using Microsoft.AspNet.Http; +using System; +using System.IO; +using System.Threading.Tasks; + +namespace Alive.Net +{ + public class Alive + { + private RequestDelegate _next; + + private AliveOptions Options { get; set; } + + public Alive(RequestDelegate next, AliveOptions options) + { + Options = options ?? new AliveOptions(); + if (next == null) + { + throw new ArgumentNullException(nameof(next), "RequestDelegate not passed in"); + } + _next = next; + } + + public async Task Invoke(HttpContext context) + { + if (context.Request.Path.Equals(this.Options.LivecheckPath, StringComparison.CurrentCultureIgnoreCase)) + { + context.Response.StatusCode = (int)this.Options.ReturnStatusCode; + if (!string.IsNullOrWhiteSpace(Options.BodyText)) + { + await context.Response.WriteAsync(Options.BodyText); + } + } + else + { + await _next?.Invoke(context); + } + //context.Request.Path. + } + } + + public static class BuilderExtension + { + /// + /// Automatic livecheck + /// + /// + /// Setup your options + public static void UseAlive(this IApplicationBuilder app, Action options) + { + var userOptions = new AliveOptions(); + options?.Invoke(userOptions); + app.UseMiddleware(userOptions); + } + + /// + /// Automatic livecheck + /// + /// + /// Setup your options + public static void UseHeartBeat(this IApplicationBuilder app, Action options) + { + var userOptions = new AliveOptions(); + options?.Invoke(userOptions); + app.UseMiddleware(userOptions); + } + } +} \ No newline at end of file diff --git a/src/Alive.Net/AliveOptions.cs b/src/Alive.Net/AliveOptions.cs new file mode 100644 index 0000000..328f30f --- /dev/null +++ b/src/Alive.Net/AliveOptions.cs @@ -0,0 +1,16 @@ +using Microsoft.AspNet.Http; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Threading.Tasks; + +namespace Alive.Net +{ + public class AliveOptions + { + public PathString LivecheckPath { get; set; } = new PathString("/livecheck"); + public HttpStatusCode ReturnStatusCode { get; set; } = HttpStatusCode.OK; + public string BodyText { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/src/Alive.Net/Properties/AssemblyInfo.cs b/src/Alive.Net/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ec0ee03 --- /dev/null +++ b/src/Alive.Net/Properties/AssemblyInfo.cs @@ -0,0 +1,23 @@ +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("Alive.Net")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Alive.Net")] +[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("1628a48e-dd1d-45c7-a316-6cfd8498845c")] diff --git a/src/Alive.Net/project.json b/src/Alive.Net/project.json new file mode 100644 index 0000000..79e8128 --- /dev/null +++ b/src/Alive.Net/project.json @@ -0,0 +1,23 @@ +{ + "version": "1.0.0-*", + "description": "Alive.Net Class Library", + "authors": [ "Tommy Parnell" ], + "tags": [ "" ], + "projectUrl": "", + "licenseUrl": "", + "dependencies": { + "Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final" + }, + "frameworks": { + "net451": { }, + "dotnet5.4": { + "dependencies": { + "Microsoft.CSharp": "4.0.1-beta-23516", + "System.Collections": "4.0.11-beta-23516", + "System.Linq": "4.0.1-beta-23516", + "System.Runtime": "4.0.21-beta-23516", + "System.Threading": "4.0.11-beta-23516" + } + } + } +} \ No newline at end of file