diff --git a/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll b/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll
index 7442ac42dd..dcbd402efd 100644
Binary files a/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll and b/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll differ
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/AmbientUnitOfWork.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/AmbientUnitOfWork.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/AmbientUnitOfWork.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/AmbientUnitOfWork.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/ChildUnitOfWork.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/ChildUnitOfWork.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/ChildUnitOfWork.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/ChildUnitOfWork.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/IAmbientUnitOfWork.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/IAmbientUnitOfWork.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/IAmbientUnitOfWork.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/IAmbientUnitOfWork.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/IDatabaseApi.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/IDatabaseApi.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/IDatabaseApi.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/IDatabaseApi.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/IDatabaseApiContainer.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/IDatabaseApiContainer.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/IDatabaseApiContainer.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/IDatabaseApiContainer.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/ISupportsRollback.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/ISupportsRollback.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/ISupportsRollback.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/ISupportsRollback.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/ISupportsSavingChanges.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/ISupportsSavingChanges.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/ISupportsSavingChanges.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/ISupportsSavingChanges.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/ITransactionApi.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/ITransactionApi.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/ITransactionApi.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/ITransactionApi.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/ITransactionApiContainer.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/ITransactionApiContainer.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/ITransactionApiContainer.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/ITransactionApiContainer.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/IUnitOfWork.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWork.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/IUnitOfWork.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWork.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/IUnitOfWorkAccessor.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWorkAccessor.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/IUnitOfWorkAccessor.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWorkAccessor.cs
diff --git a/src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWorkEnabled.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWorkEnabled.cs
new file mode 100644
index 0000000000..498ca43c67
--- /dev/null
+++ b/src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWorkEnabled.cs
@@ -0,0 +1,6 @@
+namespace Volo.Abp.Uow
+{
+ public interface IUnitOfWorkEnabled
+ {
+ }
+}
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/IUnitOfWorkManager.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWorkManager.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/IUnitOfWorkManager.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWorkManager.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/IUnitOfWorkOptions.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWorkOptions.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/IUnitOfWorkOptions.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/IUnitOfWorkOptions.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWork.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWork.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWork.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWork.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkAttribute.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkAttribute.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkAttribute.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkAttribute.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkDefaultOptions.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkDefaultOptions.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkDefaultOptions.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkDefaultOptions.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkEventArgs.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkEventArgs.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkEventArgs.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkEventArgs.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkExtensions.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkExtensions.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkExtensions.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkExtensions.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkFailedEventArgs.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkFailedEventArgs.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkFailedEventArgs.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkFailedEventArgs.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkHelper.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkHelper.cs
similarity index 83%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkHelper.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkHelper.cs
index 3d43dbb88e..bf6213394d 100644
--- a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkHelper.cs
+++ b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkHelper.cs
@@ -1,8 +1,6 @@
using System.Linq;
using System.Reflection;
using JetBrains.Annotations;
-using Volo.Abp.Application.Services;
-using Volo.Abp.Domain.Repositories;
namespace Volo.Abp.Uow
{
@@ -17,8 +15,7 @@ namespace Volo.Abp.Uow
}
//Conventional classes
- if (typeof(IApplicationService).GetTypeInfo().IsAssignableFrom(implementationType) ||
- typeof(IRepository).GetTypeInfo().IsAssignableFrom(implementationType))
+ if (typeof(IUnitOfWorkEnabled).GetTypeInfo().IsAssignableFrom(implementationType))
{
return true;
}
@@ -48,9 +45,8 @@ namespace Volo.Abp.Uow
return !unitOfWorkAttribute.IsDisabled;
}
- //Conventional classes //TODO: Make this extendible to add new conventions!
- if (typeof(IApplicationService).GetTypeInfo().IsAssignableFrom(methodInfo.DeclaringType) ||
- typeof(IRepository).GetTypeInfo().IsAssignableFrom(methodInfo.DeclaringType))
+ //Conventional classes
+ if (typeof(IUnitOfWorkEnabled).GetTypeInfo().IsAssignableFrom(methodInfo.DeclaringType))
{
unitOfWorkAttribute = null;
return true;
@@ -77,8 +73,7 @@ namespace Volo.Abp.Uow
return null;
}
-
-
+
private static bool AnyMethodHasUnitOfWorkAttribute(TypeInfo implementationType)
{
return implementationType
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkInterceptor.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkInterceptor.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkInterceptor.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkInterceptor.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkInterceptorRegistrar.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkManager.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkManager.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkManager.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkManager.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkManagerExtensions.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkManagerExtensions.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkManagerExtensions.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkManagerExtensions.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkOptions.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkOptions.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkOptions.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkOptions.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkTransactionBehavior.cs b/src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkTransactionBehavior.cs
similarity index 100%
rename from src/Volo.Abp.Ddd/Volo/Abp/Uow/UnitOfWorkTransactionBehavior.cs
rename to src/Volo.Abp.Data/Volo/Abp/Uow/UnitOfWorkTransactionBehavior.cs
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Application/Services/IApplicationService.cs b/src/Volo.Abp.Ddd/Volo/Abp/Application/Services/IApplicationService.cs
index 6abfeed78e..7579d89157 100644
--- a/src/Volo.Abp.Ddd/Volo/Abp/Application/Services/IApplicationService.cs
+++ b/src/Volo.Abp.Ddd/Volo/Abp/Application/Services/IApplicationService.cs
@@ -1,11 +1,12 @@
using Volo.Abp.DependencyInjection;
+using Volo.Abp.Uow;
namespace Volo.Abp.Application.Services
{
///
/// This interface must be implemented by all application services to register and identify them by convention.
///
- public interface IApplicationService : ITransientDependency, IRemoteService
+ public interface IApplicationService : ITransientDependency, IRemoteService, IUnitOfWorkEnabled
{
}
diff --git a/src/Volo.Abp.Ddd/Volo/Abp/Domain/Repositories/IRepository.cs b/src/Volo.Abp.Ddd/Volo/Abp/Domain/Repositories/IRepository.cs
index e927334b26..72151436c4 100644
--- a/src/Volo.Abp.Ddd/Volo/Abp/Domain/Repositories/IRepository.cs
+++ b/src/Volo.Abp.Ddd/Volo/Abp/Domain/Repositories/IRepository.cs
@@ -6,13 +6,14 @@ using System.Threading.Tasks;
using JetBrains.Annotations;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities;
+using Volo.Abp.Uow;
namespace Volo.Abp.Domain.Repositories
{
///
/// Just to mark a class as repository.
///
- public interface IRepository : ITransientDependency
+ public interface IRepository : ITransientDependency, IUnitOfWorkEnabled
{
}