Browse Source

Enable nullable annotations for Volo.Abp.BlobStoring

pull/17120/head
liangshiwei 3 years ago
parent
commit
7ffbb7a014
  1. 2
      framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.csproj
  2. 20
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs
  3. 20
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerConfiguration.cs
  4. 2
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerExtensions.cs
  5. 2
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerNameAttribute.cs
  6. 6
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNaming.cs
  7. 12
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingService.cs
  8. 2
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs
  9. 2
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobContainer.cs

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

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BlobStoring</AssemblyName> <AssemblyName>Volo.Abp.BlobStoring</AssemblyName>
<PackageId>Volo.Abp.BlobStoring</PackageId> <PackageId>Volo.Abp.BlobStoring</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

20
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs

@ -61,7 +61,7 @@ public class BlobContainer<TContainer> : IBlobContainer<TContainer>
); );
} }
public Task<Stream> GetOrNullAsync( public Task<Stream?> GetOrNullAsync(
string name, string name,
CancellationToken cancellationToken = default) CancellationToken cancellationToken = default)
{ {
@ -118,9 +118,9 @@ public class BlobContainer : IBlobContainer
await Provider.SaveAsync( await Provider.SaveAsync(
new BlobProviderSaveArgs( new BlobProviderSaveArgs(
blobNormalizeNaming.ContainerName, blobNormalizeNaming.ContainerName!,
Configuration, Configuration,
blobNormalizeNaming.BlobName, blobNormalizeNaming.BlobName!,
stream, stream,
overrideExisting, overrideExisting,
CancellationTokenProvider.FallbackToProvider(cancellationToken) CancellationTokenProvider.FallbackToProvider(cancellationToken)
@ -140,9 +140,9 @@ public class BlobContainer : IBlobContainer
return await Provider.DeleteAsync( return await Provider.DeleteAsync(
new BlobProviderDeleteArgs( new BlobProviderDeleteArgs(
blobNormalizeNaming.ContainerName, blobNormalizeNaming.ContainerName!,
Configuration, Configuration,
blobNormalizeNaming.BlobName, blobNormalizeNaming.BlobName!,
CancellationTokenProvider.FallbackToProvider(cancellationToken) CancellationTokenProvider.FallbackToProvider(cancellationToken)
) )
); );
@ -160,9 +160,9 @@ public class BlobContainer : IBlobContainer
return await Provider.ExistsAsync( return await Provider.ExistsAsync(
new BlobProviderExistsArgs( new BlobProviderExistsArgs(
blobNormalizeNaming.ContainerName, blobNormalizeNaming.ContainerName!,
Configuration, Configuration,
blobNormalizeNaming.BlobName, blobNormalizeNaming.BlobName!,
CancellationTokenProvider.FallbackToProvider(cancellationToken) CancellationTokenProvider.FallbackToProvider(cancellationToken)
) )
); );
@ -185,7 +185,7 @@ public class BlobContainer : IBlobContainer
return stream; return stream;
} }
public virtual async Task<Stream> GetOrNullAsync( public virtual async Task<Stream?> GetOrNullAsync(
string name, string name,
CancellationToken cancellationToken = default) CancellationToken cancellationToken = default)
{ {
@ -196,9 +196,9 @@ public class BlobContainer : IBlobContainer
return await Provider.GetOrNullAsync( return await Provider.GetOrNullAsync(
new BlobProviderGetArgs( new BlobProviderGetArgs(
blobNormalizeNaming.ContainerName, blobNormalizeNaming.ContainerName!,
Configuration, Configuration,
blobNormalizeNaming.BlobName, blobNormalizeNaming.BlobName!,
CancellationTokenProvider.FallbackToProvider(cancellationToken) CancellationTokenProvider.FallbackToProvider(cancellationToken)
) )
); );

20
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerConfiguration.cs

@ -10,7 +10,7 @@ public class BlobContainerConfiguration
/// <summary> /// <summary>
/// The provider to be used to store BLOBs of this container. /// The provider to be used to store BLOBs of this container.
/// </summary> /// </summary>
public Type ProviderType { get; set; } public Type? ProviderType { get; set; }
/// <summary> /// <summary>
/// Indicates whether this container is multi-tenant or not. /// Indicates whether this container is multi-tenant or not.
@ -26,25 +26,23 @@ public class BlobContainerConfiguration
public ITypeList<IBlobNamingNormalizer> NamingNormalizers { get; } public ITypeList<IBlobNamingNormalizer> NamingNormalizers { get; }
[NotNull] private readonly Dictionary<string, object> _properties; [NotNull] private readonly Dictionary<string, object?> _properties;
[CanBeNull] private readonly BlobContainerConfiguration _fallbackConfiguration; private readonly BlobContainerConfiguration? _fallbackConfiguration;
public BlobContainerConfiguration(BlobContainerConfiguration fallbackConfiguration = null) public BlobContainerConfiguration(BlobContainerConfiguration? fallbackConfiguration = null)
{ {
NamingNormalizers = new TypeList<IBlobNamingNormalizer>(); NamingNormalizers = new TypeList<IBlobNamingNormalizer>();
_fallbackConfiguration = fallbackConfiguration; _fallbackConfiguration = fallbackConfiguration;
_properties = new Dictionary<string, object>(); _properties = new Dictionary<string, object?>();
} }
[CanBeNull] public T? GetConfigurationOrDefault<T>(string name, T? defaultValue = default)
public T GetConfigurationOrDefault<T>(string name, T defaultValue = default)
{ {
return (T)GetConfigurationOrNull(name, defaultValue); return (T?)GetConfigurationOrNull(name, defaultValue);
} }
[CanBeNull] public object? GetConfigurationOrNull(string name, object? defaultValue = null)
public object GetConfigurationOrNull(string name, object defaultValue = null)
{ {
return _properties.GetOrDefault(name) ?? return _properties.GetOrDefault(name) ??
_fallbackConfiguration?.GetConfigurationOrNull(name, defaultValue) ?? _fallbackConfiguration?.GetConfigurationOrNull(name, defaultValue) ??
@ -52,7 +50,7 @@ public class BlobContainerConfiguration
} }
[NotNull] [NotNull]
public BlobContainerConfiguration SetConfiguration([NotNull] string name, [CanBeNull] object value) public BlobContainerConfiguration SetConfiguration([NotNull] string name, object? value)
{ {
Check.NotNullOrWhiteSpace(name, nameof(name)); Check.NotNullOrWhiteSpace(name, nameof(name));
Check.NotNull(value, nameof(value)); Check.NotNull(value, nameof(value));

2
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerExtensions.cs

@ -37,7 +37,7 @@ public static class BlobContainerExtensions
} }
} }
public static async Task<byte[]> GetAllBytesOrNullAsync( public static async Task<byte[]?> GetAllBytesOrNullAsync(
this IBlobContainer container, this IBlobContainer container,
string name, string name,
CancellationToken cancellationToken = default) CancellationToken cancellationToken = default)

2
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainerNameAttribute.cs

@ -32,7 +32,7 @@ public class BlobContainerNameAttribute : Attribute
if (nameAttribute == null) if (nameAttribute == null)
{ {
return type.FullName; return type.FullName!;
} }
return nameAttribute.GetName(type); return nameAttribute.GetName(type);

6
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNaming.cs

@ -2,11 +2,11 @@
public class BlobNormalizeNaming public class BlobNormalizeNaming
{ {
public string ContainerName { get; } public string? ContainerName { get; }
public string BlobName { get; } public string? BlobName { get; }
public BlobNormalizeNaming(string containerName, string blobName) public BlobNormalizeNaming(string? containerName, string? blobName)
{ {
ContainerName = containerName; ContainerName = containerName;
BlobName = blobName; BlobName = blobName;

12
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobNormalizeNamingService.cs

@ -16,8 +16,8 @@ public class BlobNormalizeNamingService : IBlobNormalizeNamingService, ITransien
public BlobNormalizeNaming NormalizeNaming( public BlobNormalizeNaming NormalizeNaming(
BlobContainerConfiguration configuration, BlobContainerConfiguration configuration,
string containerName, string? containerName,
string blobName) string? blobName)
{ {
if (!configuration.NamingNormalizers.Any()) if (!configuration.NamingNormalizers.Any())
@ -33,8 +33,8 @@ public class BlobNormalizeNamingService : IBlobNormalizeNamingService, ITransien
.GetRequiredService(normalizerType) .GetRequiredService(normalizerType)
.As<IBlobNamingNormalizer>(); .As<IBlobNamingNormalizer>();
containerName = containerName.IsNullOrWhiteSpace() ? containerName : normalizer.NormalizeContainerName(containerName); containerName = containerName.IsNullOrWhiteSpace() ? containerName : normalizer.NormalizeContainerName(containerName!);
blobName = blobName.IsNullOrWhiteSpace() ? blobName : normalizer.NormalizeBlobName(blobName); blobName = blobName.IsNullOrWhiteSpace() ? blobName : normalizer.NormalizeBlobName(blobName!);
} }
return new BlobNormalizeNaming(containerName, blobName); return new BlobNormalizeNaming(containerName, blobName);
@ -48,7 +48,7 @@ public class BlobNormalizeNamingService : IBlobNormalizeNamingService, ITransien
return containerName; return containerName;
} }
return NormalizeNaming(configuration, containerName, null).ContainerName; return NormalizeNaming(configuration, containerName, null).ContainerName!;
} }
public string NormalizeBlobName(BlobContainerConfiguration configuration, string blobName) public string NormalizeBlobName(BlobContainerConfiguration configuration, string blobName)
@ -58,6 +58,6 @@ public class BlobNormalizeNamingService : IBlobNormalizeNamingService, ITransien
return blobName; return blobName;
} }
return NormalizeNaming(configuration, null, blobName).BlobName; return NormalizeNaming(configuration, null, blobName).BlobName!;
} }
} }

2
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs

@ -14,7 +14,7 @@ public abstract class BlobProviderBase : IBlobProvider
public abstract Task<Stream> GetOrNullAsync(BlobProviderGetArgs args); public abstract Task<Stream> GetOrNullAsync(BlobProviderGetArgs args);
protected virtual async Task<Stream> TryCopyToMemoryStreamAsync(Stream stream, CancellationToken cancellationToken = default) protected virtual async Task<Stream?> TryCopyToMemoryStreamAsync(Stream? stream, CancellationToken cancellationToken = default)
{ {
if (stream == null) if (stream == null)
{ {

2
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/IBlobContainer.cs

@ -78,7 +78,7 @@ public interface IBlobContainer
/// <returns> /// <returns>
/// A <see cref="Stream"/> to read the blob data. /// A <see cref="Stream"/> to read the blob data.
/// </returns> /// </returns>
Task<Stream> GetOrNullAsync( Task<Stream?> GetOrNullAsync(
string name, string name,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
); );

Loading…
Cancel
Save