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 @@  - - - - - + + + + + + - + - + - + - - + + +