pull/1940/head
mehmet-erim 6 years ago
commit 8b4cd2b2aa

@ -1,6 +1,4 @@
using System;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Hosting;
namespace Microsoft.Extensions.DependencyInjection
{
@ -10,19 +8,5 @@ namespace Microsoft.Extensions.DependencyInjection
{
return services.GetSingletonInstance<IWebHostEnvironment>();
}
[Obsolete]
public static IConfigurationRoot BuildConfiguration(this IServiceCollection services, AbpConfigurationBuilderOptions options = null)
{
return services.GetHostingEnvironment().BuildConfiguration(options);
}
[Obsolete]
public static IConfigurationRoot AddConfiguration(this IServiceCollection services, AbpConfigurationBuilderOptions options = null)
{
var configuration = services.BuildConfiguration(options);
services.SetConfiguration(configuration);
return configuration;
}
}
}

@ -29,11 +29,6 @@ namespace Volo.Abp.AspNetCore
)]
public class AbpAspNetCoreModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddConfiguration();
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpAuditingOptions>(options =>

@ -1,32 +0,0 @@
using Microsoft.Extensions.Caching.Distributed;
using System;
using System.Collections.Generic;
namespace Volo.Abp.Caching
{
public class AbpCacheOptions
{
/// <summary>
/// Cache key prefix.
/// </summary>
public string KeyPrefix { get; set; }
/// <summary>
/// Global Cache entry options.
/// </summary>
public DistributedCacheEntryOptions GlobalCacheEntryOptions { get; set; }
/// <summary>
/// List of all cache configurators.
/// (func argument:Name of cache)
/// </summary>
public List<Func<string, DistributedCacheEntryOptions>> CacheConfigurators { get; set; } //TODO list item use a configurator interface instead?
public AbpCacheOptions()
{
CacheConfigurators = new List<Func<string, DistributedCacheEntryOptions>>();
GlobalCacheEntryOptions = new DistributedCacheEntryOptions();
KeyPrefix = "";
}
}
}

@ -22,7 +22,7 @@ namespace Volo.Abp.Caching
context.Services.AddSingleton(typeof(IDistributedCache<>), typeof(DistributedCache<>));
context.Services.Configure<AbpCacheOptions>(cacheOptions =>
context.Services.Configure<AbpDistributedCacheOptions>(cacheOptions =>
{
cacheOptions.GlobalCacheEntryOptions.SlidingExpiration = TimeSpan.FromMinutes(20);
});

@ -1,4 +1,8 @@
namespace Volo.Abp.Caching
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Caching.Distributed;
namespace Volo.Abp.Caching
{
public class AbpDistributedCacheOptions
{
@ -6,5 +10,28 @@
/// Throw or hide exceptions for the distributed cache.
/// </summary>
public bool HideErrors { get; set; } = true;
/// <summary>
/// Cache key prefix.
/// </summary>
public string KeyPrefix { get; set; }
/// <summary>
/// Global Cache entry options.
/// </summary>
public DistributedCacheEntryOptions GlobalCacheEntryOptions { get; set; }
/// <summary>
/// List of all cache configurators.
/// (func argument:Name of cache)
/// </summary>
public List<Func<string, DistributedCacheEntryOptions>> CacheConfigurators { get; set; } //TODO: use a configurator interface instead?
public AbpDistributedCacheOptions()
{
CacheConfigurators = new List<Func<string, DistributedCacheEntryOptions>>();
GlobalCacheEntryOptions = new DistributedCacheEntryOptions();
KeyPrefix = "";
}
}
}

@ -36,12 +36,12 @@ namespace Volo.Abp.Caching
protected DistributedCacheEntryOptions DefaultCacheOptions;
private readonly AbpCacheOptions _cacheOption;
private readonly AbpDistributedCacheOptions _cacheOption;
private readonly AbpDistributedCacheOptions _distributedCacheOption;
public DistributedCache(
IOptions<AbpCacheOptions> cacheOption,
IOptions<AbpDistributedCacheOptions> cacheOption,
IOptions<AbpDistributedCacheOptions> distributedCacheOption,
IDistributedCache cache,
ICancellationTokenProvider cancellationTokenProvider,

@ -35,5 +35,10 @@ namespace Microsoft.Extensions.Configuration
/// Prefix for the environment variables.
/// </summary>
public string EnvironmentVariablesPrefix { get; set; }
/// <summary>
/// Command line arguments.
/// </summary>
public string[] CommandLineArgs { get; set; }
}
}

@ -5,7 +5,8 @@ namespace Microsoft.Extensions.Configuration
{
public static class ConfigurationHelper
{
public static IConfigurationRoot BuildConfiguration(AbpConfigurationBuilderOptions options = null)
public static IConfigurationRoot BuildConfiguration(
AbpConfigurationBuilderOptions options = null)
{
options = options ?? new AbpConfigurationBuilderOptions();
@ -22,8 +23,6 @@ namespace Microsoft.Extensions.Configuration
{
builder = builder.AddJsonFile($"{options.FileName}.{options.EnvironmentName}.json", optional: true, reloadOnChange: true);
}
builder = builder.AddEnvironmentVariables(options.EnvironmentVariablesPrefix);
if (options.EnvironmentName == "Development")
{
@ -37,6 +36,13 @@ namespace Microsoft.Extensions.Configuration
}
}
builder = builder.AddEnvironmentVariables(options.EnvironmentVariablesPrefix);
if (options.CommandLineArgs != null)
{
builder = builder.AddCommandLine(options.CommandLineArgs);
}
return builder.Build();
}
}

@ -1,20 +1,17 @@
using System;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Hosting;
using Volo.Abp.Configuration;
namespace Microsoft.Extensions.DependencyInjection
{
public static class ServiceCollectionConfigurationExtensions
{
[Obsolete]
public static IServiceCollection SetConfiguration(this IServiceCollection services, IConfigurationRoot configurationRoot)
public static IServiceCollection ReplaceConfiguration(this IServiceCollection services, IConfiguration configuration)
{
return services.Replace(ServiceDescriptor.Singleton<IConfigurationAccessor>(new DefaultConfigurationAccessor(configurationRoot)));
return services.Replace(ServiceDescriptor.Singleton<IConfiguration>(configuration));
}
public static IConfigurationRoot GetConfiguration(this IServiceCollection services)
public static IConfiguration GetConfiguration(this IServiceCollection services)
{
var hostBuilderContext = services.GetSingletonInstanceOrNull<HostBuilderContext>();
if (hostBuilderContext?.Configuration != null)
@ -22,7 +19,7 @@ namespace Microsoft.Extensions.DependencyInjection
return hostBuilderContext.Configuration as IConfigurationRoot;
}
return services.GetSingletonInstance<IConfigurationAccessor>().Configuration;
return services.GetSingletonInstance<IConfiguration>();
}
}
}

@ -17,6 +17,7 @@
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.0.0" />

@ -1,23 +0,0 @@
using Microsoft.Extensions.Configuration;
namespace Volo.Abp.Configuration
{
public class DefaultConfigurationAccessor : IConfigurationAccessor
{
public static DefaultConfigurationAccessor Empty { get; }
public virtual IConfigurationRoot Configuration { get; }
static DefaultConfigurationAccessor()
{
Empty = new DefaultConfigurationAccessor(
new ConfigurationBuilder().Build()
);
}
public DefaultConfigurationAccessor(IConfigurationRoot configuration)
{
Configuration = configuration;
}
}
}

@ -1,11 +0,0 @@
using System;
using Microsoft.Extensions.Configuration;
namespace Volo.Abp.Configuration
{
[Obsolete("IConfigurationAccessor will be removed in v1.0. Use IConfiguration instead (be use that you are using generic host just like the startup templates).")]
public interface IConfigurationAccessor
{
IConfigurationRoot Configuration { get; }
}
}

@ -1,7 +1,6 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Volo.Abp.Configuration;
using Volo.Abp.Modularity;
using Volo.Abp.Reflection;
@ -24,17 +23,13 @@ namespace Volo.Abp.Internal
var assemblyFinder = new AssemblyFinder(abpApplication);
var typeFinder = new TypeFinder(assemblyFinder);
var configurationAccessor = new DefaultConfigurationAccessor(
ConfigurationHelper.BuildConfiguration(
applicationCreationOptions.Configuration
)
);
services.TryAddSingleton<IConfigurationAccessor>(configurationAccessor);
if (!services.IsAdded<IConfiguration>())
{
services.AddSingleton<IConfiguration>(configurationAccessor.Configuration);
services.ReplaceConfiguration(
ConfigurationHelper.BuildConfiguration(
applicationCreationOptions.Configuration
)
);
}
services.TryAddSingleton<IModuleLoader>(moduleLoader);

@ -1,4 +1,6 @@
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
using Volo.Abp.DependencyInjection;
@ -8,16 +10,31 @@ namespace SimpleConsoleDemo
{
class Program
{
static void Main(string[] args)
static async Task Main(string[] args)
{
using (var application = AbpApplicationFactory.Create<MyConsoleModule>(options =>
{
options.Configuration.CommandLineArgs = args;
options.UseAutofac();
}))
{
Console.WriteLine("Initializing the application...");
application.Initialize();
Console.WriteLine("Initializing the application... OK");
Console.WriteLine("ABP initialized... Press ENTER to exit!");
Console.WriteLine("Checking configuration...");
var configuration = application.ServiceProvider.GetRequiredService<IConfiguration>();
if (configuration["AppSettingKey1"] != "AppSettingValue1")
{
Console.WriteLine("ERROR: Could not read the configuration!");
Console.WriteLine("Press ENTER to exit!");
Console.ReadLine();
return;
}
Console.WriteLine();
Console.WriteLine("Checking configuration... OK");
var writers = application.ServiceProvider.GetServices<IMessageWriter>();
foreach (var writer in writers)
@ -25,6 +42,9 @@ namespace SimpleConsoleDemo
writer.Write();
}
Console.WriteLine();
Console.WriteLine("Press ENTER to exit!");
Console.ReadLine();
}
}

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
@ -6,7 +6,23 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Volo.Abp.Core\Volo.Abp.Core.csproj" />
<None Remove="appsettings.json" />
</ItemGroup>
<ItemGroup>
<Content Include="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,3 @@
{
"AppSettingKey1": "AppSettingValue1"
}

@ -9,7 +9,7 @@ namespace Volo.Abp.Caching
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpCacheOptions>(option =>
Configure<AbpDistributedCacheOptions>(option =>
{
option.CacheConfigurators.Add(cacheName =>
{

@ -30,7 +30,7 @@ namespace Volo.Abp.Configuration
using (var application = AbpApplicationFactory.Create<IndependentEmptyModule>())
{
var myConfiguration = new ConfigurationBuilder().Build();
application.Services.SetConfiguration(myConfiguration);
application.Services.ReplaceConfiguration(myConfiguration);
application.Services.GetConfiguration().ShouldBe(myConfiguration);
application.Initialize();
@ -41,12 +41,11 @@ namespace Volo.Abp.Configuration
}
}
private static IConfigurationRoot ResolveConfiguration(IAbpApplication application)
private static IConfiguration ResolveConfiguration(IAbpApplication application)
{
return application
.ServiceProvider
.GetRequiredService<IConfigurationAccessor>()
.Configuration;
.GetRequiredService<IConfiguration>();
}
}
}

@ -1,7 +1,6 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Localization;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Components;
using Volo.Abp.Configuration;
using Volo.Abp.DependencyInjection;
using Volo.Docs.Localization;

@ -1,5 +1,5 @@
{
"version": "0.9.1",
"version": "0.9.2",
"packages": [
"ng-packs/dist/*",
"packs/*"

@ -1,6 +1,6 @@
{
"name": "@abp/ng.account.config",
"version": "0.9.1",
"version": "0.9.2",
"publishConfig": {
"access": "public"
},

@ -1,9 +1,9 @@
{
"name": "@abp/ng.account",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.account.config": "^0.9.1",
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.account.config": "^0.9.2",
"@abp/ng.theme.shared": "^0.9.2",
"tslib": "^1.9.0"
},
"publishConfig": {

@ -1,6 +1,6 @@
{
"name": "@abp/ng.core",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@ngxs/router-plugin": "^3.5.0",
"@ngxs/storage-plugin": "^3.5.0",

@ -1,8 +1,8 @@
{
"name": "@abp/ng.feature-management",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.theme.shared": "^0.9.2",
"tslib": "^1.9.0"
},
"publishConfig": {

@ -1,6 +1,6 @@
{
"name": "@abp/ng.identity.config",
"version": "0.9.1",
"version": "0.9.2",
"publishConfig": {
"access": "public"
},

@ -1,10 +1,10 @@
{
"name": "@abp/ng.identity",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.identity.config": "^0.9.1",
"@abp/ng.permission-management": "^0.9.1",
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.identity.config": "^0.9.2",
"@abp/ng.permission-management": "^0.9.2",
"@abp/ng.theme.shared": "^0.9.2",
"tslib": "^1.9.0"
},
"publishConfig": {

@ -1,8 +1,8 @@
{
"name": "@abp/ng.permission-management",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.theme.shared": "^0.9.2",
"tslib": "^1.9.0"
},
"publishConfig": {

@ -1,6 +1,6 @@
{
"name": "@abp/ng.setting-management.config",
"version": "0.9.1",
"version": "0.9.2",
"publishConfig": {
"access": "public"
},

@ -1,9 +1,9 @@
{
"name": "@abp/ng.setting-management",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.setting-management.config": "^0.9.1",
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.setting-management.config": "^0.9.2",
"@abp/ng.theme.shared": "^0.9.2",
"tslib": "^1.9.0"
},
"publishConfig": {

@ -1,6 +1,6 @@
{
"name": "@abp/ng.tenant-management.config",
"version": "0.9.1",
"version": "0.9.2",
"publishConfig": {
"access": "public"
},

@ -1,10 +1,10 @@
{
"name": "@abp/ng.tenant-management",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.feature-management": "^0.9.1",
"@abp/ng.tenant-management.config": "^0.9.1",
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.feature-management": "^0.9.2",
"@abp/ng.tenant-management.config": "^0.9.2",
"@abp/ng.theme.shared": "^0.9.2",
"tslib": "^1.9.0"
},
"publishConfig": {

@ -1,8 +1,8 @@
{
"name": "@abp/ng.theme.basic",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.theme.shared": "^0.9.2",
"tslib": "^1.9.0"
},
"publishConfig": {

@ -1,8 +1,8 @@
{
"name": "@abp/ng.theme.shared",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.core": "^0.9.1",
"@abp/ng.core": "^0.9.2",
"@angular/cdk": "^8.0.1",
"@ng-bootstrap/ng-bootstrap": "^5.1.0",
"@ngx-validate/core": "^0.0.7",

@ -1,6 +1,6 @@
{
"name": "@abp/ng.account.config",
"version": "0.9.1",
"version": "0.9.2",
"publishConfig": {
"access": "public"
}

@ -1,9 +1,9 @@
{
"name": "@abp/ng.account",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.account.config": "^0.9.1"
"@abp/ng.theme.shared": "^0.9.2",
"@abp/ng.account.config": "^0.9.2"
},
"publishConfig": {
"access": "public"

@ -1,6 +1,6 @@
{
"name": "@abp/ng.core",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@ngxs/router-plugin": "^3.5.0",
"@ngxs/storage-plugin": "^3.5.0",

@ -5,7 +5,7 @@ import { ConfigState } from '../states';
@Injectable({
providedIn: 'root',
})
export class ConfigService {
export class ConfigStateService {
constructor(private store: Store) {}
getAll() {

@ -1,6 +1,8 @@
export * from './application-configuration.service';
export * from './config.service';
export * from './config-state.service';
export * from './lazy-load.service';
export * from './localization.service';
export * from './profile.service';
export * from './rest.service';
export * from './profile-state.service';
export * from './session-state.service';

@ -0,0 +1,14 @@
import { Injectable } from '@angular/core';
import { Store } from '@ngxs/store';
import { ProfileState } from '../states';
@Injectable({
providedIn: 'root',
})
export class ProfileStateService {
constructor(private store: Store) {}
getProfile() {
return this.store.selectSnapshot(ProfileState.getProfile);
}
}

@ -0,0 +1,16 @@
import { Injectable } from '@angular/core';
import { Store } from '@ngxs/store';
import { SessionState } from '../states';
@Injectable()
export class SessionStateService {
constructor(private store: Store) {}
getLanguage() {
return this.store.selectSnapshot(SessionState.getLanguage);
}
getTenant() {
return this.store.selectSnapshot(SessionState.getTenant);
}
}

@ -17,7 +17,7 @@ export class ProfileState {
constructor(private profileService: ProfileService) {}
@Action(GetProfile)
profileGet({ patchState }: StateContext<Profile.State>) {
getProfile({ patchState }: StateContext<Profile.State>) {
return this.profileService.get().pipe(
tap(profile =>
patchState({
@ -28,7 +28,7 @@ export class ProfileState {
}
@Action(UpdateProfile)
profileUpdate({ patchState }: StateContext<Profile.State>, { payload }: UpdateProfile) {
updateProfile({ patchState }: StateContext<Profile.State>, { payload }: UpdateProfile) {
return this.profileService.update(payload).pipe(
tap(profile =>
patchState({

@ -2,7 +2,7 @@ import { createServiceFactory, SpectatorService, SpyObject } from '@ngneat/spect
import { Store } from '@ngxs/store';
import { ReplaySubject, timer, Subject, of } from 'rxjs';
import { Config } from '../models/config';
import { ApplicationConfigurationService, ConfigService } from '../services';
import { ApplicationConfigurationService, ConfigStateService } from '../services';
import { ConfigState } from '../states';
import { SetLanguage, PatchRouteByName } from '../actions';
@ -110,14 +110,14 @@ export const CONFIG_STATE_DATA = {
} as Config.State;
describe('ConfigState', () => {
let spectator: SpectatorService<ConfigService>;
let spectator: SpectatorService<ConfigStateService>;
let store: SpyObject<Store>;
let service: ConfigService;
let service: ConfigStateService;
let state: ConfigState;
let appConfigService: SpyObject<ApplicationConfigurationService>;
const createService = createServiceFactory({
service: ConfigService,
service: ConfigStateService,
mocks: [ApplicationConfigurationService, Store],
});

@ -42,7 +42,7 @@ describe('ProfileState', () => {
const spy = jest.spyOn(profileService, 'get');
spy.mockReturnValue(of(mockData as any));
state.profileGet({ patchState } as any).subscribe();
state.getProfile({ patchState } as any).subscribe();
expect(patchedData).toEqual({ profile: mockData });
});
@ -54,7 +54,7 @@ describe('ProfileState', () => {
const spy = jest.spyOn(profileService, 'update');
spy.mockReturnValue(of(mockData as any));
state.profileUpdate({ patchState } as any, { payload: mockData as any }).subscribe();
state.updateProfile({ patchState } as any, { payload: mockData as any }).subscribe();
expect(patchedData).toEqual({ profile: mockData });
});

@ -1,8 +1,8 @@
{
"name": "@abp/ng.feature-management",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1"
"@abp/ng.theme.shared": "^0.9.2"
},
"publishConfig": {
"access": "public"

@ -0,0 +1,14 @@
import { Injectable } from '@angular/core';
import { Store } from '@ngxs/store';
import { FeatureManagementState } from '../states';
@Injectable({
providedIn: 'root',
})
export class FeatureManagementStateService {
constructor(private store: Store) {}
getFeatures() {
return this.store.selectSnapshot(FeatureManagementState.getFeatures);
}
}

@ -1 +1,2 @@
export * from './feature-management.service';
export * from './feature-management-state.service';

@ -1,6 +1,6 @@
{
"name": "@abp/ng.identity.config",
"version": "0.9.1",
"version": "0.9.2",
"publishConfig": {
"access": "public"
}

@ -1,10 +1,10 @@
{
"name": "@abp/ng.identity",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.permission-management": "^0.9.1",
"@abp/ng.identity.config": "^0.9.1"
"@abp/ng.theme.shared": "^0.9.2",
"@abp/ng.permission-management": "^0.9.2",
"@abp/ng.identity.config": "^0.9.2"
},
"publishConfig": {
"access": "public"

@ -0,0 +1,23 @@
import { Injectable } from '@angular/core';
import { Store } from '@ngxs/store';
import { IdentityState } from '../states/identity.state';
@Injectable({
providedIn: 'root',
})
export class IdentityStateService {
constructor(private store: Store) {}
getRoles() {
return this.store.selectSnapshot(IdentityState.getRoles);
}
getRolesTotalCount() {
return this.store.selectSnapshot(IdentityState.getRolesTotalCount);
}
getUsers() {
return this.store.selectSnapshot(IdentityState.getUsers);
}
getUsersTotalCount() {
return this.store.selectSnapshot(IdentityState.getUsersTotalCount);
}
}

@ -0,0 +1,2 @@
export * from './identity.service';
export * from './identity-state.service';

@ -1,8 +1,8 @@
{
"name": "@abp/ng.permission-management",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1"
"@abp/ng.theme.shared": "^0.9.2"
},
"publishConfig": {
"access": "public"

@ -1 +1,2 @@
export * from './permission-management.service';
export * from './permission-management-state.service';

@ -0,0 +1,17 @@
import { Injectable } from '@angular/core';
import { Store } from '@ngxs/store';
import { PermissionManagementState } from '../states/permission-management.state';
@Injectable({
providedIn: 'root',
})
export class PermissionManagementStateService {
constructor(private store: Store) {}
getPermissionGroups() {
return this.store.selectSnapshot(PermissionManagementState.getPermissionGroups);
}
getEntityDisplayName() {
return this.store.selectSnapshot(PermissionManagementState.getPermissionGroups);
}
}

@ -1,6 +1,6 @@
{
"name": "@abp/ng.setting-management.config",
"version": "0.9.1",
"version": "0.9.2",
"publishConfig": {
"access": "public"
}

@ -1,9 +1,9 @@
{
"name": "@abp/ng.setting-management",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.setting-management.config": "^0.9.1"
"@abp/ng.theme.shared": "^0.9.2",
"@abp/ng.setting-management.config": "^0.9.2"
},
"publishConfig": {
"access": "public"

@ -1,6 +1,6 @@
{
"name": "@abp/ng.tenant-management.config",
"version": "0.9.1",
"version": "0.9.2",
"publishConfig": {
"access": "public"
}

@ -1,10 +1,10 @@
{
"name": "@abp/ng.tenant-management",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1",
"@abp/ng.feature-management": "^0.9.1",
"@abp/ng.tenant-management.config": "^0.9.1"
"@abp/ng.theme.shared": "^0.9.2",
"@abp/ng.feature-management": "^0.9.2",
"@abp/ng.tenant-management.config": "^0.9.2"
},
"publishConfig": {
"access": "public"

@ -1 +1,2 @@
export * from './tenant-management.service';
export * from './tenant-management-state.service';

@ -0,0 +1,18 @@
import { Injectable } from '@angular/core';
import { Store } from '@ngxs/store';
import { TenantManagementState } from '../states/tenant-management.state';
@Injectable({
providedIn: 'root',
})
export class TenantManagementStateService {
constructor(private store: Store) {}
getTenants() {
return this.store.selectSnapshot(TenantManagementState.get);
}
getTenantsTotalCount() {
return this.store.selectSnapshot(TenantManagementState.getTenantsTotalCount);
}
}

@ -1,8 +1,8 @@
{
"name": "@abp/ng.theme.basic",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.theme.shared": "^0.9.1"
"@abp/ng.theme.shared": "^0.9.2"
},
"publishConfig": {
"access": "public"

@ -0,0 +1,2 @@
export * from './initial.service';
export * from './layout-state.service';

@ -0,0 +1,12 @@
import { Injectable } from '@angular/core';
import { Store } from '@ngxs/store';
import { LayoutState } from '../states/layout.state';
@Injectable()
export class LayoutStateService {
constructor(private store: Store) {}
getNavigationElements() {
return this.store.selectSnapshot(LayoutState.getNavigationElements);
}
}

@ -1,8 +1,8 @@
{
"name": "@abp/ng.theme.shared",
"version": "0.9.1",
"version": "0.9.2",
"dependencies": {
"@abp/ng.core": "^0.9.1",
"@abp/ng.core": "^0.9.2",
"@angular/cdk": "^8.0.1",
"@ng-bootstrap/ng-bootstrap": "^5.1.0",
"@ngx-validate/core": "^0.0.7",

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/anchor-js",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"anchor-js": "^4.1.1"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/aspnetcore.mvc.ui.theme.basic",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.shared": "^0.9.0"
"@abp/aspnetcore.mvc.ui.theme.shared": "^0.9.2"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"
}

@ -1,24 +1,24 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/aspnetcore.mvc.ui.theme.shared",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/aspnetcore.mvc.ui": "^0.9.0",
"@abp/bootstrap": "^0.9.0",
"@abp/datatables.net-bs4": "^0.9.0",
"@abp/font-awesome": "^0.9.0",
"@abp/jquery-form": "^0.9.0",
"@abp/jquery-validation-unobtrusive": "^0.9.0",
"@abp/lodash": "^0.9.0",
"@abp/luxon": "^0.9.0",
"@abp/malihu-custom-scrollbar-plugin": "^0.9.0",
"@abp/select2": "^0.9.0",
"@abp/sweetalert": "^0.9.0",
"@abp/timeago": "^0.9.0",
"@abp/toastr": "^0.9.0",
"@abp/bootstrap-datepicker": "^0.9.0"
"@abp/aspnetcore.mvc.ui": "^0.9.2",
"@abp/bootstrap": "^0.9.2",
"@abp/bootstrap-datepicker": "^0.9.2",
"@abp/datatables.net-bs4": "^0.9.2",
"@abp/font-awesome": "^0.9.2",
"@abp/jquery-form": "^0.9.2",
"@abp/jquery-validation-unobtrusive": "^0.9.2",
"@abp/lodash": "^0.9.2",
"@abp/luxon": "^0.9.2",
"@abp/malihu-custom-scrollbar-plugin": "^0.9.2",
"@abp/select2": "^0.9.2",
"@abp/sweetalert": "^0.9.2",
"@abp/timeago": "^0.9.2",
"@abp/toastr": "^0.9.2"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"
}

@ -1,5 +1,5 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/aspnetcore.mvc.ui",
"publishConfig": {
"access": "public"

@ -1,13 +1,13 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/blogging",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.shared": "^0.9.0",
"@abp/owl.carousel": "^0.9.0",
"@abp/tui-editor": "^0.9.0"
"@abp/aspnetcore.mvc.ui.theme.shared": "^0.9.2",
"@abp/owl.carousel": "^0.9.2",
"@abp/tui-editor": "^0.9.2"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"
}

@ -1,5 +1,5 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/bootstrap-datepicker",
"publishConfig": {
"access": "public"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/bootstrap",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"bootstrap": "^4.1.1"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,5 +1,5 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/chart.js",
"publishConfig": {
"access": "public"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/clipboard",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"clipboard": "^2.0.4"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/codemirror",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"codemirror": "^5.38.0"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,5 +1,5 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/core",
"publishConfig": {
"access": "public"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/datatables.net-bs4",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/datatables.net": "^0.9.0",
"@abp/datatables.net": "^0.9.2",
"datatables.net-bs4": "^1.10.16"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/datatables.net",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"datatables.net": "^1.10.16"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,15 +1,15 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/docs",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/anchor-js": "^0.9.0",
"@abp/clipboard": "^0.9.0",
"@abp/malihu-custom-scrollbar-plugin": "^0.9.0",
"@abp/popper.js": "^0.9.0",
"@abp/prismjs": "^0.9.0"
"@abp/anchor-js": "^0.9.2",
"@abp/clipboard": "^0.9.2",
"@abp/malihu-custom-scrollbar-plugin": "^0.9.2",
"@abp/popper.js": "^0.9.2",
"@abp/prismjs": "^0.9.2"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"
}

@ -1,5 +1,5 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/flag-icon-css",
"publishConfig": {
"access": "public"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/font-awesome",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"font-awesome": "^4.7.0"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/highlight.js",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0"
"@abp/core": "^0.9.2"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"
}

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/jquery-form",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/jquery": "^0.9.0",
"@abp/jquery": "^0.9.2",
"jquery-form": "^4.2.2"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/jquery-validation-unobtrusive",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/jquery-validation": "^0.9.0",
"@abp/jquery-validation": "^0.9.2",
"jquery-validation-unobtrusive": "^3.2.9"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/jquery-validation",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/jquery": "^0.9.0",
"@abp/jquery": "^0.9.2",
"jquery-validation": "^1.17.0"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/jquery",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"jquery": "^3.3.1"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/lodash",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"lodash": "^4.17.10"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,5 +1,5 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/luxon",
"publishConfig": {
"access": "public"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/malihu-custom-scrollbar-plugin",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"malihu-custom-scrollbar-plugin": "^3.1.5"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/markdown-it",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"markdown-it": "^8.4.1"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/owl.carousel",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"owl.carousel": "^2.3.4"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/popper.js",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"popper.js": "^1.14.6"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/prismjs",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"prismjs": "^1.15.0"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/select2",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"select2": "^4.0.5"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/sweetalert",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "^0.9.0",
"@abp/core": "^0.9.2",
"sweetalert": "^2.1.0"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/timeago",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/jquery": "^0.9.0",
"@abp/jquery": "^0.9.2",
"timeago": "^1.6.3"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,11 +1,11 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/toastr",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/jquery": "^0.9.0",
"@abp/jquery": "^0.9.2",
"toastr": "^2.1.4"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -1,14 +1,14 @@
{
"version": "0.9.0",
"version": "0.9.2",
"name": "@abp/tui-editor",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/codemirror": "^0.9.0",
"@abp/highlight.js": "^0.9.0",
"@abp/jquery": "^0.9.0",
"@abp/markdown-it": "^0.9.0",
"@abp/codemirror": "^0.9.2",
"@abp/highlight.js": "^0.9.2",
"@abp/jquery": "^0.9.2",
"@abp/markdown-it": "^0.9.2",
"tui-editor": "^1.2.6"
},
"gitHead": "4d6791834b7723d8ad78ba4d23ae3425f170fdeb"

@ -4,7 +4,6 @@ using System.Threading.Tasks;
using IdentityServer4.Models;
using Microsoft.Extensions.Configuration;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Configuration;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;

@ -4,7 +4,6 @@ using System.Threading.Tasks;
using IdentityServer4.Models;
using Microsoft.Extensions.Configuration;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Configuration;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save