From 0ecc1ee1dc2ef0881ccf2309a5c3599d526a1fa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 15 Dec 2017 14:35:47 +0300 Subject: [PATCH] Added ICancellationTokenProvider. Moved Abp project to latest c# language features. --- .../EntityFrameworkCore/EfCoreRepository.cs | 23 ++++++++++--------- .../Generic/AbpDictionaryExtensions.cs | 8 +++---- .../Reflection/AbpMemberInfoExtensions.cs | 2 +- src/Volo.Abp/Volo.Abp.csproj | 1 + src/Volo.Abp/Volo.Abp.csproj.DotSettings | 2 ++ src/Volo.Abp/Volo/Abp/AbpKernelModule.cs | 2 ++ .../Volo/Abp/Domain/Entities/Entity.cs | 2 +- .../Repositories/IQueryableRepository.cs | 2 +- .../Abp/Domain/Repositories/IRepository.cs | 16 ++++++------- .../Repositories/QueryableRepositoryBase.cs | 2 +- .../Abp/Domain/Repositories/RepositoryBase.cs | 22 ++++++++++++------ .../Repositories/RepositoryExtensions.cs | 4 ++-- .../Abp/ObjectMapping/DefaultObjectMapper.cs | 4 ++-- .../Volo/Abp/Reflection/ReflectionHelper.cs | 4 ++-- src/Volo.Abp/Volo/Abp/Session/CurrentUser.cs | 2 +- .../CancellationTokenProviderExtensions.cs | 12 ++++++++++ .../Threading/ICancellationTokenProvider.cs | 9 ++++++++ .../NullCancellationTokenProvider.cs | 16 +++++++++++++ src/Volo.Abp/Volo/Abp/Uow/ChildUnitOfWork.cs | 6 ++--- .../Volo/Abp/Uow/ISupportsSavingChanges.cs | 2 +- src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs | 6 ++--- src/Volo.Abp/Volo/Abp/Uow/UnitOfWork.cs | 6 ++--- 22 files changed, 102 insertions(+), 51 deletions(-) create mode 100644 src/Volo.Abp/Volo.Abp.csproj.DotSettings create mode 100644 src/Volo.Abp/Volo/Abp/Threading/CancellationTokenProviderExtensions.cs create mode 100644 src/Volo.Abp/Volo/Abp/Threading/ICancellationTokenProvider.cs create mode 100644 src/Volo.Abp/Volo/Abp/Threading/NullCancellationTokenProvider.cs diff --git a/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs b/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs index 2b41e3874b..3954cb55a4 100644 --- a/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs +++ b/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Entities; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.Threading; namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore { @@ -45,14 +46,14 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore return DbSet.AsQueryable(); } - public override Task> GetListAsync(CancellationToken cancellationToken = new CancellationToken()) + public override Task> GetListAsync(CancellationToken cancellationToken = default(CancellationToken)) { - return DbSet.ToListAsync(cancellationToken); + return DbSet.ToListAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } public override async Task GetAsync(TPrimaryKey id, CancellationToken cancellationToken = default(CancellationToken)) { - var entity = await FindAsync(id, cancellationToken); + var entity = await FindAsync(id, CancellationTokenProvider.FallbackToProvider(cancellationToken)); if (entity == null) { @@ -69,7 +70,7 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore public override Task FindAsync(TPrimaryKey id, CancellationToken cancellationToken = default(CancellationToken)) { - return DbSet.FindAsync(new object[] { id }, cancellationToken); + return DbSet.FindAsync(new object[] { id }, CancellationTokenProvider.FallbackToProvider(cancellationToken)); } public override TEntity Insert(TEntity entity, bool autoSave = false) @@ -90,7 +91,7 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore if (autoSave) { - await DbContext.SaveChangesAsync(cancellationToken); + await DbContext.SaveChangesAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } return savedEntity; @@ -109,7 +110,7 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore public override async Task DeleteAsync(Expression> predicate, CancellationToken cancellationToken = default(CancellationToken)) { - var entities = await GetQueryable().Where(predicate).ToListAsync(cancellationToken); + var entities = await GetQueryable().Where(predicate).ToListAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); foreach (var entity in entities) { DbSet.Remove(entity); @@ -118,25 +119,25 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore public override Task GetCountAsync(CancellationToken cancellationToken = default(CancellationToken)) { - return GetQueryable().LongCountAsync(cancellationToken); + return GetQueryable().LongCountAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } public virtual Task EnsureCollectionLoadedAsync( TEntity entity, Expression>> propertyExpression, - CancellationToken cancellationToken) + CancellationToken cancellationToken = default(CancellationToken)) where TProperty : class { - return DbContext.Entry(entity).Collection(propertyExpression).LoadAsync(cancellationToken); + return DbContext.Entry(entity).Collection(propertyExpression).LoadAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } public virtual Task EnsurePropertyLoadedAsync( TEntity entity, Expression> propertyExpression, - CancellationToken cancellationToken) + CancellationToken cancellationToken = default(CancellationToken)) where TProperty : class { - return DbContext.Entry(entity).Reference(propertyExpression).LoadAsync(cancellationToken); + return DbContext.Entry(entity).Reference(propertyExpression).LoadAsync(CancellationTokenProvider.FallbackToProvider(cancellationToken)); } } } diff --git a/src/Volo.Abp/System/Collections/Generic/AbpDictionaryExtensions.cs b/src/Volo.Abp/System/Collections/Generic/AbpDictionaryExtensions.cs index bac4b58217..149a4efa6b 100644 --- a/src/Volo.Abp/System/Collections/Generic/AbpDictionaryExtensions.cs +++ b/src/Volo.Abp/System/Collections/Generic/AbpDictionaryExtensions.cs @@ -22,7 +22,7 @@ namespace System.Collections.Generic return true; } - value = default(T); + value = default; return false; } @@ -37,7 +37,7 @@ namespace System.Collections.Generic public static TValue GetOrDefault(this Dictionary dictionary, TKey key) { TValue obj; - return dictionary.TryGetValue(key, out obj) ? obj : default(TValue); + return dictionary.TryGetValue(key, out obj) ? obj : default; } /// @@ -51,7 +51,7 @@ namespace System.Collections.Generic public static TValue GetOrDefault(this IDictionary dictionary, TKey key) { TValue obj; - return dictionary.TryGetValue(key, out obj) ? obj : default(TValue); + return dictionary.TryGetValue(key, out obj) ? obj : default; } /// @@ -65,7 +65,7 @@ namespace System.Collections.Generic public static TValue GetOrDefault(this IReadOnlyDictionary dictionary, TKey key) { TValue obj; - return dictionary.TryGetValue(key, out obj) ? obj : default(TValue); + return dictionary.TryGetValue(key, out obj) ? obj : default; } /// diff --git a/src/Volo.Abp/System/Reflection/AbpMemberInfoExtensions.cs b/src/Volo.Abp/System/Reflection/AbpMemberInfoExtensions.cs index 2c3c9d33fb..085a3341fe 100644 --- a/src/Volo.Abp/System/Reflection/AbpMemberInfoExtensions.cs +++ b/src/Volo.Abp/System/Reflection/AbpMemberInfoExtensions.cs @@ -28,7 +28,7 @@ namespace System.Reflection return (TAttribute)attrs[0]; } - return default(TAttribute); + return default; } diff --git a/src/Volo.Abp/Volo.Abp.csproj b/src/Volo.Abp/Volo.Abp.csproj index 5022b66a8f..fe0b650273 100644 --- a/src/Volo.Abp/Volo.Abp.csproj +++ b/src/Volo.Abp/Volo.Abp.csproj @@ -4,6 +4,7 @@ netstandard2.0 + latest Volo.Abp Volo.Abp $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/src/Volo.Abp/Volo.Abp.csproj.DotSettings b/src/Volo.Abp/Volo.Abp.csproj.DotSettings new file mode 100644 index 0000000000..58ad6c8854 --- /dev/null +++ b/src/Volo.Abp/Volo.Abp.csproj.DotSettings @@ -0,0 +1,2 @@ + + CSharp71 \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/AbpKernelModule.cs b/src/Volo.Abp/Volo/Abp/AbpKernelModule.cs index 79a5ecfa7f..271ec364fa 100644 --- a/src/Volo.Abp/Volo/Abp/AbpKernelModule.cs +++ b/src/Volo.Abp/Volo/Abp/AbpKernelModule.cs @@ -5,6 +5,7 @@ using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.ObjectMapping; using Volo.Abp.Reflection; +using Volo.Abp.Threading; using Volo.Abp.Uow; using Volo.Abp.Validation; @@ -40,6 +41,7 @@ namespace Volo.Abp services.AddAssemblyOf(); + services.AddSingleton(NullCancellationTokenProvider.Instance); services.AddSingleton(NullRequestedApiVersion.Instance); services.AddSingleton(typeof(IDataFilter<>), typeof(DataFilter<>)); diff --git a/src/Volo.Abp/Volo/Abp/Domain/Entities/Entity.cs b/src/Volo.Abp/Volo/Abp/Domain/Entities/Entity.cs index 5b088e6452..2565a00b50 100644 --- a/src/Volo.Abp/Volo/Abp/Domain/Entities/Entity.cs +++ b/src/Volo.Abp/Volo/Abp/Domain/Entities/Entity.cs @@ -26,7 +26,7 @@ namespace Volo.Abp.Domain.Entities /// public virtual bool IsTransient() { - if (EqualityComparer.Default.Equals(Id, default(TPrimaryKey))) + if (EqualityComparer.Default.Equals(Id, default)) { return true; } diff --git a/src/Volo.Abp/Volo/Abp/Domain/Repositories/IQueryableRepository.cs b/src/Volo.Abp/Volo/Abp/Domain/Repositories/IQueryableRepository.cs index 48217e2773..53e65ce336 100644 --- a/src/Volo.Abp/Volo/Abp/Domain/Repositories/IQueryableRepository.cs +++ b/src/Volo.Abp/Volo/Abp/Domain/Repositories/IQueryableRepository.cs @@ -34,6 +34,6 @@ namespace Volo.Abp.Domain.Repositories /// /// A to observe while waiting for the task to complete. /// A condition to filter entities - Task DeleteAsync([NotNull] Expression> predicate, CancellationToken cancellationToken = default(CancellationToken)); + Task DeleteAsync([NotNull] Expression> predicate, CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Domain/Repositories/IRepository.cs b/src/Volo.Abp/Volo/Abp/Domain/Repositories/IRepository.cs index c432d66bb5..fd4f41b03f 100644 --- a/src/Volo.Abp/Volo/Abp/Domain/Repositories/IRepository.cs +++ b/src/Volo.Abp/Volo/Abp/Domain/Repositories/IRepository.cs @@ -33,7 +33,7 @@ namespace Volo.Abp.Domain.Repositories /// /// A to observe while waiting for the task to complete. /// List of entities - Task> GetListAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task> GetListAsync(CancellationToken cancellationToken = default); /// /// Gets an entity with given primary key. @@ -52,7 +52,7 @@ namespace Volo.Abp.Domain.Repositories /// A to observe while waiting for the task to complete. /// Entity [NotNull] - Task GetAsync(TPrimaryKey id, CancellationToken cancellationToken = default(CancellationToken)); + Task GetAsync(TPrimaryKey id, CancellationToken cancellationToken = default); /// /// Gets an entity with given primary key or null if not found. @@ -68,7 +68,7 @@ namespace Volo.Abp.Domain.Repositories /// Primary key of the entity to get /// A to observe while waiting for the task to complete. /// Entity or null - Task FindAsync(TPrimaryKey id, CancellationToken cancellationToken = default(CancellationToken)); + Task FindAsync(TPrimaryKey id, CancellationToken cancellationToken = default); /// /// Inserts a new entity. @@ -91,7 +91,7 @@ namespace Volo.Abp.Domain.Repositories /// A to observe while waiting for the task to complete. /// Inserted entity [NotNull] - Task InsertAsync([NotNull] TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken)); + Task InsertAsync([NotNull] TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default); /// /// Updates an existing entity. @@ -106,7 +106,7 @@ namespace Volo.Abp.Domain.Repositories /// A to observe while waiting for the task to complete. /// Entity [NotNull] - Task UpdateAsync([NotNull] TEntity entity, CancellationToken cancellationToken = default(CancellationToken)); + Task UpdateAsync([NotNull] TEntity entity, CancellationToken cancellationToken = default); /// /// Deletes an entity. @@ -119,7 +119,7 @@ namespace Volo.Abp.Domain.Repositories /// /// A to observe while waiting for the task to complete. /// Entity to be deleted - Task DeleteAsync([NotNull] TEntity entity, CancellationToken cancellationToken = default(CancellationToken)); + Task DeleteAsync([NotNull] TEntity entity, CancellationToken cancellationToken = default); /// /// Deletes an entity by primary key. @@ -132,7 +132,7 @@ namespace Volo.Abp.Domain.Repositories /// /// A to observe while waiting for the task to complete. /// Primary key of the entity - Task DeleteAsync(TPrimaryKey id, CancellationToken cancellationToken = default(CancellationToken)); + Task DeleteAsync(TPrimaryKey id, CancellationToken cancellationToken = default); /// /// Get list of all entities without any filtering. @@ -145,6 +145,6 @@ namespace Volo.Abp.Domain.Repositories /// /// A to observe while waiting for the task to complete. /// List of entities - Task GetCountAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task GetCountAsync(CancellationToken cancellationToken = default); } } diff --git a/src/Volo.Abp/Volo/Abp/Domain/Repositories/QueryableRepositoryBase.cs b/src/Volo.Abp/Volo/Abp/Domain/Repositories/QueryableRepositoryBase.cs index ad917d0684..d75d4b8f13 100644 --- a/src/Volo.Abp/Volo/Abp/Domain/Repositories/QueryableRepositoryBase.cs +++ b/src/Volo.Abp/Volo/Abp/Domain/Repositories/QueryableRepositoryBase.cs @@ -60,7 +60,7 @@ namespace Volo.Abp.Domain.Repositories } } - public virtual Task DeleteAsync(Expression> predicate, CancellationToken cancellationToken = default(CancellationToken)) + public virtual Task DeleteAsync(Expression> predicate, CancellationToken cancellationToken = default) { Delete(predicate); return Task.CompletedTask; diff --git a/src/Volo.Abp/Volo/Abp/Domain/Repositories/RepositoryBase.cs b/src/Volo.Abp/Volo/Abp/Domain/Repositories/RepositoryBase.cs index 370ae8812e..16afec4f8b 100644 --- a/src/Volo.Abp/Volo/Abp/Domain/Repositories/RepositoryBase.cs +++ b/src/Volo.Abp/Volo/Abp/Domain/Repositories/RepositoryBase.cs @@ -4,6 +4,7 @@ using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Entities; +using Volo.Abp.Threading; namespace Volo.Abp.Domain.Repositories { @@ -16,6 +17,13 @@ namespace Volo.Abp.Domain.Repositories public abstract class RepositoryBase : IRepository where TEntity : class, IEntity { + public ICancellationTokenProvider CancellationTokenProvider { get; set; } + + protected RepositoryBase() + { + CancellationTokenProvider = NullCancellationTokenProvider.Instance; + } + public abstract List GetList(); public virtual Task> GetListAsync(CancellationToken cancellationToken = new CancellationToken()) @@ -35,35 +43,35 @@ namespace Volo.Abp.Domain.Repositories return entity; } - public virtual Task GetAsync(TPrimaryKey id, CancellationToken cancellationToken = default(CancellationToken)) + public virtual Task GetAsync(TPrimaryKey id, CancellationToken cancellationToken = default) { return Task.FromResult(Get(id)); } public abstract TEntity Find(TPrimaryKey id); - public virtual Task FindAsync(TPrimaryKey id, CancellationToken cancellationToken = default(CancellationToken)) + public virtual Task FindAsync(TPrimaryKey id, CancellationToken cancellationToken = default) { return Task.FromResult(Find(id)); } public abstract TEntity Insert(TEntity entity, bool autoSave = false); - public virtual Task InsertAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default(CancellationToken)) + public virtual Task InsertAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) { return Task.FromResult(Insert(entity, autoSave)); } public abstract TEntity Update(TEntity entity); - public virtual Task UpdateAsync(TEntity entity, CancellationToken cancellationToken = default(CancellationToken)) + public virtual Task UpdateAsync(TEntity entity, CancellationToken cancellationToken = default) { return Task.FromResult(Update(entity)); } public abstract void Delete(TEntity entity); - public virtual Task DeleteAsync(TEntity entity, CancellationToken cancellationToken = default(CancellationToken)) + public virtual Task DeleteAsync(TEntity entity, CancellationToken cancellationToken = default) { Delete(entity); return Task.CompletedTask; @@ -80,7 +88,7 @@ namespace Volo.Abp.Domain.Repositories Delete(entity); } - public virtual Task DeleteAsync(TPrimaryKey id, CancellationToken cancellationToken = default(CancellationToken)) + public virtual Task DeleteAsync(TPrimaryKey id, CancellationToken cancellationToken = default) { Delete(id); return Task.CompletedTask; @@ -88,7 +96,7 @@ namespace Volo.Abp.Domain.Repositories public abstract long GetCount(); - public virtual Task GetCountAsync(CancellationToken cancellationToken = default(CancellationToken)) + public virtual Task GetCountAsync(CancellationToken cancellationToken = default) { return Task.FromResult(GetCount()); } diff --git a/src/Volo.Abp/Volo/Abp/Domain/Repositories/RepositoryExtensions.cs b/src/Volo.Abp/Volo/Abp/Domain/Repositories/RepositoryExtensions.cs index 80a8acb0a0..3c9a503780 100644 --- a/src/Volo.Abp/Volo/Abp/Domain/Repositories/RepositoryExtensions.cs +++ b/src/Volo.Abp/Volo/Abp/Domain/Repositories/RepositoryExtensions.cs @@ -15,7 +15,7 @@ namespace Volo.Abp.Domain.Repositories this IRepository repository, TEntity entity, Expression>> propertyExpression, - CancellationToken cancellationToken = default(CancellationToken) + CancellationToken cancellationToken = default ) where TEntity : class, IEntity where TProperty : class @@ -42,7 +42,7 @@ namespace Volo.Abp.Domain.Repositories this IRepository repository, TEntity entity, Expression> propertyExpression, - CancellationToken cancellationToken = default(CancellationToken) + CancellationToken cancellationToken = default ) where TEntity : class, IEntity where TProperty : class diff --git a/src/Volo.Abp/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs b/src/Volo.Abp/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs index 01f1c1367b..177619b34d 100644 --- a/src/Volo.Abp/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs +++ b/src/Volo.Abp/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs @@ -19,7 +19,7 @@ namespace Volo.Abp.ObjectMapping { if (source == null) { - return default(TDestination); + return default; } //Check if a specific mapper is registered @@ -39,7 +39,7 @@ namespace Volo.Abp.ObjectMapping { if (source == null) { - return default(TDestination); + return default; } //Check if a specific mapper is registered diff --git a/src/Volo.Abp/Volo/Abp/Reflection/ReflectionHelper.cs b/src/Volo.Abp/Volo/Abp/Reflection/ReflectionHelper.cs index 1cbfba952d..4a90159789 100644 --- a/src/Volo.Abp/Volo/Abp/Reflection/ReflectionHelper.cs +++ b/src/Volo.Abp/Volo/Abp/Reflection/ReflectionHelper.cs @@ -80,7 +80,7 @@ namespace Volo.Abp.Reflection /// MemberInfo /// Default value (null as default) /// Inherit attribute from base classes - public static TAttribute GetSingleAttributeOrDefault(MemberInfo memberInfo, TAttribute defaultValue = default(TAttribute), bool inherit = true) + public static TAttribute GetSingleAttributeOrDefault(MemberInfo memberInfo, TAttribute defaultValue = default, bool inherit = true) where TAttribute : Attribute { //Get attribute on the member @@ -100,7 +100,7 @@ namespace Volo.Abp.Reflection /// MemberInfo /// Default value (null as default) /// Inherit attribute from base classes - public static TAttribute GetSingleAttributeOfMemberOrDeclaringTypeOrDefault(MemberInfo memberInfo, TAttribute defaultValue = default(TAttribute), bool inherit = true) + public static TAttribute GetSingleAttributeOfMemberOrDeclaringTypeOrDefault(MemberInfo memberInfo, TAttribute defaultValue = default, bool inherit = true) where TAttribute : class { return memberInfo.GetCustomAttributes(true).OfType().FirstOrDefault() diff --git a/src/Volo.Abp/Volo/Abp/Session/CurrentUser.cs b/src/Volo.Abp/Volo/Abp/Session/CurrentUser.cs index 6652a8436a..e6f62ce870 100644 --- a/src/Volo.Abp/Volo/Abp/Session/CurrentUser.cs +++ b/src/Volo.Abp/Volo/Abp/Session/CurrentUser.cs @@ -46,7 +46,7 @@ namespace Volo.Abp.Session var value = FindClaimValue(claimType); if (value == null) { - return default(T); + return default; } return value.To(); diff --git a/src/Volo.Abp/Volo/Abp/Threading/CancellationTokenProviderExtensions.cs b/src/Volo.Abp/Volo/Abp/Threading/CancellationTokenProviderExtensions.cs new file mode 100644 index 0000000000..0f84c725c5 --- /dev/null +++ b/src/Volo.Abp/Volo/Abp/Threading/CancellationTokenProviderExtensions.cs @@ -0,0 +1,12 @@ +using System.Threading; + +namespace Volo.Abp.Threading +{ + public static class CancellationTokenProviderExtensions + { + public static CancellationToken FallbackToProvider(this ICancellationTokenProvider provider, CancellationToken prefferedValue) + { + return prefferedValue == default ? provider.Token : prefferedValue; + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Threading/ICancellationTokenProvider.cs b/src/Volo.Abp/Volo/Abp/Threading/ICancellationTokenProvider.cs new file mode 100644 index 0000000000..24e303adde --- /dev/null +++ b/src/Volo.Abp/Volo/Abp/Threading/ICancellationTokenProvider.cs @@ -0,0 +1,9 @@ +using System.Threading; + +namespace Volo.Abp.Threading +{ + public interface ICancellationTokenProvider + { + CancellationToken Token { get; } + } +} diff --git a/src/Volo.Abp/Volo/Abp/Threading/NullCancellationTokenProvider.cs b/src/Volo.Abp/Volo/Abp/Threading/NullCancellationTokenProvider.cs new file mode 100644 index 0000000000..1d02ecb1e9 --- /dev/null +++ b/src/Volo.Abp/Volo/Abp/Threading/NullCancellationTokenProvider.cs @@ -0,0 +1,16 @@ +using System.Threading; + +namespace Volo.Abp.Threading +{ + public class NullCancellationTokenProvider : ICancellationTokenProvider + { + public static NullCancellationTokenProvider Instance { get; } = new NullCancellationTokenProvider(); + + public CancellationToken Token { get; } = default; + + private NullCancellationTokenProvider() + { + + } + } +} \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Uow/ChildUnitOfWork.cs b/src/Volo.Abp/Volo/Abp/Uow/ChildUnitOfWork.cs index 4fc789c6ae..cd19361c88 100644 --- a/src/Volo.Abp/Volo/Abp/Uow/ChildUnitOfWork.cs +++ b/src/Volo.Abp/Volo/Abp/Uow/ChildUnitOfWork.cs @@ -56,7 +56,7 @@ namespace Volo.Abp.Uow _parent.SaveChanges(); } - public Task SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken)) + public Task SaveChangesAsync(CancellationToken cancellationToken = default) { return _parent.SaveChangesAsync(cancellationToken); } @@ -66,7 +66,7 @@ namespace Volo.Abp.Uow } - public Task CompleteAsync(CancellationToken cancellationToken = default(CancellationToken)) + public Task CompleteAsync(CancellationToken cancellationToken = default) { return Task.CompletedTask; } @@ -76,7 +76,7 @@ namespace Volo.Abp.Uow _parent.Rollback(); } - public Task RollbackAsync(CancellationToken cancellationToken = default(CancellationToken)) + public Task RollbackAsync(CancellationToken cancellationToken = default) { return _parent.RollbackAsync(cancellationToken); } diff --git a/src/Volo.Abp/Volo/Abp/Uow/ISupportsSavingChanges.cs b/src/Volo.Abp/Volo/Abp/Uow/ISupportsSavingChanges.cs index ee775c1560..4665f2a625 100644 --- a/src/Volo.Abp/Volo/Abp/Uow/ISupportsSavingChanges.cs +++ b/src/Volo.Abp/Volo/Abp/Uow/ISupportsSavingChanges.cs @@ -7,6 +7,6 @@ namespace Volo.Abp.Uow { void SaveChanges(); - Task SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task SaveChangesAsync(CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs b/src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs index 79089cd8fc..4b21a51fca 100644 --- a/src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs +++ b/src/Volo.Abp/Volo/Abp/Uow/IUnitOfWork.cs @@ -31,14 +31,14 @@ namespace Volo.Abp.Uow void SaveChanges(); - Task SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task SaveChangesAsync(CancellationToken cancellationToken = default); void Complete(); - Task CompleteAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task CompleteAsync(CancellationToken cancellationToken = default); void Rollback(); - Task RollbackAsync(CancellationToken cancellationToken = default(CancellationToken)); + Task RollbackAsync(CancellationToken cancellationToken = default); } } diff --git a/src/Volo.Abp/Volo/Abp/Uow/UnitOfWork.cs b/src/Volo.Abp/Volo/Abp/Uow/UnitOfWork.cs index 353ec77911..b0e7f0b739 100644 --- a/src/Volo.Abp/Volo/Abp/Uow/UnitOfWork.cs +++ b/src/Volo.Abp/Volo/Abp/Uow/UnitOfWork.cs @@ -77,7 +77,7 @@ namespace Volo.Abp.Uow } } - public virtual async Task SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken)) + public virtual async Task SaveChangesAsync(CancellationToken cancellationToken = default) { foreach (var databaseApi in _databaseApis.Values) { @@ -110,7 +110,7 @@ namespace Volo.Abp.Uow } } - public virtual async Task CompleteAsync(CancellationToken cancellationToken = default(CancellationToken)) + public virtual async Task CompleteAsync(CancellationToken cancellationToken = default) { if (_isRolledback) { @@ -144,7 +144,7 @@ namespace Volo.Abp.Uow RollbackAll(); } - public virtual async Task RollbackAsync(CancellationToken cancellationToken = default(CancellationToken)) + public virtual async Task RollbackAsync(CancellationToken cancellationToken = default) { if (_isRolledback) {