DotvvmStartup.cs

63 lines | 2.312 kB Blame History Raw Download
namespace Web
{
    using DotVVM.Framework.Configuration;
    using DotVVM.Framework.Controls.Bootstrap4;
    using DotVVM.Framework.ResourceManagement;
    using Helper;
    using Microsoft.Extensions.DependencyInjection;

    public class DotVvmStartup : IDotvvmStartup, IDotvvmServiceConfigurator
    {
        public void Configure(DotvvmConfiguration config, string applicationPath)
        {
            ConfigureControls(config, applicationPath);
            ConfigureResources(config, applicationPath);
            ConfigureRoutes(config, applicationPath);

            config.AddBootstrap4Configuration(new DotvvmBootstrapOptions
            {
                BootstrapCssResource = new StylesheetResource(new UrlResourceLocation("~/wwwroot/css/bootstrap/css/bootstrap.min.css")),
                BootstrapJsResource = new ScriptResource(new UrlResourceLocation("~/wwwroot/css/bootstrap/js/bootstrap.bundle.min.js")),
                JQueryResource = new ScriptResource(new UrlResourceLocation("~/wwwroot/js/jquery/jquery.min.js")),
                IncludeBootstrapResourcesInPage = true,
                IncludeJQueryResourceInPage = true
            });
        }

        public void ConfigureServices(IDotvvmServiceCollection options)
        {
            options.AddDefaultTempStorages(Constants.DefaultTemporaryStoragePath);
            //options.AddHotReload();
        }

        #region Private Methods
        private void ConfigureControls(DotvvmConfiguration config, string applicationPath)
        {
        }

        private void ConfigureResources(DotvvmConfiguration config, string applicationPath)
        {
            RegisterCss(config);
            RegisterJavascript(config);
        }

        private void ConfigureRoutes(DotvvmConfiguration config, string applicationPath)
        {
            config.RouteTable.Add("Default", "", "Views/default.dothtml");
            //config.RouteTable.AutoDiscoverRoutes(new DefaultRouteStrategy(config));
        }
        private void RegisterCss(DotvvmConfiguration config)
        {
            config.Resources.Register("Styles", new StylesheetResource()
            {
                Location = new UrlResourceLocation("~/wwwroot/css/site.css")
            });
        }

        private void RegisterJavascript(DotvvmConfiguration config)
        {
        }
        #endregion
    }
}