Browse Source

Think I got subdomains working.

Reorganized controllers into areas.
Added 'About' page.
tags/2.0.3
Teknikode 4 years ago
parent
commit
fc2e12e290
34 changed files with 637 additions and 180 deletions
  1. 24
    14
      Teknik/App_Start/RouteConfig.cs
  2. 37
    9
      Teknik/App_Start/SubdomainRoute.cs
  3. 50
    7
      Teknik/App_Start/SubdomainRouteExtension.cs
  4. 25
    0
      Teknik/Areas/About/AboutAreaRegistration.cs
  5. 22
    0
      Teknik/Areas/About/Controllers/AboutController.cs
  6. 3
    0
      Teknik/Areas/About/Views/_ViewStart.cshtml
  7. 36
    0
      Teknik/Areas/About/Views/web.config
  8. 44
    0
      Teknik/Areas/Blog/BlogAreaRegistration.cs
  9. 9
    8
      Teknik/Areas/Blog/Controllers/BlogController.cs
  10. 2
    0
      Teknik/Areas/Blog/Views/Blog/Index.cshtml
  11. 3
    0
      Teknik/Areas/Blog/Views/_ViewStart.cshtml
  12. 36
    0
      Teknik/Areas/Blog/Views/web.config
  13. 20
    0
      Teknik/Areas/Dev/Controllers/DevController.cs
  14. 32
    0
      Teknik/Areas/Dev/DevAreaRegistration.cs
  15. 4
    0
      Teknik/Areas/Dev/Views/Dev/Index.cshtml
  16. 3
    0
      Teknik/Areas/Dev/Views/_ViewStart.cshtml
  17. 36
    0
      Teknik/Areas/Dev/Views/web.config
  18. 3
    22
      Teknik/Areas/Home/Controllers/HomeController.cs
  19. 38
    0
      Teknik/Areas/Home/HomeAreaRegistration.cs
  20. 2
    2
      Teknik/Areas/Home/Views/Home/Index.cshtml
  21. 3
    0
      Teknik/Areas/Home/Views/_ViewStart.cshtml
  22. 36
    0
      Teknik/Areas/Home/Views/web.config
  23. 12
    0
      Teknik/Configuration/Config.cs
  24. 1
    1
      Teknik/Controllers/DefaultController.cs
  25. 1
    0
      Teknik/Global.asax.cs
  26. 0
    13
      Teknik/Startup.cs
  27. 32
    41
      Teknik/Teknik.csproj
  28. 78
    0
      Teknik/TransformWebConfig/original/Web.config
  29. 0
    1
      Teknik/Views/Blog/Index.cshtml
  30. 0
    1
      Teknik/Views/Home/About.cshtml
  31. 0
    1
      Teknik/Views/Home/Contact.cshtml
  32. 1
    1
      Teknik/Views/Shared/_Footer.cshtml
  33. 42
    47
      Teknik/Web.config
  34. 2
    12
      Teknik/packages.config

+ 24
- 14
Teknik/App_Start/RouteConfig.cs View File

@@ -14,22 +14,32 @@ namespace Teknik
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
string configContents = File.ReadAllText(HttpContext.Current.Server.MapPath("~/App_Data/Config.json"));
Config config = Config.Deserialize(configContents);

routes.MapSubdomainRoute(
"SubdomainRoute", // Route name
"{customer}." + config.Host, // Domain with parameters
"{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
//routes.MapMvcAttributeRoutes();
//routes.Add(new SubdomainRoute());

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
//Map subdomains to specific style of routing
// Development Routing
//routes.MapSubdomainRoute(
// "Dev", // Route name
// "dev." + config.Host, // Domain with parameters
// "{controller}/{action}", // URL with parameters
// new { controller = "Dev", action = "Index" } // Parameter defaults
// );
//// Blog Routing
//routes.MapSubdomainRoute(
// "Blog", // Route name
// "{controller}." + config.Host, // Domain with parameters
// "{username}/{id}", // URL with parameters
// new { controller = "Blog", action = "Index" } // Parameter defaults
// );

//routes.MapRoute(
// name: "Default",
// url: "{controller}/{action}",
// defaults: new { controller = "Home", action = "Index" },
// namespaces: new[] { "Teknik.Controllers" }
//);
}
}
}

+ 37
- 9
Teknik/App_Start/SubdomainRoute.cs View File

@@ -1,19 +1,43 @@
using System.Linq;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace Teknik
{
class SubdomainRoute : Route
public class SubdomainRoute : Route
{
public SubdomainRoute(string url) : base(url, new MvcRouteHandler()) { }
public string subDomain { get; set; }

public SubdomainRoute(string subdomain, string url, IRouteHandler handler)
: base(url, handler)
{
this.subDomain = subdomain;
}
public SubdomainRoute(string subdomain, string url, RouteValueDictionary defaults, IRouteHandler handler)
: base(url, defaults, handler)
{
this.subDomain = subdomain;
}

public SubdomainRoute(string subdomain, string url, RouteValueDictionary defaults, RouteValueDictionary constraints, IRouteHandler handler)
: base(url, defaults, constraints, handler)
{
this.subDomain = subdomain;
}

public SubdomainRoute(string subdomain, string url, RouteValueDictionary defaults, RouteValueDictionary constraints, RouteValueDictionary dataTokens, IRouteHandler handler)
: base(url, defaults, constraints, dataTokens, handler)
{
this.subDomain = subdomain;
}

public override RouteData GetRouteData(HttpContextBase httpContext)
{
var routeData = base.GetRouteData(httpContext);
if (routeData == null) return null; // Only look at the subdomain if this route matches in the first place.
string subdomain = httpContext.Request.Params["subdomain"]; // A subdomain specified as a query parameter takes precedence over the hostname.
string subdomain = httpContext.Request.Params["sub"]; // A subdomain specified as a query parameter takes precedence over the hostname.
if (subdomain == null)
{
string host = httpContext.Request.Headers["Host"];
@@ -21,16 +45,20 @@ namespace Teknik
if (index >= 0)
subdomain = host.Substring(0, index);
}
if (subdomain != null)
routeData.Values["subdomain"] = subdomain;
return routeData;

routeData.Values["sub"] = subdomain;
if (subDomain == subdomain)
{
return routeData;
}
return null;
}

public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
object subdomainParam = requestContext.HttpContext.Request.Params["subdomain"];
object subdomainParam = requestContext.HttpContext.Request.Params["sub"];
if (subdomainParam != null)
values["subdomain"] = subdomainParam;
values["sub"] = subdomainParam;
return base.GetVirtualPath(requestContext, values);
}
}

+ 50
- 7
Teknik/App_Start/SubdomainRouteExtension.cs View File

@@ -5,14 +5,57 @@ namespace Teknik
{
public static class SubdomainRouteExtension
{
public static void MapSubdomainRoute(this RouteCollection routes, string name, string url, object defaults = null, object constraints = null)
public static SubdomainRoute MapSubdomainRoute(this RouteCollection routes, string name, string subDomain, string url, object defaults)
{
routes.Add(name, new SubdomainRoute(url)
{
Defaults = new RouteValueDictionary(defaults),
Constraints = new RouteValueDictionary(constraints),
DataTokens = new RouteValueDictionary()
});

SubdomainRoute route = new SubdomainRoute(
subDomain,
url,
new RouteValueDictionary(defaults),
new MvcRouteHandler());
routes.Add(name, route);

return route;
}

public static SubdomainRoute MapSubdomainRoute(this AreaRegistrationContext context, string name, string subDomain, string url, object defaults)
{
SubdomainRoute route = new SubdomainRoute(
subDomain,
url,
new RouteValueDictionary(defaults),
new RouteValueDictionary(new {}),
new RouteValueDictionary(new {Area = context.AreaName}),
new MvcRouteHandler());

context.Routes.Add(name, route);
return route;
}

public static SubdomainRoute MapSubdomainRoute(this AreaRegistrationContext context, string name, string subDomain, string url, object defaults, object constraints)
{
SubdomainRoute route = new SubdomainRoute(
subDomain,
url,
new RouteValueDictionary(defaults),
new RouteValueDictionary(constraints),
new RouteValueDictionary(new {Area = context.AreaName}),
new MvcRouteHandler());

context.Routes.Add(name, route);
return route;
}

public static SubdomainRoute MapSubdomainRoute(this RouteCollection routes, string name, string subDomain, string url, object defaults, object constraints)
{
SubdomainRoute route = new SubdomainRoute(
subDomain,
url,
new RouteValueDictionary(defaults),
new RouteValueDictionary(constraints),
new MvcRouteHandler());
routes.Add(name, route);
return route;
}
}
}

+ 25
- 0
Teknik/Areas/About/AboutAreaRegistration.cs View File

@@ -0,0 +1,25 @@
using System.Web.Mvc;

namespace Teknik.Areas.About
{
public class AboutAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "About";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapSubdomainRoute(
"About_default", // Route name
"about",
"{controller}/{action}", // URL with parameters
new { area = this.AreaName, controller = "About", action = "Index", username = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
);
}
}
}

+ 22
- 0
Teknik/Areas/About/Controllers/AboutController.cs View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Teknik.Controllers;

namespace Teknik.Areas.About.Controllers
{
public class AboutController : DefaultController
{
[AllowAnonymous]
// GET: About/About
public ActionResult Index()
{
ViewBag.Title = Config.Title + " - About";
ViewBag.Message = "Your application description page.";

return View(Config);
}
}
}

+ 3
- 0
Teknik/Areas/About/Views/_ViewStart.cshtml View File

@@ -0,0 +1,3 @@
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}

+ 36
- 0
Teknik/Areas/About/Views/web.config View File

@@ -0,0 +1,36 @@
<?xml version="1.0"?>

<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="Teknik" />
</namespaces>
</pages>
</system.web.webPages.razor>

<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>

<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>

+ 44
- 0
Teknik/Areas/Blog/BlogAreaRegistration.cs View File

@@ -0,0 +1,44 @@
using System.Web.Mvc;

namespace Teknik.Areas.Blog
{
public class BlogAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Blog";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
//context.MapSubdomainRoute(
// "Blog_dev", // Route name
// "dev",
// "blog/{controller}/{action}/{username}/{page}", // URL with parameters
// new { subdomain = "blog", area = this.AreaName, controller = "Blog", action = "Index", username = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
// );
context.MapSubdomainRoute(
"Blog_default", // Route name
"blog",
"{controller}/{action}/{username}/{page}", // URL with parameters
new { area = this.AreaName, controller = "Blog", action = "Index", username = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
);
//context.Routes.MapSubDomainRoute(
// "Blog_default", // Route name
// "blog", // Domain with parameters
// "{controller}/{action}", // URL with parameters
// new { controller = "Blog", action = "Index" }, // Parameter defaults
// new[] { typeof(Controllers.BlogController).Namespace }
// );
//context.MapRoute(
// "Blog_default",
// "{subdomain}/{controller}/{action}/{username}/{page}",
// new { subdomain = "blog", controller = "Blog", action = "Index", username = UrlParameter.Optional, page = UrlParameter.Optional },
// namespaces: new[] { "Teknik.Areas.Blog.Controllers" }
//);
}
}
}

Teknik/Controllers/BlogController.cs → Teknik/Areas/Blog/Controllers/BlogController.cs View File

@@ -6,11 +6,12 @@ using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using Teknik.Controllers;
using Teknik.Models;

namespace Teknik.Controllers
namespace Teknik.Areas.Blog.Controllers
{
public class BlogController : Controller
public class BlogController : DefaultController
{
private TeknikEntities db = new TeknikEntities();

@@ -29,7 +30,7 @@ namespace Teknik.Controllers
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Blog blog = db.Blogs.Find(id);
Models.Blog blog = db.Blogs.Find(id);
if (blog == null)
{
return HttpNotFound();
@@ -48,7 +49,7 @@ namespace Teknik.Controllers
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "BlogId,UserId")] Blog blog)
public ActionResult Create([Bind(Include = "BlogId,UserId")] Models.Blog blog)
{
if (ModelState.IsValid)
{
@@ -67,7 +68,7 @@ namespace Teknik.Controllers
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Blog blog = db.Blogs.Find(id);
Models.Blog blog = db.Blogs.Find(id);
if (blog == null)
{
return HttpNotFound();
@@ -80,7 +81,7 @@ namespace Teknik.Controllers
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "BlogId,UserId")] Blog blog)
public ActionResult Edit([Bind(Include = "BlogId,UserId")] Models.Blog blog)
{
if (ModelState.IsValid)
{
@@ -98,7 +99,7 @@ namespace Teknik.Controllers
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Blog blog = db.Blogs.Find(id);
Models.Blog blog = db.Blogs.Find(id);
if (blog == null)
{
return HttpNotFound();
@@ -111,7 +112,7 @@ namespace Teknik.Controllers
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Blog blog = db.Blogs.Find(id);
Models.Blog blog = db.Blogs.Find(id);
db.Blogs.Remove(blog);
db.SaveChanges();
return RedirectToAction("Index");

+ 2
- 0
Teknik/Areas/Blog/Views/Blog/Index.cshtml View File

@@ -0,0 +1,2 @@

Test Blog

+ 3
- 0
Teknik/Areas/Blog/Views/_ViewStart.cshtml View File

@@ -0,0 +1,3 @@
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}

+ 36
- 0
Teknik/Areas/Blog/Views/web.config View File

@@ -0,0 +1,36 @@
<?xml version="1.0"?>

<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="Teknik" />
</namespaces>
</pages>
</system.web.webPages.razor>

<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>

<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>

+ 20
- 0
Teknik/Areas/Dev/Controllers/DevController.cs View File

@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Teknik.Controllers;

namespace Teknik.Areas.Dev.Controllers
{
public class DevController : DefaultController
{
[AllowAnonymous]
// GET: Dev
public ActionResult Index()
{
ViewBag.Title = Config.Title + " - Development";
return View("~/Areas/Dev/Views/Dev/Index.cshtml");
}
}
}

+ 32
- 0
Teknik/Areas/Dev/DevAreaRegistration.cs View File

@@ -0,0 +1,32 @@
using System.Web.Mvc;

namespace Teknik.Areas.Dev
{
public class DevAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Dev";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
//Config config = Config.Load();
context.MapSubdomainRoute(
"Dev_subdomain", // Route name
"dev",
"{area}/{controller}/{action}", // URL with parameters
new { area = "Home", controller = "Home", action = "Index" } // Parameter defaults
);
//context.MapRoute(
// "Dev_default",
// "Dev/{controller}/{action}",
// new { controller = "Dev", action = "Index" },
// namespaces: new[] { "Teknik.Areas.Dev.Controllers" }
//);
}
}
}

+ 4
- 0
Teknik/Areas/Dev/Views/Dev/Index.cshtml View File

@@ -0,0 +1,4 @@

Testing Dev

@Html.ActionLink("Main Area", "Index", "Blog", new { area = "Blog" }, null)

+ 3
- 0
Teknik/Areas/Dev/Views/_ViewStart.cshtml View File

@@ -0,0 +1,3 @@
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}

+ 36
- 0
Teknik/Areas/Dev/Views/web.config View File

@@ -0,0 +1,36 @@
<?xml version="1.0"?>

<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="Teknik" />
</namespaces>
</pages>
</system.web.webPages.razor>

<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>

<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>

Teknik/Controllers/HomeController.cs → Teknik/Areas/Home/Controllers/HomeController.cs View File

@@ -1,17 +1,16 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.UI.WebControls;
using Teknik.Controllers;
using Teknik.Models;
using Teknik.ViewModels;

namespace Teknik.Controllers
namespace Teknik.Areas.Home.Controllers
{
public class HomeController : DefaultController
{
// GET: Home/Home
private TeknikEntities db = new TeknikEntities();

[AllowAnonymous]
@@ -30,23 +29,5 @@ namespace Teknik.Controllers
ViewBag.Title = Config.Title;
return View(lastPosts);
}

[AllowAnonymous]
public ActionResult About()
{
ViewBag.Title = Config.Title + " - About";
ViewBag.Message = "Your application description page.";

return View();
}

[AllowAnonymous]
public ActionResult Contact()
{
ViewBag.Title = Config.Title + " - Contact";
ViewBag.Message = "Your contact page.";

return View();
}
}
}

+ 38
- 0
Teknik/Areas/Home/HomeAreaRegistration.cs View File

@@ -0,0 +1,38 @@
using System.Web.Mvc;
using Teknik;

namespace Teknik.Areas.Home
{
public class HomeAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Home";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapSubdomainRoute(
"Home_dev", // Route name
"www",
"{controller}/{action}", // URL with parameters
new { area = this.AreaName, controller = "Home", action = "Index" } // Parameter defaults
);
context.MapSubdomainRoute(
"Home_subdomain", // Route name
null,
"{controller}/{action}", // URL with parameters
new { area = this.AreaName, controller = "Home", action = "Index" } // Parameter defaults
);
//context.MapRoute(
// "Home_default",
// "{controller}/{action}",
// new { area = "Home", controller = "Home", action = "Index" },
// namespaces: new[] { "Teknik.Areas.Home.Controllers" }
//);
}
}
}

Teknik/Views/Home/Index.cshtml → Teknik/Areas/Home/Views/Home/Index.cshtml View File

@@ -138,10 +138,10 @@
<div class="row">
<div class="col-sm-12">
<div class="blog-post-sm">
<h2 class="blog-post-title-sm text-left"><a href="@Url.Action("Index", "Blog")/@post.Blog.User.Username/@post.PostId" id="title_@post.PostId">@post.Title</a>
<h2 class="blog-post-title-sm text-left"><a href="@Url.Action("Index", "Blog", new { area = "Blog"}, "https")/@post.Blog.User.Username/@post.PostId" id="title_@post.PostId">@post.Title</a>
</h2>
<p class="blog-post-meta-sm text-left text-muted">
Posted on @post.DatePosted.ToString("MMMM dd, yyyy") by <a href="@Url.Action("Index", "Profile")/@post.Blog.User.Username">@post.Blog.User.Username</a>
Posted on @post.DatePosted.ToString("MMMM dd, yyyy") by <a href="@Url.Action("Index", "Profile", new { area = "Blog"}, "https")/@post.Blog.User.Username">@post.Blog.User.Username</a>
</p>
</div>
</div>

+ 3
- 0
Teknik/Areas/Home/Views/_ViewStart.cshtml View File

@@ -0,0 +1,3 @@
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}

+ 36
- 0
Teknik/Areas/Home/Views/web.config View File

@@ -0,0 +1,36 @@
<?xml version="1.0"?>

<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="Teknik" />
</namespaces>
</pages>
</system.web.webPages.razor>

<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>

<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>

+ 12
- 0
Teknik/Configuration/Config.cs View File

@@ -1,5 +1,7 @@
using System;
using System.IO;
using System.Threading;
using System.Web;
using Newtonsoft.Json;

namespace Teknik
@@ -15,12 +17,14 @@ namespace Teknik
private string _Description;
private string _Author;
private string _Host;
private string _BitcoinAddress;

public bool DevEnvironment { get { return _DevEnvironment; } set { _DevEnvironment = value; } }
public string Title { get { return _Title; } set { _Title = value; } }
public string Description { get { return _Description; } set { _Description = value; } }
public string Author { get { return _Author; } set { _Author = value; } }
public string Host { get { return _Host; } set { _Host = value; } }
public string BitcoinAddress { get { return _BitcoinAddress; } set { _BitcoinAddress = value; } }

public Config()
{
@@ -39,6 +43,7 @@ namespace Teknik
Description = String.Empty;
Author = String.Empty;
Host = String.Empty;
BitcoinAddress = string.Empty;
}

public static Config Deserialize(string text)
@@ -50,5 +55,12 @@ namespace Teknik
{
return JsonConvert.SerializeObject(config);
}

public static Config Load()
{
string configContents = File.ReadAllText(HttpContext.Current.Server.MapPath("~/App_Data/Config.json"));
Config config = Config.Deserialize(configContents);
return config;
}
}
}

+ 1
- 1
Teknik/Controllers/DefaultController.cs View File

@@ -12,7 +12,7 @@ namespace Teknik.Controllers

protected string Subdomain
{
get { return (string)Request.RequestContext.RouteData.Values["subdomain"]; }
get { return (string)Request.RequestContext.RouteData.Values["sub"]; }
}

protected Config Config

+ 1
- 0
Teknik/Global.asax.cs View File

@@ -16,6 +16,7 @@ namespace Teknik
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);

+ 0
- 13
Teknik/Startup.cs View File

@@ -1,13 +0,0 @@
using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(Teknik.Startup))]
namespace Teknik
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
}
}
}

+ 32
- 41
Teknik/Teknik.csproj View File

@@ -54,6 +54,10 @@
<HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="RouteDebugger, Version=2.1.4.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\routedebugger.2.1.4.0\lib\net40\RouteDebugger.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="SecurityDriven.Inferno, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Inferno.1.0.0\lib\net451\SecurityDriven.Inferno.dll</HintPath>
<Private>True</Private>
@@ -123,51 +127,24 @@
<Reference Include="Microsoft.AspNet.Identity.Core">
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.0\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.Owin">
<HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.0\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.EntityFramework">
<HintPath>..\packages\Microsoft.AspNet.Identity.EntityFramework.2.2.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll</HintPath>
</Reference>
<Reference Include="Owin">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin">
<HintPath>..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Host.SystemWeb">
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security">
<HintPath>..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.Facebook">
<HintPath>..\packages\Microsoft.Owin.Security.Facebook.3.0.1\lib\net45\Microsoft.Owin.Security.Facebook.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.Cookies">
<HintPath>..\packages\Microsoft.Owin.Security.Cookies.3.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.OAuth">
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.Google">
<HintPath>..\packages\Microsoft.Owin.Security.Google.3.0.1\lib\net45\Microsoft.Owin.Security.Google.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.Twitter">
<HintPath>..\packages\Microsoft.Owin.Security.Twitter.3.0.1\lib\net45\Microsoft.Owin.Security.Twitter.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.MicrosoftAccount">
<HintPath>..\packages\Microsoft.Owin.Security.MicrosoftAccount.3.0.1\lib\net45\Microsoft.Owin.Security.MicrosoftAccount.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="App_Start\BundleConfig.cs" />
<Compile Include="App_Start\FilterConfig.cs" />
<Compile Include="App_Start\RouteConfig.cs" />
<Compile Include="Areas\About\AboutAreaRegistration.cs" />
<Compile Include="Areas\About\Controllers\AboutController.cs" />
<Compile Include="Areas\Blog\BlogAreaRegistration.cs" />
<Compile Include="Areas\Dev\DevAreaRegistration.cs" />
<Compile Include="Areas\Home\Controllers\HomeController.cs" />
<Compile Include="Areas\Home\HomeAreaRegistration.cs" />
<Compile Include="Configuration\Config.cs" />
<Compile Include="Controllers\BlogController.cs" />
<Compile Include="Areas\Blog\Controllers\BlogController.cs" />
<Compile Include="Controllers\DefaultController.cs" />
<Compile Include="Controllers\HomeController.cs" />
<Compile Include="Areas\Dev\Controllers\DevController.cs" />
<Compile Include="Controllers\ProfileController.cs" />
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
@@ -181,7 +158,6 @@
<Compile Include="ViewModels\RegisterViewModel.cs" />
<Compile Include="ViewModels\ViewModelBase.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Startup.cs" />
<Compile Include="App_Start\SubdomainRoute.cs" />
<Compile Include="App_Start\SubdomainRouteExtension.cs" />
</ItemGroup>
@@ -213,6 +189,17 @@
<Content Include="Content\fonts\fontawesome-webfont.eot" />
<Content Include="Content\fonts\FontAwesome.otf" />
<Content Include="ConnectionStrings.config" />
<Content Include="Areas\Blog\Views\web.config" />
<Content Include="Areas\Blog\Views\Blog\Index.cshtml" />
<Content Include="Areas\Dev\Views\web.config" />
<Content Include="Areas\Home\Views\web.config" />
<Content Include="Areas\Home\Views\_ViewStart.cshtml" />
<Content Include="Areas\Dev\Views\_ViewStart.cshtml" />
<Content Include="Areas\Blog\Views\_ViewStart.cshtml" />
<Content Include="Areas\Home\Views\Home\Index.cshtml" />
<Content Include="Areas\About\Views\web.config" />
<Content Include="Areas\About\Views\About\Index.cshtml" />
<Content Include="Areas\About\Views\_ViewStart.cshtml" />
<None Include="Properties\PublishProfiles\IIS.pubxml" />
<None Include="Scripts\jquery-2.1.4.intellisense.js" />
<Content Include="Scripts\common.js" />
@@ -245,20 +232,24 @@
<Content Include="Views\_ViewStart.cshtml" />
<Content Include="Views\Shared\Error.cshtml" />
<Content Include="Views\Shared\_Layout.cshtml" />
<Content Include="Views\Home\About.cshtml" />
<Content Include="Views\Home\Contact.cshtml" />
<Content Include="Views\Home\Index.cshtml" />
<Content Include="Views\Shared\Lockout.cshtml" />
<Content Include="Views\Shared\_LoginPartial.cshtml" />
<Content Include="Views\Shared\_Navbar.cshtml" />
<Content Include="Views\Shared\_Footer.cshtml" />
<Content Include="Views\Blog\Index.cshtml" />
<Content Include="Views\Profile\Index.cshtml" />
<Content Include="Views\Profile\Login.cshtml" />
<Content Include="Views\Profile\Register.cshtml" />
<Content Include="Areas\Dev\Views\Dev\Index.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="Views\Default\" />
<Folder Include="Areas\About\Models\" />
<Folder Include="Areas\About\Views\Shared\" />
<Folder Include="Areas\Blog\Models\" />
<Folder Include="Areas\Blog\Views\Shared\" />
<Folder Include="Areas\Dev\Models\" />
<Folder Include="Areas\Dev\Views\Shared\" />
<Folder Include="Areas\Home\Models\" />
<Folder Include="Areas\Home\Views\Shared\" />
</ItemGroup>
<ItemGroup>
<Content Include="packages.config" />

+ 78
- 0
Teknik/TransformWebConfig/original/Web.config View File

@@ -0,0 +1,78 @@
<?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=301880
-->
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
<connectionStrings configSource="ConnectionStrings.config" />
<!-- Create ConnectionStrings.config and add your connection string-->
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.

The following attributes can be set on the <httpRuntime> tag.
<system.Web>
<httpRuntime targetFramework="4.5.2" />
</system.Web>
-->
<system.web>
<customErrors mode="Off" />
<authentication mode="Forms" />
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
</modules>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>

+ 0
- 1
Teknik/Views/Blog/Index.cshtml View File

@@ -1 +0,0 @@


+ 0
- 1
Teknik/Views/Home/About.cshtml View File

@@ -1 +0,0 @@


+ 0
- 1
Teknik/Views/Home/Contact.cshtml View File

@@ -1 +0,0 @@


+ 1
- 1
Teknik/Views/Shared/_Footer.cshtml View File

@@ -1,5 +1,5 @@
<footer id="footer" class="footer navbar navbar-default">
<div class="container">
<p class="text-muted">&copy; Teknik 2013-2015 | @Html.ActionLink("Privacy", "Index", "Privacy", routeValues: null, htmlAttributes: new { title = "Privacy" }) | @Html.ActionLink("Transparency", "Index", "Transparency", routeValues: null, htmlAttributes: new { title = "Transparency" }) | @Html.ActionLink("Server", "Index", "Server", routeValues: null, htmlAttributes: new { title = "Server" })</p>
<p class="text-muted">&copy; Teknik 2013-2015 | @Html.ActionLink("Privacy", "Index", "Privacy", new { area = "Privacy"}, htmlAttributes: new { title = "Privacy" }) | @Html.ActionLink("Transparency", "Index", "Transparency", new { area = "Transparency" }, htmlAttributes: new { title = "Transparency" }) | @Html.ActionLink("Server", "Index", "Server", new { area = "Server" }, htmlAttributes: new { title = "Server" })</p>
</div>
</footer>

+ 42
- 47
Teknik/Web.config View File

@@ -1,22 +1,22 @@
<?xml version="1.0"?>
<?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=301880
-->
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<connectionStrings configSource="ConnectionStrings.config"/>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --><!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
<connectionStrings configSource="ConnectionStrings.config" />
<!-- Create ConnectionStrings.config and add your connection string-->
<appSettings>
<add key="webpages:Version" value="3.0.0.0"/>
<add key="webpages:Enabled" value="false"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="RouteDebugger:Enabled" value="true" /></appSettings>
<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.

@@ -26,69 +26,64 @@
</system.Web>
-->
<system.web>
<customErrors mode="Off"/>
<authentication mode="Forms"/>
<compilation debug="true" targetFramework="4.5.2"/>
<httpRuntime targetFramework="4.5.2"/>
<customErrors mode="Off" />
<authentication mode="Forms" />
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthentication"/>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
</modules>
<!--<rewrite>
<rules>
<rule name="sub domain map" patternSyntax="ECMAScript" stopProcessing="false">
<match url="(.*)" />
<action type="Rewrite" url="{C:1}/{R:1}" appendQueryString="true" />
<conditions trackAllCaptures="true">
<add input="{HTTP_HOST}" pattern="([a-zA-Z0-9]+)?.?teknik.io" />
</conditions>
</rule>
</rules>
</rewrite>-->
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed"/>
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0"/>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb"/>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>

+ 2
- 12
Teknik/packages.config View File

@@ -2,32 +2,22 @@
<packages>
<package id="Antlr" version="3.4.1.9004" targetFramework="net46" userInstalled="true" />
<package id="bootstrap" version="3.3.4" targetFramework="net46" userInstalled="true" />
<package id="EntityFramework" version="6.1.2" targetFramework="net46" userInstalled="true" />
<package id="EntityFramework" version="6.1.2" targetFramework="net452" userInstalled="true" />
<package id="FontAwesome" version="4.2.0" targetFramework="net46" userInstalled="true" />
<package id="Inferno" version="1.0.0" targetFramework="net46" userInstalled="true" />
<package id="jQuery" version="2.1.4" targetFramework="net46" userInstalled="true" />
<package id="jQuery.Validation" version="1.11.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.AspNet.Identity.Core" version="2.2.0" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.0" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.0" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Owin.Security.Facebook" version="3.0.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Owin.Security.Google" version="3.0.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Owin.Security.MicrosoftAccount" version="3.0.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Owin.Security.Twitter" version="3.0.1" targetFramework="net46" userInstalled="true" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" userInstalled="true" />
<package id="Modernizr" version="2.6.2" targetFramework="net46" userInstalled="true" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net46" userInstalled="true" />
<package id="Owin" version="1.0" targetFramework="net46" userInstalled="true" />
<package id="Respond" version="1.2.0" targetFramework="net46" userInstalled="true" />
<package id="routedebugger" version="2.1.4" targetFramework="net452" userInstalled="true" />
<package id="WebGrease" version="1.6.0" targetFramework="net46" userInstalled="true" />
</packages>

Loading…
Cancel
Save