Browse Source

Enable nullable annotations for Volo.Abp.TextTemplateing.* projects

pull/17561/head
liangshiwei 3 years ago
parent
commit
5a78c1bde8
  1. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj
  2. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/AbpRazorTemplateCSharpCompiler.cs
  3. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/DefaultAbpRazorProjectEngineFactory.cs
  4. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/EmptyProjectFileSystem.cs
  5. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IAbpRazorProjectEngineFactory.cs
  6. 12
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IRazorTemplatePage.cs
  7. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/NotFoundProjectItem.cs
  8. 20
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplatePageBase.cs
  9. 26
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs
  10. 2
      framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj
  11. 2
      framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateLocalizer.cs
  12. 16
      framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateRenderingEngine.cs
  13. 2
      framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj

2
framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<RootNamespace />
</PropertyGroup>

2
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/AbpRazorTemplateCSharpCompiler.cs

@ -40,7 +40,7 @@ public class AbpRazorTemplateCSharpCompiler : ISingletonDependency
.Select(x => MetadataReference.CreateFromFile(x.Location))
.ToImmutableList();
public virtual Stream CreateAssembly(string code, string assemblyName, List<MetadataReference> references = null, CSharpCompilationOptions options = null)
public virtual Stream CreateAssembly(string code, string assemblyName, List<MetadataReference>? references = null, CSharpCompilationOptions? options = null)
{
var defaultReferences = DefaultReferences.Concat(Options.References);
try

2
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/DefaultAbpRazorProjectEngineFactory.cs

@ -7,7 +7,7 @@ namespace Volo.Abp.TextTemplating.Razor;
public class DefaultAbpRazorProjectEngineFactory : IAbpRazorProjectEngineFactory, ITransientDependency
{
public virtual async Task<RazorProjectEngine> CreateAsync(Action<RazorProjectEngineBuilder> configure = null)
public virtual async Task<RazorProjectEngine> CreateAsync(Action<RazorProjectEngineBuilder>? configure = null)
{
return RazorProjectEngine.Create(await CreateRazorConfigurationAsync(), EmptyProjectFileSystem.Empty, configure);
}

2
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/EmptyProjectFileSystem.cs

@ -21,7 +21,7 @@ internal class EmptyProjectFileSystem : RazorProjectFileSystem
return GetItem(path, fileKind: null);
}
public override RazorProjectItem GetItem(string path, string fileKind)
public override RazorProjectItem GetItem(string path, string? fileKind)
{
NormalizeAndEnsureValidPath(path);
return new NotFoundProjectItem(string.Empty, path, fileKind);

2
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IAbpRazorProjectEngineFactory.cs

@ -6,5 +6,5 @@ namespace Volo.Abp.TextTemplating.Razor;
public interface IAbpRazorProjectEngineFactory
{
Task<RazorProjectEngine> CreateAsync(Action<RazorProjectEngineBuilder> configure = null);
Task<RazorProjectEngine> CreateAsync(Action<RazorProjectEngineBuilder>? configure = null);
}

12
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IRazorTemplatePage.cs

@ -8,24 +8,24 @@ namespace Volo.Abp.TextTemplating.Razor;
public interface IRazorTemplatePage<TModel> : IRazorTemplatePage
{
TModel Model { get; set; }
TModel? Model { get; set; }
}
public interface IRazorTemplatePage
{
IServiceProvider ServiceProvider { get; set; }
IStringLocalizer Localizer { get; set; }
IStringLocalizer? Localizer { get; set; }
HtmlEncoder HtmlEncoder { get; set; }
HtmlEncoder? HtmlEncoder { get; set; }
JavaScriptEncoder JavaScriptEncoder { get; set; }
JavaScriptEncoder? JavaScriptEncoder { get; set; }
UrlEncoder UrlEncoder { get; set; }
UrlEncoder? UrlEncoder { get; set; }
Dictionary<string, object> GlobalContext { get; set; }
string Body { get; set; }
string? Body { get; set; }
Task ExecuteAsync();

2
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/NotFoundProjectItem.cs

@ -6,7 +6,7 @@ namespace Volo.Abp.TextTemplating.Razor;
internal class NotFoundProjectItem : RazorProjectItem
{
public NotFoundProjectItem(string basePath, string path, string fileKind)
public NotFoundProjectItem(string basePath, string path, string? fileKind)
{
BasePath = basePath;
FilePath = path;

20
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplatePageBase.cs

@ -9,30 +9,30 @@ namespace Volo.Abp.TextTemplating.Razor;
public abstract class RazorTemplatePageBase<TModel> : RazorTemplatePageBase, IRazorTemplatePage<TModel>
{
public TModel Model { get; set; }
public TModel? Model { get; set; }
}
public abstract class RazorTemplatePageBase : IRazorTemplatePage
{
public Dictionary<string, object> GlobalContext { get; set; }
public Dictionary<string, object> GlobalContext { get; set; } = default!;
public IServiceProvider ServiceProvider { get; set; }
public IServiceProvider ServiceProvider { get; set; } = default!;
public IStringLocalizer Localizer { get; set; }
public IStringLocalizer? Localizer { get; set; }
public HtmlEncoder HtmlEncoder { get; set; }
public HtmlEncoder? HtmlEncoder { get; set; }
public JavaScriptEncoder JavaScriptEncoder { get; set; }
public JavaScriptEncoder? JavaScriptEncoder { get; set; }
public UrlEncoder UrlEncoder { get; set; }
public UrlEncoder? UrlEncoder { get; set; }
public string Body { get; set; }
public string? Body { get; set; }
private readonly StringBuilder _stringBuilder = new StringBuilder();
private AttributeInfo _attributeInfo;
public virtual void WriteLiteral(string literal = null)
public virtual void WriteLiteral(string? literal = null)
{
if (!literal.IsNullOrEmpty())
{
@ -40,7 +40,7 @@ public abstract class RazorTemplatePageBase : IRazorTemplatePage
}
}
public virtual void Write(object value = null)
public virtual void Write(object? value = null)
{
if (value is null)
{

26
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs

@ -34,9 +34,9 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi
public override async Task<string> RenderAsync(
[NotNull] string templateName,
[CanBeNull] object model = null,
[CanBeNull] string cultureName = null,
[CanBeNull] Dictionary<string, object> globalContext = null)
object? model = null,
string? cultureName = null,
Dictionary<string, object>? globalContext = null)
{
Check.NotNullOrWhiteSpace(templateName, nameof(templateName));
@ -70,9 +70,9 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi
protected virtual async Task<string> RenderInternalAsync(
string templateName,
string body,
string? body,
Dictionary<string, object> globalContext,
object model = null)
object? model = null)
{
var templateDefinition = await TemplateDefinitionManager.GetAsync(templateName);
@ -97,9 +97,9 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi
protected virtual async Task<string> RenderSingleTemplateAsync(
TemplateDefinition templateDefinition,
string body,
string? body,
Dictionary<string, object> globalContext,
object model = null)
object? model = null)
{
return await RenderTemplateContentWithRazorAsync(
templateDefinition,
@ -111,13 +111,13 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi
protected virtual async Task<string> RenderTemplateContentWithRazorAsync(
TemplateDefinition templateDefinition,
string body,
string? body,
Dictionary<string, object> globalContext,
object model = null)
object? model = null)
{
var assembly = await AbpCompiledViewProvider.GetAssemblyAsync(templateDefinition);
var templateType = assembly.GetType(AbpRazorTemplateConsts.TypeName);
var template = (IRazorTemplatePage)Activator.CreateInstance(templateType);
var templateType = assembly.GetType(AbpRazorTemplateConsts.TypeName)!;
var template = (IRazorTemplatePage)Activator.CreateInstance(templateType)!;
using (var scope = ServiceScopeFactory.CreateScope())
{
@ -147,11 +147,11 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi
}
}
private void SetModel<TModel>(IRazorTemplatePage razorTemplatePage, object model = null)
private void SetModel<TModel>(IRazorTemplatePage razorTemplatePage, object? model = null)
{
if (razorTemplatePage is IRazorTemplatePage<TModel> razorTemplatePageWithModel)
{
razorTemplatePageWithModel.Model = (TModel)model;
razorTemplatePageWithModel.Model = (TModel?)model;
}
}
}

2
framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<RootNamespace />
</PropertyGroup>

2
framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateLocalizer.cs

@ -44,7 +44,7 @@ public class ScribanTemplateLocalizer : IScriptCustomFunction
}
var args = arguments.Skip(1).Where(x => x != null && !x.ToString().IsNullOrWhiteSpace()).ToArray();
return args.Any() ? _localizer[name.ToString(), args] : _localizer[name.ToString()];
return args.Any() ? _localizer[name.ToString()!, args] : _localizer[name.ToString()!];
}
public int RequiredParameterCount => 1;

16
framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateRenderingEngine.cs

@ -24,9 +24,9 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran
public override async Task<string> RenderAsync(
[NotNull] string templateName,
[CanBeNull] object model = null,
[CanBeNull] string cultureName = null,
[CanBeNull] Dictionary<string, object> globalContext = null)
object? model = null,
string? cultureName = null,
Dictionary<string, object>? globalContext = null)
{
Check.NotNullOrWhiteSpace(templateName, nameof(templateName));
@ -59,7 +59,7 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran
protected virtual async Task<string> RenderInternalAsync(
string templateName,
Dictionary<string, object> globalContext,
object model = null)
object? model = null)
{
var templateDefinition = await TemplateDefinitionManager.GetAsync(templateName);
@ -84,13 +84,13 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran
protected virtual async Task<string> RenderSingleTemplateAsync(
TemplateDefinition templateDefinition,
Dictionary<string, object> globalContext,
object model = null)
object? model = null)
{
var rawTemplateContent = await GetContentOrNullAsync(templateDefinition);
return await RenderTemplateContentWithScribanAsync(
templateDefinition,
rawTemplateContent,
rawTemplateContent!,
globalContext,
model
);
@ -100,7 +100,7 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran
TemplateDefinition templateDefinition,
string templateContent,
Dictionary<string, object> globalContext,
object model = null)
object? model = null)
{
var context = CreateScribanTemplateContext(
templateDefinition,
@ -116,7 +116,7 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran
protected virtual TemplateContext CreateScribanTemplateContext(
TemplateDefinition templateDefinition,
Dictionary<string, object> globalContext,
object model = null)
object? model = null)
{
var context = new TemplateContext();

2
framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj

@ -5,6 +5,8 @@
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<RootNamespace />
</PropertyGroup>

Loading…
Cancel
Save