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();
}
}
}