public void Configure(JsModelsConfiguration configuration) { // save path Path = configuration.Path; // compute js var generator = new JsModelGenerator(configuration.Models); _js = generator.GenerateModels(configuration.Models); // minify _js = (new Minifier()).MinifyJavaScript(_js); // get version hash var encoding = new UTF8Encoding(); var bytes = encoding.GetBytes(_js); VersionHash = Convert.ToBase64String(SHA512.Create().ComputeHash(bytes)); // compress and read out to byte array using (var ms = new MemoryStream()) { using (var stream = new GZipStream(ms, CompressionLevel.Optimal, false)) { stream.Write(bytes, 0, bytes.Length); } _jsCompressed = ms.ToArray(); } }
public void ConfigureJsModels(IAppBuilder app) { var config = new JsModelsConfiguration(); config.Models.AddRange(new[] {typeof (SampleModel), typeof (SampleChildModel)}); app.MapJsModels(config); }
private static void Configuration(IAppBuilder appBuilder, JsModelsConfiguration configuration) { var middleware = JsModelMiddleware.Instance; middleware.Configure(configuration); appBuilder.Run(middleware.Invoke); }
/// <summary> /// Maps JsModelsto the app builder pipeline at "/jsmodels". /// </summary> /// <param name="appBuilder">The app builder</param> /// <param name="configuration"></param> public static IAppBuilder MapJsModels(this IAppBuilder appBuilder, JsModelsConfiguration configuration) { return appBuilder.Map(configuration.Path, subBuilder => Configuration(subBuilder, configuration)); }