using NCC.Dependency; using System; using System.Threading.Tasks; namespace NCC.ViewEngine.Extensions { /// /// 字符串视图引擎拓展 /// [SuppressSniffer] public static class ViewEngineStringExtensions { /// /// 设置模板数据 /// /// /// /// /// public static ViewEnginePart SetTemplateModel(this string template, T model) where T : class, new() { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model); } /// /// 设置模板数据 /// /// /// /// public static ViewEnginePart SetTemplateModel(this string template, object model) { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model); } /// /// 设置模板构建选项 /// /// /// /// public static ViewEnginePart SetTemplateOptionsBuilder(this string template, Action optionsBuilder = default) { return new ViewEnginePart().SetTemplate(template).SetTemplateOptionsBuilder(optionsBuilder); } /// /// 设置模板缓存文件名(不含拓展名) /// /// /// /// public static ViewEnginePart SetTemplateCachedFileName(this string template, string cachedFileName) { return new ViewEnginePart().SetTemplate(template).SetTemplateCachedFileName(cachedFileName); } /// /// 视图模板服务作用域 /// /// /// /// public static ViewEnginePart SetViewEngineScoped(this string template, IServiceProvider serviceProvider) { return new ViewEnginePart().SetTemplate(template).SetViewEngineScoped(serviceProvider); } /// /// 编译并运行 /// /// /// /// /// public static string RunCompile(this string template, object model = null, Action builderAction = null) { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model).SetTemplateOptionsBuilder(builderAction).RunCompile(); } /// /// 编译并运行 /// /// /// /// /// public static Task RunCompileAsync(this string template, object model = null, Action builderAction = null) { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model).SetTemplateOptionsBuilder(builderAction).RunCompileAsync(); } /// /// 编译并运行 /// /// /// /// /// /// public static string RunCompile(this string template, T model, Action builderAction = null) where T : class, new() { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model).SetTemplateOptionsBuilder(builderAction).RunCompile(); } /// /// 编译并运行 /// /// /// /// /// /// public static Task RunCompileAsync(this string template, T model, Action builderAction = null) where T : class, new() { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model).SetTemplateOptionsBuilder(builderAction).RunCompileAsync(); } /// /// 通过缓存解析模板 /// /// /// /// /// /// public static string RunCompileFromCached(this string template, object model = null, string cachedFileName = default, Action builderAction = null) { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model).SetTemplateCachedFileName(cachedFileName).SetTemplateOptionsBuilder(builderAction).RunCompileFromCached(); } /// /// 通过缓存解析模板 /// /// /// /// /// /// public static Task RunCompileFromCachedAsync(this string template, object model = null, string cachedFileName = default, Action builderAction = null) { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model).SetTemplateCachedFileName(cachedFileName).SetTemplateOptionsBuilder(builderAction).RunCompileFromCachedAsync(); } /// /// 通过缓存解析模板 /// /// /// /// /// /// /// public static string RunCompileFromCached(this string template, T model, string cachedFileName = default, Action builderAction = null) where T : class, new() { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model).SetTemplateCachedFileName(cachedFileName).SetTemplateOptionsBuilder(builderAction).RunCompileFromCached(); } /// /// 通过缓存解析模板 /// /// /// /// /// /// public static Task RunCompileFromCachedAsync(this string template, T model, string cachedFileName = default, Action builderAction = null) where T : class, new() { return new ViewEnginePart().SetTemplate(template).SetTemplateModel(model).SetTemplateCachedFileName(cachedFileName).SetTemplateOptionsBuilder(builderAction).RunCompileFromCachedAsync(); } } }