diff --git a/src/ModuleZeroSampleProject.Application/ModuleZeroSampleProject.Application.csproj b/src/ModuleZeroSampleProject.Application/ModuleZeroSampleProject.Application.csproj
index a98592f..81eab27 100644
--- a/src/ModuleZeroSampleProject.Application/ModuleZeroSampleProject.Application.csproj
+++ b/src/ModuleZeroSampleProject.Application/ModuleZeroSampleProject.Application.csproj
@@ -9,10 +9,11 @@
Properties
ModuleZeroSampleProject
ModuleZeroSampleProject.Application
- v4.5.1
+ v4.5.2
512
..\
true
+
true
@@ -32,20 +33,24 @@
4
-
- ..\packages\Abp.0.7.3.0\lib\net451\Abp.dll
+
+ ..\packages\Abp.0.10.1.0\lib\net452\Abp.dll
True
-
- ..\packages\Abp.AutoMapper.0.7.2.0\lib\net451\Abp.AutoMapper.dll
+
+ ..\packages\Abp.AutoMapper.0.10.1.0\lib\net452\Abp.AutoMapper.dll
True
-
- ..\packages\Abp.EntityFramework.0.7.2.0\lib\net451\Abp.EntityFramework.dll
+
+ ..\packages\Abp.EntityFramework.0.10.1.0\lib\net452\Abp.EntityFramework.dll
True
-
- ..\packages\Abp.Zero.0.7.3.0\lib\net451\Abp.Zero.dll
+
+ ..\packages\Abp.EntityFramework.Common.0.10.1.0\lib\net452\Abp.EntityFramework.Common.dll
+ True
+
+
+ ..\packages\Abp.Zero.0.10.1.0\lib\net452\Abp.Zero.dll
True
@@ -72,8 +77,8 @@
False
..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll
-
- ..\packages\EntityFramework.DynamicFilters.1.4.1\lib\net40\EntityFramework.DynamicFilters.dll
+
+ ..\packages\EntityFramework.DynamicFilters.1.4.11\lib\net40\EntityFramework.DynamicFilters.dll
True
@@ -84,8 +89,8 @@
False
..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll
-
- ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll
+
+ ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
@@ -101,16 +106,19 @@
True
-
- False
- ..\packages\Microsoft.Bcl.Immutable.1.0.34\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+
+ ..\packages\System.Collections.Immutable.1.2.0\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+ True
+
-
- False
- ..\packages\System.Linq.Dynamic.1.0.4\lib\net40\System.Linq.Dynamic.dll
+
+ ..\packages\System.Linq.Dynamic.1.0.6\lib\net40\System.Linq.Dynamic.dll
+ True
+
+
diff --git a/src/ModuleZeroSampleProject.Application/app.config b/src/ModuleZeroSampleProject.Application/app.config
index 996b6bf..c4525af 100644
--- a/src/ModuleZeroSampleProject.Application/app.config
+++ b/src/ModuleZeroSampleProject.Application/app.config
@@ -1,25 +1,25 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
\ No newline at end of file
+
diff --git a/src/ModuleZeroSampleProject.Application/packages.config b/src/ModuleZeroSampleProject.Application/packages.config
index de69eaf..4e0f5ff 100644
--- a/src/ModuleZeroSampleProject.Application/packages.config
+++ b/src/ModuleZeroSampleProject.Application/packages.config
@@ -1,18 +1,20 @@
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
+
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Core/Authorization/PermissionChecker.cs b/src/ModuleZeroSampleProject.Core/Authorization/PermissionChecker.cs
index 11adecb..92f0bf4 100644
--- a/src/ModuleZeroSampleProject.Core/Authorization/PermissionChecker.cs
+++ b/src/ModuleZeroSampleProject.Core/Authorization/PermissionChecker.cs
@@ -9,6 +9,7 @@ public class PermissionChecker : PermissionChecker
public PermissionChecker(UserManager userManager)
: base(userManager)
{
+
}
}
}
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Core/Authorization/Role.cs b/src/ModuleZeroSampleProject.Core/Authorization/Role.cs
index 8157183..5405a9f 100644
--- a/src/ModuleZeroSampleProject.Core/Authorization/Role.cs
+++ b/src/ModuleZeroSampleProject.Core/Authorization/Role.cs
@@ -1,10 +1,9 @@
using Abp.Authorization.Roles;
-using ModuleZeroSampleProject.MultiTenancy;
using ModuleZeroSampleProject.Users;
namespace ModuleZeroSampleProject.Authorization
{
- public class Role : AbpRole
+ public class Role : AbpRole
{
public Role()
{
diff --git a/src/ModuleZeroSampleProject.Core/Authorization/RoleManager.cs b/src/ModuleZeroSampleProject.Core/Authorization/RoleManager.cs
index 4431beb..13fcf31 100644
--- a/src/ModuleZeroSampleProject.Core/Authorization/RoleManager.cs
+++ b/src/ModuleZeroSampleProject.Core/Authorization/RoleManager.cs
@@ -1,24 +1,26 @@
using Abp.Authorization;
using Abp.Authorization.Roles;
+using Abp.Domain.Uow;
using Abp.Runtime.Caching;
using Abp.Zero.Configuration;
-using ModuleZeroSampleProject.MultiTenancy;
using ModuleZeroSampleProject.Users;
namespace ModuleZeroSampleProject.Authorization
{
- public class RoleManager : AbpRoleManager
+ public class RoleManager : AbpRoleManager
{
public RoleManager(
- RoleStore roleStore,
- IPermissionManager permissionManager,
- IRoleManagementConfig roleManagementConfig,
- ICacheManager cacheManager)
+ RoleStore store,
+ IPermissionManager permissionManager,
+ IRoleManagementConfig roleManagementConfig,
+ ICacheManager cacheManager,
+ IUnitOfWorkManager unitOfWorkManager)
: base(
- roleStore,
- permissionManager,
+ store,
+ permissionManager,
roleManagementConfig,
- cacheManager)
+ cacheManager,
+ unitOfWorkManager)
{
}
}
diff --git a/src/ModuleZeroSampleProject.Core/Authorization/RoleStore.cs b/src/ModuleZeroSampleProject.Core/Authorization/RoleStore.cs
index 3b308a5..afec133 100644
--- a/src/ModuleZeroSampleProject.Core/Authorization/RoleStore.cs
+++ b/src/ModuleZeroSampleProject.Core/Authorization/RoleStore.cs
@@ -1,24 +1,20 @@
using Abp.Authorization.Roles;
using Abp.Authorization.Users;
using Abp.Domain.Repositories;
-using Abp.Runtime.Caching;
-using ModuleZeroSampleProject.MultiTenancy;
using ModuleZeroSampleProject.Users;
namespace ModuleZeroSampleProject.Authorization
{
- public class RoleStore : AbpRoleStore
+ public class RoleStore : AbpRoleStore
{
public RoleStore(
- IRepository roleRepository,
- IRepository userRoleRepository,
- IRepository rolePermissionSettingRepository,
- ICacheManager cacheManager)
+ IRepository roleRepository,
+ IRepository userRoleRepository,
+ IRepository rolePermissionSettingRepository)
: base(
- roleRepository,
- userRoleRepository,
- rolePermissionSettingRepository,
- cacheManager)
+ roleRepository,
+ userRoleRepository,
+ rolePermissionSettingRepository)
{
}
}
diff --git a/src/ModuleZeroSampleProject.Core/ModuleZeroSampleProject.Core.csproj b/src/ModuleZeroSampleProject.Core/ModuleZeroSampleProject.Core.csproj
index 108b6bd..998d918 100644
--- a/src/ModuleZeroSampleProject.Core/ModuleZeroSampleProject.Core.csproj
+++ b/src/ModuleZeroSampleProject.Core/ModuleZeroSampleProject.Core.csproj
@@ -9,10 +9,11 @@
Properties
ModuleZeroSampleProject
ModuleZeroSampleProject.Core
- v4.5.1
+ v4.5.2
512
..\
true
+
true
@@ -32,12 +33,12 @@
4
-
- ..\packages\Abp.0.7.3.0\lib\net451\Abp.dll
+
+ ..\packages\Abp.0.10.1.0\lib\net452\Abp.dll
True
-
- ..\packages\Abp.Zero.0.7.3.0\lib\net451\Abp.Zero.dll
+
+ ..\packages\Abp.Zero.0.10.1.0\lib\net452\Abp.Zero.dll
True
@@ -56,8 +57,8 @@
False
..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll
-
- ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll
+
+ ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
@@ -73,12 +74,15 @@
True
-
- False
- ..\packages\Microsoft.Bcl.Immutable.1.0.34\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+
+ ..\packages\System.Collections.Immutable.1.2.0\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+ True
+
+
+
diff --git a/src/ModuleZeroSampleProject.Core/MultiTenancy/Tenant.cs b/src/ModuleZeroSampleProject.Core/MultiTenancy/Tenant.cs
index bb830a1..ab6c540 100644
--- a/src/ModuleZeroSampleProject.Core/MultiTenancy/Tenant.cs
+++ b/src/ModuleZeroSampleProject.Core/MultiTenancy/Tenant.cs
@@ -3,7 +3,7 @@
namespace ModuleZeroSampleProject.MultiTenancy
{
- public class Tenant : AbpTenant
+ public class Tenant : AbpTenant
{
protected Tenant()
{
diff --git a/src/ModuleZeroSampleProject.Core/Users/User.cs b/src/ModuleZeroSampleProject.Core/Users/User.cs
index 62c29b5..ef86443 100644
--- a/src/ModuleZeroSampleProject.Core/Users/User.cs
+++ b/src/ModuleZeroSampleProject.Core/Users/User.cs
@@ -1,9 +1,8 @@
using Abp.Authorization.Users;
-using ModuleZeroSampleProject.MultiTenancy;
namespace ModuleZeroSampleProject.Users
{
- public class User : AbpUser
+ public class User : AbpUser
{
public override string ToString()
{
diff --git a/src/ModuleZeroSampleProject.Core/Users/UserManager.cs b/src/ModuleZeroSampleProject.Core/Users/UserManager.cs
index aeaeedd..62a6640 100644
--- a/src/ModuleZeroSampleProject.Core/Users/UserManager.cs
+++ b/src/ModuleZeroSampleProject.Core/Users/UserManager.cs
@@ -5,6 +5,8 @@
using Abp.Dependency;
using Abp.Domain.Repositories;
using Abp.Domain.Uow;
+using Abp.Organizations;
+using Abp.Runtime.Caching;
using Abp.Zero.Configuration;
using ModuleZeroSampleProject.Authorization;
using ModuleZeroSampleProject.MultiTenancy;
@@ -14,27 +16,36 @@ namespace ModuleZeroSampleProject.Users
public class UserManager : AbpUserManager
{
public UserManager(
- UserStore userStore,
- RoleManager roleManager,
- IRepository tenantRepository,
- IMultiTenancyConfig multiTenancyConfig,
- IPermissionManager permissionManager,
- IUnitOfWorkManager unitOfWorkManager,
- ISettingManager settingManager,
- IUserManagementConfig userManagementConfig,
+ UserStore store,
+ RoleManager roleManager,
+ IRepository tenantRepository,
+ IMultiTenancyConfig multiTenancyConfig,
+ IPermissionManager permissionManager,
+ IUnitOfWorkManager unitOfWorkManager,
+ ISettingManager settingManager,
+ IUserManagementConfig userManagementConfig,
IIocResolver iocResolver,
- Abp.Runtime.Caching.ICacheManager cacheManager)
+ ICacheManager cacheManager,
+ IRepository organizationUnitRepository,
+ IRepository userOrganizationUnitRepository,
+ IOrganizationUnitSettings organizationUnitSettings,
+ IRepository userLoginAttemptRepository)
: base(
- userStore,
- roleManager,
- tenantRepository,
- multiTenancyConfig,
- permissionManager,
- unitOfWorkManager,
- settingManager,
- userManagementConfig,
+ store,
+ roleManager,
+ tenantRepository,
+ multiTenancyConfig,
+ permissionManager,
+ unitOfWorkManager,
+ settingManager,
+ userManagementConfig,
iocResolver,
- cacheManager)
+ cacheManager,
+ organizationUnitRepository,
+ userOrganizationUnitRepository,
+ organizationUnitSettings,
+ userLoginAttemptRepository
+ )
{
}
}
diff --git a/src/ModuleZeroSampleProject.Core/Users/UserStore.cs b/src/ModuleZeroSampleProject.Core/Users/UserStore.cs
index 20863b5..10480fb 100644
--- a/src/ModuleZeroSampleProject.Core/Users/UserStore.cs
+++ b/src/ModuleZeroSampleProject.Core/Users/UserStore.cs
@@ -1,13 +1,11 @@
using Abp.Authorization.Users;
using Abp.Domain.Repositories;
using Abp.Domain.Uow;
-using Abp.Runtime.Caching;
using ModuleZeroSampleProject.Authorization;
-using ModuleZeroSampleProject.MultiTenancy;
namespace ModuleZeroSampleProject.Users
{
- public class UserStore : AbpUserStore
+ public class UserStore : AbpUserStore
{
public UserStore(
IRepository userRepository,
@@ -15,17 +13,14 @@ public class UserStore : AbpUserStore
IRepository userRoleRepository,
IRepository roleRepository,
IRepository userPermissionSettingRepository,
- IUnitOfWorkManager unitOfWorkManager,
- ICacheManager cacheManager
- )
+ IUnitOfWorkManager unitOfWorkManager)
: base(
- userRepository,
- userLoginRepository,
- userRoleRepository,
- roleRepository,
- userPermissionSettingRepository,
- unitOfWorkManager,
- cacheManager)
+ userRepository,
+ userLoginRepository,
+ userRoleRepository,
+ roleRepository,
+ userPermissionSettingRepository,
+ unitOfWorkManager)
{
}
}
diff --git a/src/ModuleZeroSampleProject.Core/app.config b/src/ModuleZeroSampleProject.Core/app.config
index 02aad12..7649784 100644
--- a/src/ModuleZeroSampleProject.Core/app.config
+++ b/src/ModuleZeroSampleProject.Core/app.config
@@ -1,11 +1,11 @@
-
+
-
-
+
+
-
\ No newline at end of file
+
diff --git a/src/ModuleZeroSampleProject.Core/packages.config b/src/ModuleZeroSampleProject.Core/packages.config
index bd302cc..3b211c1 100644
--- a/src/ModuleZeroSampleProject.Core/packages.config
+++ b/src/ModuleZeroSampleProject.Core/packages.config
@@ -1,12 +1,13 @@
-
-
+
+
-
+
+
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.EntityFramework/App.config b/src/ModuleZeroSampleProject.EntityFramework/App.config
index 67d4d8c..68de291 100644
--- a/src/ModuleZeroSampleProject.EntityFramework/App.config
+++ b/src/ModuleZeroSampleProject.EntityFramework/App.config
@@ -1,12 +1,12 @@
-
+
-
+
-
+
-
+
-
\ No newline at end of file
+
diff --git a/src/ModuleZeroSampleProject.EntityFramework/Migrations/201607201129148_Upgrade_To_v0_10_1.Designer.cs b/src/ModuleZeroSampleProject.EntityFramework/Migrations/201607201129148_Upgrade_To_v0_10_1.Designer.cs
new file mode 100644
index 0000000..e7b4c77
--- /dev/null
+++ b/src/ModuleZeroSampleProject.EntityFramework/Migrations/201607201129148_Upgrade_To_v0_10_1.Designer.cs
@@ -0,0 +1,29 @@
+//
+namespace ModuleZeroSampleProject.Migrations
+{
+ using System.CodeDom.Compiler;
+ using System.Data.Entity.Migrations;
+ using System.Data.Entity.Migrations.Infrastructure;
+ using System.Resources;
+
+ [GeneratedCode("EntityFramework.Migrations", "6.1.3-40302")]
+ public sealed partial class Upgrade_To_v0_10_1 : IMigrationMetadata
+ {
+ private readonly ResourceManager Resources = new ResourceManager(typeof(Upgrade_To_v0_10_1));
+
+ string IMigrationMetadata.Id
+ {
+ get { return "201607201129148_Upgrade_To_v0_10_1"; }
+ }
+
+ string IMigrationMetadata.Source
+ {
+ get { return null; }
+ }
+
+ string IMigrationMetadata.Target
+ {
+ get { return Resources.GetString("Target"); }
+ }
+ }
+}
diff --git a/src/ModuleZeroSampleProject.EntityFramework/Migrations/201607201129148_Upgrade_To_v0_10_1.cs b/src/ModuleZeroSampleProject.EntityFramework/Migrations/201607201129148_Upgrade_To_v0_10_1.cs
new file mode 100644
index 0000000..40b179a
--- /dev/null
+++ b/src/ModuleZeroSampleProject.EntityFramework/Migrations/201607201129148_Upgrade_To_v0_10_1.cs
@@ -0,0 +1,551 @@
+namespace ModuleZeroSampleProject.Migrations
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Data.Entity.Infrastructure.Annotations;
+ using System.Data.Entity.Migrations;
+
+ public partial class Upgrade_To_v0_10_1 : DbMigration
+ {
+ public override void Up()
+ {
+ DropForeignKey("dbo.AbpSettings", "TenantId", "dbo.AbpTenants");
+ DropForeignKey("dbo.AbpUsers", "TenantId", "dbo.AbpTenants");
+ DropForeignKey("dbo.AbpRoles", "TenantId", "dbo.AbpTenants");
+ DropIndex("dbo.AbpUsers", new[] { "TenantId" });
+ DropIndex("dbo.AbpSettings", new[] { "TenantId" });
+ DropIndex("dbo.AbpRoles", new[] { "TenantId" });
+ CreateTable(
+ "dbo.AbpBackgroundJobs",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ JobType = c.String(nullable: false, maxLength: 512),
+ JobArgs = c.String(nullable: false),
+ TryCount = c.Short(nullable: false),
+ NextTryTime = c.DateTime(nullable: false),
+ LastTryTime = c.DateTime(),
+ IsAbandoned = c.Boolean(nullable: false),
+ Priority = c.Byte(nullable: false),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ })
+ .PrimaryKey(t => t.Id)
+ .Index(t => new { t.IsAbandoned, t.NextTryTime });
+
+ CreateTable(
+ "dbo.AbpLanguages",
+ c => new
+ {
+ Id = c.Int(nullable: false, identity: true),
+ TenantId = c.Int(),
+ Name = c.String(nullable: false, maxLength: 10),
+ DisplayName = c.String(nullable: false, maxLength: 64),
+ Icon = c.String(maxLength: 128),
+ IsDeleted = c.Boolean(nullable: false),
+ DeleterUserId = c.Long(),
+ DeletionTime = c.DateTime(),
+ LastModificationTime = c.DateTime(),
+ LastModifierUserId = c.Long(),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ { "DynamicFilter_ApplicationLanguage_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ { "DynamicFilter_ApplicationLanguage_SoftDelete", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ })
+ .PrimaryKey(t => t.Id);
+
+ CreateTable(
+ "dbo.AbpLanguageTexts",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ LanguageName = c.String(nullable: false, maxLength: 10),
+ Source = c.String(nullable: false, maxLength: 128),
+ Key = c.String(nullable: false, maxLength: 256),
+ Value = c.String(nullable: false),
+ LastModificationTime = c.DateTime(),
+ LastModifierUserId = c.Long(),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ { "DynamicFilter_ApplicationLanguageText_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ })
+ .PrimaryKey(t => t.Id);
+
+ CreateTable(
+ "dbo.AbpNotifications",
+ c => new
+ {
+ Id = c.Guid(nullable: false),
+ NotificationName = c.String(nullable: false, maxLength: 96),
+ Data = c.String(),
+ DataTypeName = c.String(maxLength: 512),
+ EntityTypeName = c.String(maxLength: 250),
+ EntityTypeAssemblyQualifiedName = c.String(maxLength: 512),
+ EntityId = c.String(maxLength: 96),
+ Severity = c.Byte(nullable: false),
+ UserIds = c.String(),
+ ExcludedUserIds = c.String(),
+ TenantIds = c.String(),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ })
+ .PrimaryKey(t => t.Id);
+
+ CreateTable(
+ "dbo.AbpNotificationSubscriptions",
+ c => new
+ {
+ Id = c.Guid(nullable: false),
+ TenantId = c.Int(),
+ UserId = c.Long(nullable: false),
+ NotificationName = c.String(maxLength: 96),
+ EntityTypeName = c.String(maxLength: 250),
+ EntityTypeAssemblyQualifiedName = c.String(maxLength: 512),
+ EntityId = c.String(maxLength: 96),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ { "DynamicFilter_NotificationSubscriptionInfo_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ })
+ .PrimaryKey(t => t.Id)
+ .Index(t => new { t.NotificationName, t.EntityTypeName, t.EntityId, t.UserId });
+
+ CreateTable(
+ "dbo.AbpOrganizationUnits",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ ParentId = c.Long(),
+ Code = c.String(nullable: false, maxLength: 128),
+ DisplayName = c.String(nullable: false, maxLength: 128),
+ IsDeleted = c.Boolean(nullable: false),
+ DeleterUserId = c.Long(),
+ DeletionTime = c.DateTime(),
+ LastModificationTime = c.DateTime(),
+ LastModifierUserId = c.Long(),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ { "DynamicFilter_OrganizationUnit_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ { "DynamicFilter_OrganizationUnit_SoftDelete", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ })
+ .PrimaryKey(t => t.Id)
+ .ForeignKey("dbo.AbpOrganizationUnits", t => t.ParentId)
+ .Index(t => t.ParentId);
+
+ CreateTable(
+ "dbo.AbpTenantNotifications",
+ c => new
+ {
+ Id = c.Guid(nullable: false),
+ TenantId = c.Int(),
+ NotificationName = c.String(nullable: false, maxLength: 96),
+ Data = c.String(),
+ DataTypeName = c.String(maxLength: 512),
+ EntityTypeName = c.String(maxLength: 250),
+ EntityTypeAssemblyQualifiedName = c.String(maxLength: 512),
+ EntityId = c.String(maxLength: 96),
+ Severity = c.Byte(nullable: false),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ { "DynamicFilter_TenantNotificationInfo_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ })
+ .PrimaryKey(t => t.Id);
+
+ CreateTable(
+ "dbo.AbpUserAccounts",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ UserId = c.Long(nullable: false),
+ UserLinkId = c.Long(),
+ UserName = c.String(),
+ EmailAddress = c.String(),
+ LastLoginTime = c.DateTime(),
+ IsDeleted = c.Boolean(nullable: false),
+ DeleterUserId = c.Long(),
+ DeletionTime = c.DateTime(),
+ LastModificationTime = c.DateTime(),
+ LastModifierUserId = c.Long(),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ { "DynamicFilter_UserAccount_SoftDelete", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ })
+ .PrimaryKey(t => t.Id);
+
+ CreateTable(
+ "dbo.AbpUserLoginAttempts",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ TenancyName = c.String(maxLength: 64),
+ UserId = c.Long(),
+ UserNameOrEmailAddress = c.String(maxLength: 255),
+ ClientIpAddress = c.String(maxLength: 64),
+ ClientName = c.String(maxLength: 128),
+ BrowserInfo = c.String(maxLength: 256),
+ Result = c.Byte(nullable: false),
+ CreationTime = c.DateTime(nullable: false),
+ },
+ annotations: new Dictionary
+ {
+ { "DynamicFilter_UserLoginAttempt_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ })
+ .PrimaryKey(t => t.Id)
+ .Index(t => new { t.UserId, t.TenantId })
+ .Index(t => new { t.TenancyName, t.UserNameOrEmailAddress, t.Result });
+
+ CreateTable(
+ "dbo.AbpUserNotifications",
+ c => new
+ {
+ Id = c.Guid(nullable: false),
+ TenantId = c.Int(),
+ UserId = c.Long(nullable: false),
+ TenantNotificationId = c.Guid(nullable: false),
+ State = c.Int(nullable: false),
+ CreationTime = c.DateTime(nullable: false),
+ },
+ annotations: new Dictionary
+ {
+ { "DynamicFilter_UserNotificationInfo_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ })
+ .PrimaryKey(t => t.Id)
+ .Index(t => new { t.UserId, t.State, t.CreationTime });
+
+ CreateTable(
+ "dbo.AbpUserOrganizationUnits",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ UserId = c.Long(nullable: false),
+ OrganizationUnitId = c.Long(nullable: false),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ { "DynamicFilter_UserOrganizationUnit_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ })
+ .PrimaryKey(t => t.Id);
+
+ AlterTableAnnotations(
+ "dbo.AbpUserLogins",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ UserId = c.Long(nullable: false),
+ LoginProvider = c.String(nullable: false, maxLength: 128),
+ ProviderKey = c.String(nullable: false, maxLength: 256),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_UserLogin_MayHaveTenant",
+ new AnnotationValues(oldValue: null, newValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition")
+ },
+ });
+
+ AlterTableAnnotations(
+ "dbo.AbpPermissions",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ Name = c.String(nullable: false, maxLength: 128),
+ IsGranted = c.Boolean(nullable: false),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ UserId = c.Long(),
+ RoleId = c.Int(),
+ Discriminator = c.String(nullable: false, maxLength: 128),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_PermissionSetting_MayHaveTenant",
+ new AnnotationValues(oldValue: null, newValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition")
+ },
+ {
+ "DynamicFilter_RolePermissionSetting_MayHaveTenant",
+ new AnnotationValues(oldValue: null, newValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition")
+ },
+ {
+ "DynamicFilter_UserPermissionSetting_MayHaveTenant",
+ new AnnotationValues(oldValue: null, newValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition")
+ },
+ });
+
+ AlterTableAnnotations(
+ "dbo.AbpUserRoles",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ UserId = c.Long(nullable: false),
+ RoleId = c.Int(nullable: false),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_UserRole_MayHaveTenant",
+ new AnnotationValues(oldValue: null, newValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition")
+ },
+ });
+
+ AlterTableAnnotations(
+ "dbo.AbpSettings",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ UserId = c.Long(),
+ Name = c.String(nullable: false, maxLength: 256),
+ Value = c.String(maxLength: 2000),
+ LastModificationTime = c.DateTime(),
+ LastModifierUserId = c.Long(),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_Setting_MayHaveTenant",
+ new AnnotationValues(oldValue: null, newValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition")
+ },
+ });
+
+ AlterTableAnnotations(
+ "dbo.AbpFeatures",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ Name = c.String(nullable: false, maxLength: 128),
+ Value = c.String(nullable: false, maxLength: 2000),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ EditionId = c.Int(),
+ TenantId = c.Int(),
+ Discriminator = c.String(nullable: false, maxLength: 128),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_TenantFeatureSetting_MustHaveTenant",
+ new AnnotationValues(oldValue: null, newValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition")
+ },
+ });
+
+ AddColumn("dbo.AbpUserLogins", "TenantId", c => c.Int());
+ AddColumn("dbo.AbpPermissions", "TenantId", c => c.Int());
+ AddColumn("dbo.AbpUserRoles", "TenantId", c => c.Int());
+ AddColumn("dbo.AbpTenants", "ConnectionString", c => c.String(maxLength: 1024));
+ AlterColumn("dbo.AbpAuditLogs", "CustomData", c => c.String(maxLength: 2000));
+ }
+
+ public override void Down()
+ {
+ DropForeignKey("dbo.AbpOrganizationUnits", "ParentId", "dbo.AbpOrganizationUnits");
+ DropIndex("dbo.AbpUserNotifications", new[] { "UserId", "State", "CreationTime" });
+ DropIndex("dbo.AbpUserLoginAttempts", new[] { "TenancyName", "UserNameOrEmailAddress", "Result" });
+ DropIndex("dbo.AbpUserLoginAttempts", new[] { "UserId", "TenantId" });
+ DropIndex("dbo.AbpOrganizationUnits", new[] { "ParentId" });
+ DropIndex("dbo.AbpNotificationSubscriptions", new[] { "NotificationName", "EntityTypeName", "EntityId", "UserId" });
+ DropIndex("dbo.AbpBackgroundJobs", new[] { "IsAbandoned", "NextTryTime" });
+ AlterColumn("dbo.AbpAuditLogs", "CustomData", c => c.String());
+ DropColumn("dbo.AbpTenants", "ConnectionString");
+ DropColumn("dbo.AbpUserRoles", "TenantId");
+ DropColumn("dbo.AbpPermissions", "TenantId");
+ DropColumn("dbo.AbpUserLogins", "TenantId");
+ AlterTableAnnotations(
+ "dbo.AbpFeatures",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ Name = c.String(nullable: false, maxLength: 128),
+ Value = c.String(nullable: false, maxLength: 2000),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ EditionId = c.Int(),
+ TenantId = c.Int(),
+ Discriminator = c.String(nullable: false, maxLength: 128),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_TenantFeatureSetting_MustHaveTenant",
+ new AnnotationValues(oldValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition", newValue: null)
+ },
+ });
+
+ AlterTableAnnotations(
+ "dbo.AbpSettings",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ UserId = c.Long(),
+ Name = c.String(nullable: false, maxLength: 256),
+ Value = c.String(maxLength: 2000),
+ LastModificationTime = c.DateTime(),
+ LastModifierUserId = c.Long(),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_Setting_MayHaveTenant",
+ new AnnotationValues(oldValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition", newValue: null)
+ },
+ });
+
+ AlterTableAnnotations(
+ "dbo.AbpUserRoles",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ UserId = c.Long(nullable: false),
+ RoleId = c.Int(nullable: false),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_UserRole_MayHaveTenant",
+ new AnnotationValues(oldValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition", newValue: null)
+ },
+ });
+
+ AlterTableAnnotations(
+ "dbo.AbpPermissions",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ Name = c.String(nullable: false, maxLength: 128),
+ IsGranted = c.Boolean(nullable: false),
+ CreationTime = c.DateTime(nullable: false),
+ CreatorUserId = c.Long(),
+ UserId = c.Long(),
+ RoleId = c.Int(),
+ Discriminator = c.String(nullable: false, maxLength: 128),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_PermissionSetting_MayHaveTenant",
+ new AnnotationValues(oldValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition", newValue: null)
+ },
+ {
+ "DynamicFilter_RolePermissionSetting_MayHaveTenant",
+ new AnnotationValues(oldValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition", newValue: null)
+ },
+ {
+ "DynamicFilter_UserPermissionSetting_MayHaveTenant",
+ new AnnotationValues(oldValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition", newValue: null)
+ },
+ });
+
+ AlterTableAnnotations(
+ "dbo.AbpUserLogins",
+ c => new
+ {
+ Id = c.Long(nullable: false, identity: true),
+ TenantId = c.Int(),
+ UserId = c.Long(nullable: false),
+ LoginProvider = c.String(nullable: false, maxLength: 128),
+ ProviderKey = c.String(nullable: false, maxLength: 256),
+ },
+ annotations: new Dictionary
+ {
+ {
+ "DynamicFilter_UserLogin_MayHaveTenant",
+ new AnnotationValues(oldValue: "EntityFramework.DynamicFilters.DynamicFilterDefinition", newValue: null)
+ },
+ });
+
+ DropTable("dbo.AbpUserOrganizationUnits",
+ removedAnnotations: new Dictionary
+ {
+ { "DynamicFilter_UserOrganizationUnit_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ });
+ DropTable("dbo.AbpUserNotifications",
+ removedAnnotations: new Dictionary
+ {
+ { "DynamicFilter_UserNotificationInfo_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ });
+ DropTable("dbo.AbpUserLoginAttempts",
+ removedAnnotations: new Dictionary
+ {
+ { "DynamicFilter_UserLoginAttempt_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ });
+ DropTable("dbo.AbpUserAccounts",
+ removedAnnotations: new Dictionary
+ {
+ { "DynamicFilter_UserAccount_SoftDelete", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ });
+ DropTable("dbo.AbpTenantNotifications",
+ removedAnnotations: new Dictionary
+ {
+ { "DynamicFilter_TenantNotificationInfo_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ });
+ DropTable("dbo.AbpOrganizationUnits",
+ removedAnnotations: new Dictionary
+ {
+ { "DynamicFilter_OrganizationUnit_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ { "DynamicFilter_OrganizationUnit_SoftDelete", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ });
+ DropTable("dbo.AbpNotificationSubscriptions",
+ removedAnnotations: new Dictionary
+ {
+ { "DynamicFilter_NotificationSubscriptionInfo_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ });
+ DropTable("dbo.AbpNotifications");
+ DropTable("dbo.AbpLanguageTexts",
+ removedAnnotations: new Dictionary
+ {
+ { "DynamicFilter_ApplicationLanguageText_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ });
+ DropTable("dbo.AbpLanguages",
+ removedAnnotations: new Dictionary
+ {
+ { "DynamicFilter_ApplicationLanguage_MayHaveTenant", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ { "DynamicFilter_ApplicationLanguage_SoftDelete", "EntityFramework.DynamicFilters.DynamicFilterDefinition" },
+ });
+ DropTable("dbo.AbpBackgroundJobs");
+ CreateIndex("dbo.AbpRoles", "TenantId");
+ CreateIndex("dbo.AbpSettings", "TenantId");
+ CreateIndex("dbo.AbpUsers", "TenantId");
+ AddForeignKey("dbo.AbpRoles", "TenantId", "dbo.AbpTenants", "Id");
+ AddForeignKey("dbo.AbpUsers", "TenantId", "dbo.AbpTenants", "Id");
+ AddForeignKey("dbo.AbpSettings", "TenantId", "dbo.AbpTenants", "Id");
+ }
+ }
+}
diff --git a/src/ModuleZeroSampleProject.EntityFramework/Migrations/201607201129148_Upgrade_To_v0_10_1.resx b/src/ModuleZeroSampleProject.EntityFramework/Migrations/201607201129148_Upgrade_To_v0_10_1.resx
new file mode 100644
index 0000000..cdb1aaf
--- /dev/null
+++ b/src/ModuleZeroSampleProject.EntityFramework/Migrations/201607201129148_Upgrade_To_v0_10_1.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 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
+
+
+ dbo
+
+
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.EntityFramework/Migrations/Data/InitialDataBuilder.cs b/src/ModuleZeroSampleProject.EntityFramework/Migrations/Data/InitialDataBuilder.cs
index 92eb042..898fe11 100644
--- a/src/ModuleZeroSampleProject.EntityFramework/Migrations/Data/InitialDataBuilder.cs
+++ b/src/ModuleZeroSampleProject.EntityFramework/Migrations/Data/InitialDataBuilder.cs
@@ -48,7 +48,7 @@ private void CreateUserAndRoles(ModuleZeroSampleProjectDbContext context)
context.SaveChanges();
- context.UserRoles.Add(new UserRole(adminUserForTenancyOwner.Id, adminRoleForTenancyOwner.Id));
+ context.UserRoles.Add(new UserRole(null, adminUserForTenancyOwner.Id, adminRoleForTenancyOwner.Id));
context.SaveChanges();
}
@@ -71,8 +71,8 @@ private void CreateUserAndRoles(ModuleZeroSampleProjectDbContext context)
context.SaveChanges();
//Permission definitions for Admin of 'Default' tenant
- context.Permissions.Add(new RolePermissionSetting { RoleId = adminRoleForDefaultTenant.Id, Name = "CanDeleteAnswers", IsGranted = true });
- context.Permissions.Add(new RolePermissionSetting { RoleId = adminRoleForDefaultTenant.Id, Name = "CanDeleteQuestions", IsGranted = true });
+ context.Permissions.Add(new RolePermissionSetting { TenantId = defaultTenant.Id, RoleId = adminRoleForDefaultTenant.Id, Name = "CanDeleteAnswers", IsGranted = true });
+ context.Permissions.Add(new RolePermissionSetting { TenantId = defaultTenant.Id, RoleId = adminRoleForDefaultTenant.Id, Name = "CanDeleteQuestions", IsGranted = true });
context.SaveChanges();
}
@@ -85,7 +85,7 @@ private void CreateUserAndRoles(ModuleZeroSampleProjectDbContext context)
context.SaveChanges();
//Permission definitions for User of 'Default' tenant
- context.Permissions.Add(new RolePermissionSetting { RoleId = userRoleForDefaultTenant.Id, Name = "CanCreateQuestions", IsGranted = true });
+ context.Permissions.Add(new RolePermissionSetting { TenantId = defaultTenant.Id, RoleId = userRoleForDefaultTenant.Id, Name = "CanCreateQuestions", IsGranted = true });
context.SaveChanges();
}
@@ -107,8 +107,8 @@ private void CreateUserAndRoles(ModuleZeroSampleProjectDbContext context)
});
context.SaveChanges();
- context.UserRoles.Add(new UserRole(adminUserForDefaultTenant.Id, adminRoleForDefaultTenant.Id));
- context.UserRoles.Add(new UserRole(adminUserForDefaultTenant.Id, userRoleForDefaultTenant.Id));
+ context.UserRoles.Add(new UserRole(defaultTenant.Id, adminUserForDefaultTenant.Id, adminRoleForDefaultTenant.Id));
+ context.UserRoles.Add(new UserRole(defaultTenant.Id, adminUserForDefaultTenant.Id, userRoleForDefaultTenant.Id));
context.SaveChanges();
var question1 = context.Questions.Add(
@@ -141,7 +141,7 @@ private void CreateUserAndRoles(ModuleZeroSampleProjectDbContext context)
});
context.SaveChanges();
- context.UserRoles.Add(new UserRole(emreUserForDefaultTenant.Id, userRoleForDefaultTenant.Id));
+ context.UserRoles.Add(new UserRole(defaultTenant.Id, emreUserForDefaultTenant.Id, userRoleForDefaultTenant.Id));
context.SaveChanges();
var question2 = context.Questions.Add(
diff --git a/src/ModuleZeroSampleProject.EntityFramework/ModuleZeroSampleProject.EntityFramework.csproj b/src/ModuleZeroSampleProject.EntityFramework/ModuleZeroSampleProject.EntityFramework.csproj
index 1a32658..b2da0f6 100644
--- a/src/ModuleZeroSampleProject.EntityFramework/ModuleZeroSampleProject.EntityFramework.csproj
+++ b/src/ModuleZeroSampleProject.EntityFramework/ModuleZeroSampleProject.EntityFramework.csproj
@@ -9,10 +9,11 @@
Properties
ModuleZeroSampleProject
ModuleZeroSampleProject.EntityFramework
- v4.5.1
+ v4.5.2
512
..\
true
+
true
@@ -32,20 +33,24 @@
4
-
- ..\packages\Abp.0.7.3.0\lib\net451\Abp.dll
+
+ ..\packages\Abp.0.10.1.0\lib\net452\Abp.dll
True
-
- ..\packages\Abp.EntityFramework.0.7.2.0\lib\net451\Abp.EntityFramework.dll
+
+ ..\packages\Abp.EntityFramework.0.10.1.0\lib\net452\Abp.EntityFramework.dll
True
-
- ..\packages\Abp.Zero.0.7.3.0\lib\net451\Abp.Zero.dll
+
+ ..\packages\Abp.EntityFramework.Common.0.10.1.0\lib\net452\Abp.EntityFramework.Common.dll
True
-
- ..\packages\Abp.Zero.EntityFramework.0.7.3.0\lib\net451\Abp.Zero.EntityFramework.dll
+
+ ..\packages\Abp.Zero.0.10.1.0\lib\net452\Abp.Zero.dll
+ True
+
+
+ ..\packages\Abp.Zero.EntityFramework.0.10.1.0\lib\net452\Abp.Zero.EntityFramework.dll
True
@@ -64,8 +69,8 @@
False
..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll
-
- ..\packages\EntityFramework.DynamicFilters.1.4.1\lib\net40\EntityFramework.DynamicFilters.dll
+
+ ..\packages\EntityFramework.DynamicFilters.1.4.11\lib\net40\EntityFramework.DynamicFilters.dll
True
@@ -76,8 +81,8 @@
False
..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll
-
- ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll
+
+ ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
@@ -93,16 +98,19 @@
True
-
- False
- ..\packages\Microsoft.Bcl.Immutable.1.0.34\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+
+ ..\packages\System.Collections.Immutable.1.2.0\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+ True
+
-
- False
- ..\packages\System.Linq.Dynamic.1.0.4\lib\net40\System.Linq.Dynamic.dll
+
+ ..\packages\System.Linq.Dynamic.1.0.6\lib\net40\System.Linq.Dynamic.dll
+ True
+
+
@@ -152,6 +160,10 @@
201511072316273_Upgrade_To_ModuleZero_0_7_3.cs
+
+
+ 201607201129148_Upgrade_To_v0_10_1.cs
+
@@ -198,6 +210,9 @@
201511072316273_Upgrade_To_ModuleZero_0_7_3.cs
+
+ 201607201129148_Upgrade_To_v0_10_1.cs
+
diff --git a/src/ModuleZeroSampleProject.EntityFramework/packages.config b/src/ModuleZeroSampleProject.EntityFramework/packages.config
index b8f6f11..fbc2899 100644
--- a/src/ModuleZeroSampleProject.EntityFramework/packages.config
+++ b/src/ModuleZeroSampleProject.EntityFramework/packages.config
@@ -1,17 +1,19 @@
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
+
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/abp.js b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/abp.js
index e2f77a6..a4874aa 100644
--- a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/abp.js
+++ b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/abp.js
@@ -1,5 +1,5 @@
var abp = abp || {};
-(function () {
+(function ($) {
/* Application paths *****************************************/
@@ -70,17 +70,32 @@
abp.auth.grantedPermissions = abp.auth.grantedPermissions || {};
+ //Deprecated. Use abp.auth.isGranted instead.
abp.auth.hasPermission = function (permissionName) {
- return abp.auth.allPermissions[permissionName] != undefined && abp.auth.grantedPermissions[permissionName] != undefined;
+ return abp.auth.isGranted.apply(this, arguments);
};
+ //Deprecated. Use abp.auth.isAnyGranted instead.
abp.auth.hasAnyOfPermissions = function () {
+ return abp.auth.isAnyGranted.apply(this, arguments);
+ };
+
+ //Deprecated. Use abp.auth.areAllGranted instead.
+ abp.auth.hasAllOfPermissions = function () {
+ return abp.auth.areAllGranted.apply(this, arguments);
+ };
+
+ abp.auth.isGranted = function (permissionName) {
+ return abp.auth.allPermissions[permissionName] != undefined && abp.auth.grantedPermissions[permissionName] != undefined;
+ };
+
+ abp.auth.isAnyGranted = function () {
if (!arguments || arguments.length <= 0) {
return true;
}
for (var i = 0; i < arguments.length; i++) {
- if (abp.auth.hasPermission(arguments[i])) {
+ if (abp.auth.isGranted(arguments[i])) {
return true;
}
}
@@ -88,13 +103,13 @@
return false;
};
- abp.auth.hasAllOfPermissions = function () {
+ abp.auth.areAllGranted = function () {
if (!arguments || arguments.length <= 0) {
return true;
}
for (var i = 0; i < arguments.length; i++) {
- if (!abp.auth.hasPermission(arguments[i])) {
+ if (!abp.auth.isGranted(arguments[i])) {
return false;
}
}
@@ -108,8 +123,8 @@
abp.features = abp.features || {};
abp.features.allFeatures = abp.features.allFeatures || {};
-
- abp.features.get = function(name) {
+
+ abp.features.get = function (name) {
return abp.features.allFeatures[name];
}
@@ -121,7 +136,7 @@
return feature.value;
}
-
+
abp.features.isEnabled = function (name) {
var value = abp.features.getValue(name);
return value == 'true' || value == 'True';
@@ -147,6 +162,102 @@
return parseInt(abp.setting.values[name]);
};
+ /* REALTIME NOTIFICATIONS ************************************/
+
+ abp.notifications = abp.notifications || {};
+
+ abp.notifications.severity = {
+ INFO: 0,
+ SUCCESS: 1,
+ WARN: 2,
+ ERROR: 3,
+ FATAL: 4
+ };
+
+ abp.notifications.userNotificationState = {
+ UNREAD: 0,
+ READ: 1
+ };
+
+ abp.notifications.getUserNotificationStateAsString = function (userNotificationState) {
+ switch (userNotificationState) {
+ case abp.notifications.userNotificationState.READ:
+ return 'READ';
+ case abp.notifications.userNotificationState.UNREAD:
+ return 'UNREAD';
+ default:
+ abp.log.warn('Unknown user notification state value: ' + userNotificationState)
+ return '?';
+ }
+ };
+
+ abp.notifications.getUiNotifyFuncBySeverity = function (severity) {
+ switch (severity) {
+ case abp.notifications.severity.SUCCESS:
+ return abp.notify.success;
+ case abp.notifications.severity.WARN:
+ return abp.notify.warn;
+ case abp.notifications.severity.ERROR:
+ return abp.notify.error;
+ case abp.notifications.severity.FATAL:
+ return abp.notify.error;
+ case abp.notifications.severity.INFO:
+ default:
+ return abp.notify.info;
+ }
+ };
+
+ abp.notifications.messageFormatters = {};
+
+ abp.notifications.messageFormatters['Abp.Notifications.MessageNotificationData'] = function (userNotification) {
+ return userNotification.notification.data.message;
+ };
+
+ abp.notifications.messageFormatters['Abp.Notifications.LocalizableMessageNotificationData'] = function (userNotification) {
+ var localizedMessage = abp.localization.localize(
+ userNotification.notification.data.message.name,
+ userNotification.notification.data.message.sourceName
+ );
+
+ if (userNotification.notification.data.properties) {
+ if ($) {
+ //Prefer to use jQuery if possible
+ $.each(userNotification.notification.data.properties, function (key, value) {
+ localizedMessage = localizedMessage.replace('{' + key + '}', value);
+ });
+ } else {
+ //alternative for $.each
+ var properties = Object.keys(userNotification.notification.data.properties);
+ for (var i = 0; i < properties.length; i++) {
+ localizedMessage = localizedMessage.replace('{' + properties[i] + '}', userNotification.notification.data.properties[properties[i]]);
+ }
+ }
+ }
+
+ return localizedMessage;
+ };
+
+ abp.notifications.getFormattedMessageFromUserNotification = function (userNotification) {
+ var formatter = abp.notifications.messageFormatters[userNotification.notification.data.type];
+ if (!formatter) {
+ abp.log.warn('No message formatter defined for given data type: ' + userNotification.notification.data.type)
+ return '?';
+ }
+
+ if (!abp.utils.isFunction(formatter)) {
+ abp.log.warn('Message formatter should be a function! It is invalid for data type: ' + userNotification.notification.data.type)
+ return '?';
+ }
+
+ return formatter(userNotification);
+ }
+
+ abp.notifications.showUiNotifyForUserNotification = function (userNotification, options) {
+ var message = abp.notifications.getFormattedMessageFromUserNotification(userNotification);
+ var uiNotifyFunc = abp.notifications.getUiNotifyFuncBySeverity(userNotification.notification.severity);
+ uiNotifyFunc(message, undefined, options);
+ }
+
/* LOGGING ***************************************************/
//Implements Logging API that provides secure & controlled usage of console.log
@@ -204,19 +315,19 @@
abp.notify = abp.notify || {};
- abp.notify.success = function (message, title) {
+ abp.notify.success = function (message, title, options) {
abp.log.warn('abp.notify.success is not implemented!');
};
- abp.notify.info = function (message, title) {
+ abp.notify.info = function (message, title, options) {
abp.log.warn('abp.notify.info is not implemented!');
};
- abp.notify.warn = function (message, title) {
+ abp.notify.warn = function (message, title, options) {
abp.log.warn('abp.notify.warn is not implemented!');
};
- abp.notify.error = function (message, title) {
+ abp.notify.error = function (message, title, options) {
abp.log.warn('abp.notify.error is not implemented!');
};
@@ -306,11 +417,11 @@
/* SIMPLE EVENT BUS *****************************************/
- abp.event = (function() {
+ abp.event = (function () {
var _callbacks = {};
- var on = function(eventName, callback) {
+ var on = function (eventName, callback) {
if (!_callbacks[eventName]) {
_callbacks[eventName] = [];
}
@@ -318,7 +429,28 @@
_callbacks[eventName].push(callback);
};
- var trigger = function(eventName) {
+ var off = function (eventName, callback) {
+ var callbacks = _callbacks[eventName];
+ if (!callbacks) {
+ return;
+ }
+
+ var index = -1;
+ for (var i = 0; i < callbacks.length; i++) {
+ if (callbacks[i] === callback) {
+ index = i;
+ break;
+ }
+ }
+
+ if (index < 0) {
+ return;
+ }
+
+ _callbacks[eventName].splice(index, 1);
+ };
+
+ var trigger = function (eventName) {
var callbacks = _callbacks[eventName];
if (!callbacks || !callbacks.length) {
return;
@@ -334,6 +466,7 @@
return {
on: on,
+ off: off,
trigger: trigger
};
})();
@@ -362,9 +495,19 @@
return root;
};
+ /* Find and replaces a string (search) to another string (replacement) in
+ * given string (str).
+ * Example:
+ * abp.utils.replaceAll('This is a test string', 'is', 'X') = 'ThX X a test string'
+ ************************************************************/
+ abp.utils.replaceAll = function (str, search, replacement) {
+ var fix = search.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
+ return str.replace(new RegExp(fix, 'g'), replacement);
+ };
+
/* Formats a string just like string.format in C#.
* Example:
- * _formatString('Hello {0}','Halil') = 'Hello Halil'
+ * abp.utils.formatString('Hello {0}','Tuana') = 'Hello Tuana'
************************************************************/
abp.utils.formatString = function () {
if (arguments.length < 1) {
@@ -375,10 +518,183 @@
for (var i = 1; i < arguments.length; i++) {
var placeHolder = '{' + (i - 1) + '}';
- str = str.replace(placeHolder, arguments[i]);
+ str = abp.utils.replaceAll(str, placeHolder, arguments[i]);
}
return str;
};
-})();
\ No newline at end of file
+ abp.utils.toPascalCase = function (str) {
+ if (!str || !str.length) {
+ return str;
+ }
+
+ if (str.length === 1) {
+ return str.charAt(0).toUpperCase();
+ }
+
+ return str.charAt(0).toUpperCase() + str.substr(1);
+ }
+
+ abp.utils.toCamelCase = function (str) {
+ if (!str || !str.length) {
+ return str;
+ }
+
+ if (str.length === 1) {
+ return str.charAt(0).toLowerCase();
+ }
+
+ return str.charAt(0).toLowerCase() + str.substr(1);
+ }
+
+ abp.utils.truncateString = function (str, maxLength) {
+ if (!str || !str.length || str.length <= maxLength) {
+ return str;
+ }
+
+ return str.substr(0, maxLength);
+ };
+
+ abp.utils.truncateStringWithPostfix = function (str, maxLength, postfix) {
+ postfix = postfix || '...';
+
+ if (!str || !str.length || str.length <= maxLength) {
+ return str;
+ }
+
+ if (maxLength <= postfix.length) {
+ return postfix.substr(0, maxLength);
+ }
+
+ return str.substr(0, maxLength - postfix.length) + postfix;
+ };
+
+ abp.utils.isFunction = function (obj) {
+ if ($) {
+ //Prefer to use jQuery if possible
+ return $.isFunction(obj);
+ }
+
+ //alternative for $.isFunction
+ return !!(obj && obj.constructor && obj.call && obj.apply);
+ };
+
+ /* TIMING *****************************************/
+ abp.timing = abp.timing || {};
+
+ abp.timing.utcClockProvider = (function () {
+
+ var toUtc = function (date) {
+ return Date.UTC(
+ date.getUTCFullYear()
+ , date.getUTCMonth()
+ , date.getUTCDate()
+ , date.getUTCHours()
+ , date.getUTCMinutes()
+ , date.getUTCSeconds()
+ , date.getUTCMilliseconds()
+ );
+ }
+
+ var now = function () {
+ return new Date();
+ };
+
+ var normalize = function (date) {
+ if (!date) {
+ return date;
+ }
+
+ return new Date(toUtc(date));
+ };
+
+ // Public interface ///////////////////////////////////////////////////
+
+ return {
+ now: now,
+ normalize: normalize
+ };
+ })();
+
+ abp.timing.localClockProvider = (function () {
+
+ var toLocal = function (date) {
+ return new Date(
+ date.getFullYear()
+ , date.getMonth()
+ , date.getDate()
+ , date.getHours()
+ , date.getMinutes()
+ , date.getSeconds()
+ , date.getMilliseconds()
+ );
+ }
+
+ var now = function () {
+ return toLocal(new Date());
+ }
+
+ var normalize = function (date) {
+ if (!date) {
+ return date;
+ }
+
+ return toLocal(date);
+ }
+
+ // Public interface ///////////////////////////////////////////////////
+
+ return {
+ now: now,
+ normalize: normalize
+ };
+ })();
+
+ abp.timing.unspecifiedClockProvider = (function () {
+
+ var now = function () {
+ return new Date();
+ }
+
+ var normalize = function (date) {
+ return date;
+ }
+
+ // Public interface ///////////////////////////////////////////////////
+
+ return {
+ now: now,
+ normalize: normalize
+ };
+ })();
+
+ abp.timing.convertToUserTimezone = function (date) {
+ var localTime = date.getTime();
+ var utcTime = localTime + (date.getTimezoneOffset() * 60000);
+ var targetTime = parseInt(utcTime) + parseInt(abp.timing.timeZoneInfo.windows.currentUtcOffsetInMilliseconds);
+ return new Date(targetTime);
+ };
+
+ /* CLOCK *****************************************/
+ abp.clock = abp.clock || {};
+
+ abp.clock.now = function () {
+ if (abp.clock.provider) {
+ return abp.clock.provider.now();
+ }
+
+ return new Date();
+ }
+
+ abp.clock.normalize = function (date) {
+ if (abp.clock.provider) {
+ return abp.clock.provider.normalize(date);
+ }
+
+ return date;
+ }
+
+ abp.clock.provider = abp.timing.unspecifiedClockProvider;
+
+})(jQuery);
diff --git a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.jquery.js b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.jquery.js
index dc0570b..f34f13b 100644
--- a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.jquery.js
+++ b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.jquery.js
@@ -18,10 +18,19 @@
return $.Deferred(function ($dfd) {
$.ajax(options)
- .done(function (data) {
- abp.ajax.handleResponse(data, userOptions, $dfd);
- }).fail(function () {
- $dfd.reject.apply(this, arguments);
+ .done(function (data, textStatus, jqXHR) {
+ if (data.__abp) {
+ abp.ajax.handleResponse(data, userOptions, $dfd, jqXHR);
+ } else {
+ $dfd.resolve(data);
+ userOptions.success && userOptions.success(data);
+ }
+ }).fail(function (jqXHR) {
+ if (jqXHR.responseJSON && jqXHR.responseJSON.__abp) {
+ abp.ajax.handleResponse(jqXHR.responseJSON, userOptions, $dfd, jqXHR);
+ } else {
+ abp.ajax.handleNonAbpErrorResponse(jqXHR, userOptions, $dfd);
+ }
});
});
};
@@ -34,10 +43,20 @@
},
defaultError: {
- message: 'Ajax request did not succeed!',
+ message: 'An error has occurred!',
details: 'Error detail not sent by server.'
},
+ defaultError401: {
+ message: 'You are not authenticated!',
+ details: 'You should be authenticated (sign in) in order to perform this operation.'
+ },
+
+ defaultError403: {
+ message: 'You are not authorized!',
+ details: 'You are not allowed to perform this operation.'
+ },
+
logError: function (error) {
abp.log.error(error);
},
@@ -46,18 +65,38 @@
if (error.details) {
return abp.message.error(error.details, error.message);
} else {
- return abp.message.error(error.message);
+ return abp.message.error(error.message || abp.ajax.defaultError.message);
}
},
handleTargetUrl: function (targetUrl) {
if (!targetUrl) {
- location.reload();
+ location.href = abp.appPath;
} else {
location.href = targetUrl;
}
},
+ handleNonAbpErrorResponse: function (jqXHR, userOptions, $dfd) {
+ switch (jqXHR.status) {
+ case 401:
+ abp.ajax.handleUnAuthorizedRequest(
+ abp.ajax.showError(abp.ajax.defaultError401),
+ abp.appPath
+ );
+ break;
+ case 403:
+ abp.ajax.showError(abp.ajax.defaultError403);
+ break;
+ default:
+ abp.ajax.showError(abp.ajax.defaultError);
+ break;
+ }
+
+ $dfd.reject.apply(this, arguments);
+ userOptions.error && userOptions.error.apply(this, arguments);
+ },
+
handleUnAuthorizedRequest: function (messagePromise, targetUrl) {
if (messagePromise) {
messagePromise.done(function () {
@@ -68,11 +107,11 @@
}
},
- handleResponse: function (data, userOptions, $dfd) {
+ handleResponse: function (data, userOptions, $dfd, jqXHR) {
if (data) {
if (data.success === true) {
- $dfd && $dfd.resolve(data.result, data);
- userOptions.success && userOptions.success(data.result, data);
+ $dfd && $dfd.resolve(data.result, data, jqXHR);
+ userOptions.success && userOptions.success(data.result, data, jqXHR);
if (data.targetUrl) {
abp.ajax.handleTargetUrl(data.targetUrl);
@@ -88,19 +127,19 @@
abp.ajax.logError(data.error);
- $dfd && $dfd.reject(data.error);
- userOptions.error && userOptions.error(data.error);
+ $dfd && $dfd.reject(data.error, jqXHR);
+ userOptions.error && userOptions.error(data.error, jqXHR);
- if (data.unAuthorizedRequest) {
+ if (jqXHR.status == 401) {
abp.ajax.handleUnAuthorizedRequest(messagePromise, data.targetUrl);
}
- } else { //not abp-related data!
- $dfd && $dfd.resolve(data);
- userOptions.success && userOptions.success(data);
+ } else { //not wrapped result
+ $dfd && $dfd.resolve(data, null, jqXHR);
+ userOptions.success && userOptions.success(data, null, jqXHR);
}
} else { //no data sent to back
- $dfd && $dfd.resolve();
- userOptions.success && userOptions.success();
+ $dfd && $dfd.resolve(jqXHR);
+ userOptions.success && userOptions.success(jqXHR);
}
},
@@ -163,4 +202,13 @@
};
}
+ abp.event.on('abp.dynamicScriptsInitialized', function () {
+ abp.ajax.defaultError.message = abp.localization.abpWeb('DefaultError');
+ abp.ajax.defaultError.details = abp.localization.abpWeb('DefaultErrorDetail');
+ abp.ajax.defaultError401.message = abp.localization.abpWeb('DefaultError401');
+ abp.ajax.defaultError401.details = abp.localization.abpWeb('DefaultErrorDetail401');
+ abp.ajax.defaultError403.message = abp.localization.abpWeb('DefaultError403');
+ abp.ajax.defaultError403.details = abp.localization.abpWeb('DefaultErrorDetail403');
+ });
+
})(jQuery);
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.jtable.js b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.jtable.js
index 13b291d..14a6ac3 100644
--- a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.jtable.js
+++ b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.jtable.js
@@ -55,7 +55,8 @@
$dfd.resolve({
"Result": "OK",
"Records": result.items || result[originalListAction.recordsField],
- "TotalRecordCount": result.totalCount
+ "TotalRecordCount": result.totalCount,
+ originalResult: result
});
})
.fail(function (error) {
@@ -78,7 +79,8 @@
.done(function (result) {
$dfd.resolve({
"Result": "OK",
- "Record": originalCreateAction.recordField ? result[originalCreateAction.recordField] : result
+ "Record": originalCreateAction.recordField ? result[originalCreateAction.recordField] : result,
+ originalResult: result
});
})
.fail(function (error) {
@@ -99,7 +101,11 @@
originalUpdateAction.method(input)
.done(function (result) {
- var jtableResult = { "Result": "OK" };
+ var jtableResult = {
+ "Result": "OK",
+ originalResult: result
+ };
+
if (originalUpdateAction.returnsRecord) {
if (originalUpdateAction.recordField) {
jtableResult.Record = result[originalUpdateAction.recordField];
@@ -127,9 +133,10 @@
var input = $.extend({}, postData);
originalDeleteAction.method(input)
- .done(function () {
+ .done(function (result) {
$dfd.resolve({
- "Result": "OK"
+ "Result": "OK",
+ originalResult: result
});
})
.fail(function (error) {
diff --git a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.moment.js b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.moment.js
new file mode 100644
index 0000000..92eab9f
--- /dev/null
+++ b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.moment.js
@@ -0,0 +1,19 @@
+var abp = abp || {};
+(function () {
+ if (!moment || !moment.tz) {
+ return;
+ }
+
+ /* DEFAULTS *************************************************/
+
+ abp.timing = abp.timing || {};
+
+ /* FUNCTIONS **************************************************/
+
+ abp.timing.convertToUserTimezone = function (date) {
+ var momentDate = moment(date);
+ var targetDate = momentDate.clone().tz(abp.timing.timeZoneInfo.iana.timeZoneId);
+ return targetDate;
+ };
+
+})();
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.signalr.js b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.signalr.js
new file mode 100644
index 0000000..acc0d2c
--- /dev/null
+++ b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.signalr.js
@@ -0,0 +1,45 @@
+var abp = abp || {};
+(function ($) {
+
+ //Check if SignalR is defined
+ if (!$ || !$.connection) {
+ return;
+ }
+
+ //Create namespaces
+ abp.signalr = abp.signalr || {};
+ abp.signalr.hubs = abp.signalr.hubs || {};
+
+ //Get the common hub
+ abp.signalr.hubs.common = $.connection.abpCommonHub;
+
+ var commonHub = abp.signalr.hubs.common;
+ if (!commonHub) {
+ return;
+ }
+
+ //Register to get notifications
+ commonHub.client.getNotification = function (notification) {
+ abp.event.trigger('abp.notifications.received', notification);
+ };
+
+ //Connect to the server
+ abp.signalr.connect = function() {
+ $.connection.hub.start().done(function () {
+ abp.log.debug('Connected to SignalR server!'); //TODO: Remove log
+ abp.event.trigger('abp.signalr.connected');
+ commonHub.server.register().done(function () {
+ abp.log.debug('Registered to the SignalR server!'); //TODO: Remove log
+ });
+ });
+ };
+
+ if (abp.signalr.autoConnect === undefined) {
+ abp.signalr.autoConnect = true;
+ }
+
+ if (abp.signalr.autoConnect) {
+ abp.signalr.connect();
+ }
+
+})(jQuery);
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.sweet-alert.js b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.sweet-alert.js
index cbafd9b..fee004b 100644
--- a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.sweet-alert.js
+++ b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.sweet-alert.js
@@ -97,7 +97,7 @@
return $.Deferred(function ($dfd) {
sweetAlert(opts, function (isConfirmed) {
callback && callback(isConfirmed);
- $dfd.resolve();
+ $dfd.resolve(isConfirmed);
});
});
};
diff --git a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.toastr.js b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.toastr.js
index 2f66365..01b29cd 100644
--- a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.toastr.js
+++ b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/abp.toastr.js
@@ -11,24 +11,24 @@
/* NOTIFICATION *********************************************/
- var showNotification = function (type, message, title) {
- toastr[type](message, title);
+ var showNotification = function (type, message, title, options) {
+ toastr[type](message, title, options);
};
- abp.notify.success = function (message, title) {
- showNotification('success', message, title);
+ abp.notify.success = function (message, title, options) {
+ showNotification('success', message, title, options);
};
- abp.notify.info = function (message, title) {
- showNotification('info', message, title);
+ abp.notify.info = function (message, title, options) {
+ showNotification('info', message, title, options);
};
- abp.notify.warn = function (message, title) {
- showNotification('warning', message, title);
+ abp.notify.warn = function (message, title, options) {
+ showNotification('warning', message, title, options);
};
- abp.notify.error = function (message, title) {
- showNotification('error', message, title);
+ abp.notify.error = function (message, title, options) {
+ showNotification('error', message, title, options);
};
})();
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/angularjs/abp.ng.js b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/angularjs/abp.ng.js
index 382274d..821116c 100644
--- a/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/angularjs/abp.ng.js
+++ b/src/ModuleZeroSampleProject.Web/Abp/Framework/scripts/libs/angularjs/abp.ng.js
@@ -8,41 +8,66 @@
abp.ng.http = {
defaultError: {
- message: 'Ajax request did not succeed!',
+ message: 'An error has occurred!',
details: 'Error detail not sent by server.'
},
+ defaultError401: {
+ message: 'You are not authenticated!',
+ details: 'You should be authenticated (sign in) in order to perform this operation.'
+ },
+
+ defaultError403: {
+ message: 'You are not authorized!',
+ details: 'You are not allowed to perform this operation.'
+ },
+
logError: function (error) {
abp.log.error(error);
},
showError: function (error) {
if (error.details) {
- return abp.message.error(error.details, error.message);
+ return abp.message.error(error.details, error.message || abp.ng.http.defaultError.message);
} else {
- return abp.message.error(error.message);
+ return abp.message.error(error.message || abp.ng.http.defaultError.message);
}
},
handleTargetUrl: function (targetUrl) {
- location.href = targetUrl;
+ if (!targetUrl) {
+ location.href = abp.appPath;
+ } else {
+ location.href = targetUrl;
+ }
+ },
+
+ handleNonAbpErrorResponse: function (response, defer) {
+ switch (response.status) {
+ case 401:
+ abp.ng.http.handleUnAuthorizedRequest(
+ abp.ng.http.showError(abp.ng.http.defaultError401),
+ abp.appPath
+ );
+ break;
+ case 403:
+ abp.ng.http.showError(abp.ajax.defaultError403);
+ break;
+ default:
+ abp.ng.http.showError(abp.ng.http.defaultError);
+ break;
+ }
+
+ defer.reject(response);
},
handleUnAuthorizedRequest: function (messagePromise, targetUrl) {
if (messagePromise) {
messagePromise.done(function () {
- if (!targetUrl) {
- location.reload();
- } else {
- abp.ng.http.handleTargetUrl(targetUrl);
- }
+ abp.ng.http.handleTargetUrl(targetUrl || abp.appPath);
});
} else {
- if (!targetUrl) {
- location.reload();
- } else {
- abp.ng.http.handleTargetUrl(targetUrl);
- }
+ abp.ng.http.handleTargetUrl(targetUrl || abp.appPath);
}
},
@@ -56,7 +81,7 @@
if (originalData.targetUrl) {
abp.ng.http.handleTargetUrl(originalData.targetUrl);
}
- } else if(originalData.success === false) {
+ } else if (originalData.success === false) {
var messagePromise = null;
if (originalData.error) {
@@ -70,9 +95,11 @@
response.data = originalData.error;
defer.reject(response);
- if (originalData.unAuthorizedRequest) {
+ if (response.status == 401) {
abp.ng.http.handleUnAuthorizedRequest(messagePromise, originalData.targetUrl);
}
+ } else { //not wrapped result
+ defer.resolve(response);
}
}
}
@@ -94,29 +121,26 @@
},
'response': function (response) {
- if (!response.config || !response.config.abp || !response.data) {
+ if (!response.data || !response.data.__abp) {
+ //Non ABP related return value
return response;
}
var defer = $q.defer();
-
abp.ng.http.handleResponse(response, defer);
-
return defer.promise;
},
'responseError': function (ngError) {
- var error = {
- message: ngError.data,
- details: ngError.statusText,
- responseError: true
- }
-
- abp.ng.http.showError(error);
+ var defer = $q.defer();
- abp.ng.http.logError(error);
+ if (!ngError.data || !ngError.data.__abp) {
+ abp.ng.http.handleNonAbpErrorResponse(ngError, defer);
+ } else {
+ abp.ng.http.handleResponse(ngError, defer);
+ }
- return $q.reject(ngError);
+ return defer.promise;
}
};
@@ -132,4 +156,13 @@
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
+ abp.event.on('abp.dynamicScriptsInitialized', function () {
+ abp.ng.http.defaultError.message = abp.localization.abpWeb('DefaultError');
+ abp.ng.http.defaultError.details = abp.localization.abpWeb('DefaultErrorDetail');
+ abp.ng.http.defaultError401.message = abp.localization.abpWeb('DefaultError401');
+ abp.ng.http.defaultError401.details = abp.localization.abpWeb('DefaultErrorDetail401');
+ abp.ng.http.defaultError403.message = abp.localization.abpWeb('DefaultError403');
+ abp.ng.http.defaultError403.details = abp.localization.abpWeb('DefaultErrorDetail403');
+ });
+
})((abp || (abp = {})), (angular || undefined));
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Web/Abp/Framework/styles/abp.mixings.css.map b/src/ModuleZeroSampleProject.Web/Abp/Framework/styles/abp.mixings.css.map
new file mode 100644
index 0000000..5f28270
--- /dev/null
+++ b/src/ModuleZeroSampleProject.Web/Abp/Framework/styles/abp.mixings.css.map
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Web/App_Start/ModuleZeroSampleProjectWebModule.cs b/src/ModuleZeroSampleProject.Web/App_Start/ModuleZeroSampleProjectWebModule.cs
index 7065fa2..7bae2e3 100644
--- a/src/ModuleZeroSampleProject.Web/App_Start/ModuleZeroSampleProjectWebModule.cs
+++ b/src/ModuleZeroSampleProject.Web/App_Start/ModuleZeroSampleProjectWebModule.cs
@@ -4,12 +4,17 @@
using System.Web.Optimization;
using System.Web.Routing;
using Abp.Localization;
-using Abp.Localization.Sources.Xml;
+using Abp.Localization.Dictionaries;
+using Abp.Localization.Dictionaries.Xml;
using Abp.Modules;
+using Abp.Web.Mvc;
namespace ModuleZeroSampleProject.Web
{
- [DependsOn(typeof(ModuleZeroSampleProjectDataModule), typeof(ModuleZeroSampleProjectApplicationModule), typeof(ModuleZeroSampleProjectWebApiModule))]
+ [DependsOn(
+ typeof(ModuleZeroSampleProjectDataModule),
+ typeof(ModuleZeroSampleProjectWebApiModule),
+ typeof(AbpWebMvcModule))]
public class ModuleZeroSampleProjectWebModule : AbpModule
{
public override void PreInitialize()
@@ -19,12 +24,12 @@ public override void PreInitialize()
Configuration.Localization.Languages.Add(new LanguageInfo("tr", "Türkçe", "famfamfam-flag-tr"));
//Add/remove localization sources here
- Configuration.Localization.Sources.Add(
- new XmlLocalizationSource(
- ModuleZeroSampleProjectConsts.LocalizationSourceName,
+ Configuration.Localization.Sources.Add(new DictionaryBasedLocalizationSource(
+ ModuleZeroSampleProjectConsts.LocalizationSourceName,
+ new XmlFileLocalizationDictionaryProvider(
HttpContext.Current.Server.MapPath("~/Localization/ModuleZeroSampleProject")
)
- );
+ ));
//Configure navigation/menu
Configuration.Navigation.Providers.Add();
diff --git a/src/ModuleZeroSampleProject.Web/Global.asax.cs b/src/ModuleZeroSampleProject.Web/Global.asax.cs
index 15cf7fd..a9ec12b 100644
--- a/src/ModuleZeroSampleProject.Web/Global.asax.cs
+++ b/src/ModuleZeroSampleProject.Web/Global.asax.cs
@@ -1,15 +1,18 @@
using System;
-using Abp.Dependency;
using Abp.Web;
using Castle.Facilities.Logging;
namespace ModuleZeroSampleProject.Web
{
- public class MvcApplication : AbpWebApplication
+ public class MvcApplication : AbpWebApplication
{
protected override void Application_Start(object sender, EventArgs e)
{
- IocManager.Instance.IocContainer.AddFacility(f => f.UseLog4Net().WithConfig("log4net.config"));
+ AbpBootstrapper.IocManager
+ .IocContainer
+ .AddFacility(f => f.UseLog4Net()
+ .WithConfig("log4net.config"));
+
base.Application_Start(sender, e);
}
}
diff --git a/src/ModuleZeroSampleProject.Web/ModuleZeroSampleProject.Web.csproj b/src/ModuleZeroSampleProject.Web/ModuleZeroSampleProject.Web.csproj
index 2c7623f..db929b7 100644
--- a/src/ModuleZeroSampleProject.Web/ModuleZeroSampleProject.Web.csproj
+++ b/src/ModuleZeroSampleProject.Web/ModuleZeroSampleProject.Web.csproj
@@ -14,7 +14,7 @@
Properties
ModuleZeroSampleProject.Web
ModuleZeroSampleProject.Web
- v4.5.1
+ v4.5.2
true
@@ -23,6 +23,8 @@
..\
true
1.0
+
+
true
@@ -42,32 +44,40 @@
4
-
- ..\packages\Abp.0.7.3.0\lib\net451\Abp.dll
+
+ ..\packages\Abp.0.10.1.0\lib\net452\Abp.dll
True
-
- ..\packages\Abp.EntityFramework.0.7.2.0\lib\net451\Abp.EntityFramework.dll
+
+ ..\packages\Abp.EntityFramework.0.10.1.0\lib\net452\Abp.EntityFramework.dll
True
-
- ..\packages\Abp.Web.0.7.3.0\lib\net451\Abp.Web.dll
+
+ ..\packages\Abp.EntityFramework.Common.0.10.1.0\lib\net452\Abp.EntityFramework.Common.dll
True
-
- ..\packages\Abp.Web.Api.0.7.2.0\lib\net451\Abp.Web.Api.dll
+
+ ..\packages\Abp.Web.0.10.1.0\lib\net452\Abp.Web.dll
True
-
- ..\packages\Abp.Web.Mvc.0.7.2.0\lib\net451\Abp.Web.Mvc.dll
+
+ ..\packages\Abp.Web.Api.0.10.1.0\lib\net452\Abp.Web.Api.dll
True
-
- ..\packages\Abp.Zero.0.7.3.0\lib\net451\Abp.Zero.dll
+
+ ..\packages\Abp.Web.Common.0.10.1.0\lib\net452\Abp.Web.Common.dll
True
-
- ..\packages\Abp.Zero.EntityFramework.0.7.3.0\lib\net451\Abp.Zero.EntityFramework.dll
+
+ ..\packages\Abp.Web.Mvc.0.10.1.0\lib\net452\Abp.Web.Mvc.dll
+ True
+
+
+ ..\packages\Abp.Zero.0.10.1.0\lib\net452\Abp.Zero.dll
+ True
+
+
+ ..\packages\Abp.Zero.EntityFramework.0.10.1.0\lib\net452\Abp.Zero.EntityFramework.dll
True
@@ -91,8 +101,8 @@
..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll
True
-
- ..\packages\EntityFramework.DynamicFilters.1.4.1\lib\net40\EntityFramework.DynamicFilters.dll
+
+ ..\packages\EntityFramework.DynamicFilters.1.4.11\lib\net40\EntityFramework.DynamicFilters.dll
True
@@ -132,8 +142,8 @@
False
..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll
-
- ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll
+
+ ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
@@ -151,22 +161,24 @@
..\packages\Owin.1.0\lib\net40\Owin.dll
-
- ..\packages\Microsoft.Bcl.Immutable.1.0.34\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+
+ ..\packages\System.Collections.Immutable.1.2.0\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+ True
+
False
..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll
+
+
-
-
False
@@ -203,13 +215,13 @@
False
..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll
-
+
..\packages\WebGrease.1.6.0\lib\WebGrease.dll
@@ -224,6 +236,8 @@
+
+
@@ -722,6 +736,7 @@
+
@@ -755,7 +770,9 @@
-
+
+ Designer
+
@@ -787,7 +804,9 @@
Web.config
-
+
+
+
{EDF5D964-4C0F-4F19-B674-58A38A5E5401}
@@ -806,9 +825,6 @@
ModuleZeroSampleProject.WebApi
-
-
-
10.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
diff --git a/src/ModuleZeroSampleProject.Web/Web.config b/src/ModuleZeroSampleProject.Web/Web.config
index 7408f53..7746853 100644
--- a/src/ModuleZeroSampleProject.Web/Web.config
+++ b/src/ModuleZeroSampleProject.Web/Web.config
@@ -6,7 +6,8 @@
-
+
+
@@ -22,11 +23,19 @@
+
-
+
-
+
@@ -40,7 +49,7 @@
-
+
@@ -92,15 +101,13 @@
-
-
-
+
-
-
+
+
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.Web/packages.config b/src/ModuleZeroSampleProject.Web/packages.config
index 2eeaae2..bb581af 100644
--- a/src/ModuleZeroSampleProject.Web/packages.config
+++ b/src/ModuleZeroSampleProject.Web/packages.config
@@ -1,13 +1,15 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -18,7 +20,7 @@
-
+
@@ -45,9 +47,10 @@
-
+
+
\ No newline at end of file
diff --git a/src/ModuleZeroSampleProject.WebApi/ModuleZeroSampleProject.WebApi.csproj b/src/ModuleZeroSampleProject.WebApi/ModuleZeroSampleProject.WebApi.csproj
index d92bfd9..399462f 100644
--- a/src/ModuleZeroSampleProject.WebApi/ModuleZeroSampleProject.WebApi.csproj
+++ b/src/ModuleZeroSampleProject.WebApi/ModuleZeroSampleProject.WebApi.csproj
@@ -9,10 +9,11 @@
Properties
ModuleZeroSampleProject
ModuleZeroSampleProject.WebApi
- v4.5.1
+ v4.5.2
512
..\
true
+
true
@@ -32,16 +33,20 @@
4
-
- ..\packages\Abp.0.7.3.0\lib\net451\Abp.dll
+
+ ..\packages\Abp.0.10.1.0\lib\net452\Abp.dll
True
-
- ..\packages\Abp.Web.0.7.3.0\lib\net451\Abp.Web.dll
+
+ ..\packages\Abp.Web.0.10.1.0\lib\net452\Abp.Web.dll
True
-
- ..\packages\Abp.Web.Api.0.7.2.0\lib\net451\Abp.Web.Api.dll
+
+ ..\packages\Abp.Web.Api.0.10.1.0\lib\net452\Abp.Web.Api.dll
+ True
+
+
+ ..\packages\Abp.Web.Common.0.10.1.0\lib\net452\Abp.Web.Common.dll
True
@@ -56,8 +61,8 @@
False
..\packages\Castle.Windsor.3.3.0\lib\net45\Castle.Windsor.dll
-
- ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll
+
+ ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
@@ -73,16 +78,21 @@
True
-
- False
- ..\packages\Microsoft.Bcl.Immutable.1.0.34\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+
+ ..\packages\System.Collections.Immutable.1.2.0\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+ True
+
+
False
..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll
+
+
+
False
..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll
diff --git a/src/ModuleZeroSampleProject.WebApi/app.config b/src/ModuleZeroSampleProject.WebApi/app.config
index 26246ca..88c9590 100644
--- a/src/ModuleZeroSampleProject.WebApi/app.config
+++ b/src/ModuleZeroSampleProject.WebApi/app.config
@@ -4,7 +4,7 @@
-
+
@@ -28,4 +28,4 @@
-
\ No newline at end of file
+
diff --git a/src/ModuleZeroSampleProject.WebApi/packages.config b/src/ModuleZeroSampleProject.WebApi/packages.config
index 8941b01..6930363 100644
--- a/src/ModuleZeroSampleProject.WebApi/packages.config
+++ b/src/ModuleZeroSampleProject.WebApi/packages.config
@@ -1,8 +1,9 @@
-
-
-
+
+
+
+
@@ -11,6 +12,7 @@
-
+
+
\ No newline at end of file
diff --git a/src/Tests/ModuleZeroSampleProject.Tests/App.config b/src/Tests/ModuleZeroSampleProject.Tests/App.config
index 01f6c9b..d16432c 100644
--- a/src/Tests/ModuleZeroSampleProject.Tests/App.config
+++ b/src/Tests/ModuleZeroSampleProject.Tests/App.config
@@ -1,13 +1,13 @@
-
+
-
+
-
+
-
+
-
\ No newline at end of file
+
diff --git a/src/Tests/ModuleZeroSampleProject.Tests/ModuleZeroSampleProject.Tests.csproj b/src/Tests/ModuleZeroSampleProject.Tests/ModuleZeroSampleProject.Tests.csproj
index 4bcb32d..0655c33 100644
--- a/src/Tests/ModuleZeroSampleProject.Tests/ModuleZeroSampleProject.Tests.csproj
+++ b/src/Tests/ModuleZeroSampleProject.Tests/ModuleZeroSampleProject.Tests.csproj
@@ -11,11 +11,12 @@
Properties
ModuleZeroSampleProject.Tests
ModuleZeroSampleProject.Tests
- v4.5.1
+ v4.5.2
512
..\..\
true
c81961d9
+
true
@@ -35,24 +36,28 @@
4
-
- ..\..\packages\Abp.0.7.3.0\lib\net451\Abp.dll
+
+ ..\..\packages\Abp.0.10.1.0\lib\net452\Abp.dll
True
-
- ..\..\packages\Abp.EntityFramework.0.7.2.0\lib\net451\Abp.EntityFramework.dll
+
+ ..\..\packages\Abp.EntityFramework.0.10.1.0\lib\net452\Abp.EntityFramework.dll
True
-
- ..\..\packages\Abp.TestBase.0.2.2.0\lib\net451\Abp.TestBase.dll
+
+ ..\..\packages\Abp.EntityFramework.Common.0.10.1.0\lib\net452\Abp.EntityFramework.Common.dll
True
-
- ..\..\packages\Abp.Zero.0.7.3.0\lib\net451\Abp.Zero.dll
+
+ ..\..\packages\Abp.TestBase.0.10.1.0\lib\net452\Abp.TestBase.dll
True
-
- ..\..\packages\Abp.Zero.EntityFramework.0.7.3.0\lib\net451\Abp.Zero.EntityFramework.dll
+
+ ..\..\packages\Abp.Zero.0.10.1.0\lib\net452\Abp.Zero.dll
+ True
+
+
+ ..\..\packages\Abp.Zero.EntityFramework.0.10.1.0\lib\net452\Abp.Zero.EntityFramework.dll
True
@@ -64,14 +69,15 @@
..\..\packages\Castle.Windsor.3.3.0\lib\net45\Castle.Windsor.dll
-
- ..\..\packages\Effort.EF6.1.1.4\lib\net45\Effort.dll
+
+ ..\..\packages\Effort.EF6.1.1.5\lib\net45\Effort.dll
+ True
..\..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll
-
- ..\..\packages\EntityFramework.DynamicFilters.1.4.1\lib\net40\EntityFramework.DynamicFilters.dll
+
+ ..\..\packages\EntityFramework.DynamicFilters.1.4.11\lib\net40\EntityFramework.DynamicFilters.dll
True
@@ -81,8 +87,8 @@
False
..\..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll
-
- ..\..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll
+
+ ..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
@@ -97,19 +103,23 @@
..\..\packages\Nito.AsyncEx.3.0.1\lib\net45\Nito.AsyncEx.Enlightenment.dll
True
-
- ..\..\packages\NMemory.1.1.0\lib\net45\NMemory.dll
+
+ ..\..\packages\NMemory.1.1.2\lib\net45\NMemory.dll
+ True
-
- False
- ..\..\packages\Shouldly.2.5.0\lib\net40\Shouldly.dll
+
+ ..\..\packages\Shouldly.2.8.0\lib\net40\Shouldly.dll
+ True
-
- ..\..\packages\Microsoft.Bcl.Immutable.1.0.34\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+
+ ..\..\packages\System.Collections.Immutable.1.2.0\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+ True
+
+
@@ -130,6 +140,7 @@
+
diff --git a/src/Tests/ModuleZeroSampleProject.Tests/SampleProjectTestBase.cs b/src/Tests/ModuleZeroSampleProject.Tests/SampleProjectTestBase.cs
index 602a76b..7932db2 100644
--- a/src/Tests/ModuleZeroSampleProject.Tests/SampleProjectTestBase.cs
+++ b/src/Tests/ModuleZeroSampleProject.Tests/SampleProjectTestBase.cs
@@ -1,8 +1,5 @@
using System;
using System.Data.Common;
-using System.Linq;
-using Abp.Collections;
-using Abp.Modules;
using Abp.TestBase;
using Castle.MicroKernel.Registration;
using ModuleZeroSampleProject.EntityFramework;
@@ -10,7 +7,7 @@
namespace ModuleZeroSampleProject.Tests
{
- public abstract class SampleProjectTestBase : AbpIntegratedTestBase
+ public abstract class SampleProjectTestBase : AbpIntegratedTestBase
{
protected SampleProjectTestBase()
{
@@ -27,13 +24,6 @@ protected SampleProjectTestBase()
AbpSession.TenantId = 1;
}
- protected override void AddModules(ITypeList modules)
- {
- base.AddModules(modules);
- modules.Add();
- modules.Add();
- }
-
public void UsingDbContext(Action action)
{
using (var context = LocalIocManager.Resolve())
diff --git a/src/Tests/ModuleZeroSampleProject.Tests/SampleProjectTestModule.cs b/src/Tests/ModuleZeroSampleProject.Tests/SampleProjectTestModule.cs
new file mode 100644
index 0000000..c513a41
--- /dev/null
+++ b/src/Tests/ModuleZeroSampleProject.Tests/SampleProjectTestModule.cs
@@ -0,0 +1,15 @@
+using Abp.Modules;
+using Abp.TestBase;
+
+namespace ModuleZeroSampleProject.Tests
+{
+ [DependsOn(
+ typeof(AbpTestBaseModule),
+ typeof(ModuleZeroSampleProjectApplicationModule),
+ typeof(ModuleZeroSampleProjectDataModule)
+ )]
+ public class SampleProjectTestModule : AbpModule
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/src/Tests/ModuleZeroSampleProject.Tests/packages.config b/src/Tests/ModuleZeroSampleProject.Tests/packages.config
index c2f6cdb..3c43925 100644
--- a/src/Tests/ModuleZeroSampleProject.Tests/packages.config
+++ b/src/Tests/ModuleZeroSampleProject.Tests/packages.config
@@ -1,22 +1,24 @@
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
-
+
-
-
+
+
+