@using System.Collections
@using System.Net.Http
@using System.Web.Mvc.Html
@using Umbraco.Core
@using ClientDependency.Core
@using ClientDependency.Core.Mvc
@using Microsoft.Owin.Security
@using Newtonsoft.Json
@using Newtonsoft.Json.Linq
@using Umbraco.Core.IO
@using Umbraco.Web
@using Umbraco.Web.Editors
@using umbraco

@inherits System.Web.Mvc.WebViewPage

@{
    var isDebug = false;
    if (Request.RawUrl.IndexOf('?') >= 0)
    {
        var parsed = HttpUtility.ParseQueryString(Request.RawUrl.Split('?')[1]);
        var attempt = parsed["umbDebug"].TryConvertTo<bool>();
        if (attempt && attempt.Result)
        {
            isDebug = true;
        }
    }

    Html
        .RequiresCss("assets/css/umbraco.css", "Umbraco")
        .RequiresCss("tree/treeicons.css", "UmbracoClient")
        .RequiresCss("lib/bootstrap-social/bootstrap-social.css", "Umbraco")
        .RequiresCss("lib/font-awesome/css/font-awesome.min.css", "Umbraco");
}

<!DOCTYPE html>

<html lang="en">
<head>
    <base href="@GlobalSettings.Path.EnsureEndsWith('/')" />
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="robots" content="noindex, nofollow">

    <title ng-bind="$root.locationTitle">Umbraco</title>

    @Html.RenderCssHere(
        new BasicPath("Umbraco", IOHelper.ResolveUrl(SystemDirectories.Umbraco)),
        new BasicPath("UmbracoClient", IOHelper.ResolveUrl(SystemDirectories.UmbracoClient)))


</head>
<noscript><h5><strong>&nbsp; JavaScript is disabled. Please enable to continue!</strong></h5></noscript>
<body ng-class="{touch:touchDevice,emptySection:emptySection}" ng-controller="Umbraco.MainController" id="umbracoMainPageBody">
    <div ng-hide="!authenticated" ng-cloak id="mainwrapper" class="clearfix" ng-click="closeDialogs($event)">

        <umb-navigation></umb-navigation>

        <section id="contentwrapper">
            <div id="contentcolumn" ng-view>
            </div>
        </section>

        <umb-notifications></umb-notifications>

    </div>

    @Html.BareMinimumServerVariablesScript(Url, Url.Action("ExternalLogin", "BackOffice", new { area = ViewBag.UmbracoPath }))

    <script type="text/javascript">
        document.angularReady = function(app) {

            @Html.AngularValueExternalLoginInfoScript((IEnumerable<string>)ViewBag.ExternalSignInError)
            @Html.AngularValueResetPasswordCodeInfoScript(ViewData["PasswordResetCode"])
        }
    </script>


    @*And finally we can load in our angular app*@
    <script type="text/javascript" src="lib/rgrove-lazyload/lazyload.js"></script>
    <script type="text/javascript" src="@Url.GetUrlWithCacheBust("Application", "BackOffice")"></script>

    @if (isDebug)
    {
        @Html.RenderProfiler()
    }

    <umb-overlay
        ng-if="ysodOverlay.show"
        model="ysodOverlay"
        position="right"
        view="ysodOverlay.view">
    </umb-overlay>

</body>
</html>
