96 changed files with 2283 additions and 16158 deletions
@ -0,0 +1,4 @@ |
|||
bin |
|||
obj |
|||
Logs |
|||
appsettings.*.json |
|||
@ -0,0 +1,110 @@ |
|||
using DotNetCore.CAP; |
|||
using DotNetCore.CAP.Internal; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Microsoft.Extensions.Options; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Reflection; |
|||
using Volo.Abp.DependencyInjection; |
|||
using Volo.Abp.EventBus; |
|||
using Volo.Abp.EventBus.Distributed; |
|||
|
|||
namespace EasyAbp.Abp.EventBus.Cap |
|||
{ |
|||
[Dependency(ServiceLifetime.Singleton, ReplaceServices = true)] |
|||
[ExposeServices(typeof(IConsumerServiceSelector), typeof(ConsumerServiceSelector))] |
|||
|
|||
public class ConsumerServiceSelector : DotNetCore.CAP.Internal.ConsumerServiceSelector |
|||
{ |
|||
protected AbpDistributedEventBusOptions AbpDistributedEventBusOptions { get; } |
|||
protected IServiceProvider ServiceProvider { get; } |
|||
|
|||
/// <summary>
|
|||
/// Creates a new <see cref="T:DotNetCore.CAP.Internal.ConsumerServiceSelector" />.
|
|||
/// </summary>
|
|||
public ConsumerServiceSelector(IServiceProvider serviceProvider, IOptions<AbpDistributedEventBusOptions> distributedEventBusOptions) : base(serviceProvider) |
|||
{ |
|||
ServiceProvider = serviceProvider; |
|||
AbpDistributedEventBusOptions = distributedEventBusOptions.Value; |
|||
} |
|||
|
|||
protected override IEnumerable<ConsumerExecutorDescriptor> FindConsumersFromInterfaceTypes(IServiceProvider provider) |
|||
{ |
|||
var executorDescriptorList = |
|||
base.FindConsumersFromInterfaceTypes(provider).ToList(); |
|||
//handlers
|
|||
var handlers = AbpDistributedEventBusOptions.Handlers; |
|||
|
|||
foreach (var handler in handlers) |
|||
{ |
|||
var interfaces = handler.GetInterfaces(); |
|||
foreach (var @interface in interfaces) |
|||
{ |
|||
if (!typeof(IEventHandler).GetTypeInfo().IsAssignableFrom(@interface)) |
|||
{ |
|||
continue; |
|||
} |
|||
var genericArgs = @interface.GetGenericArguments(); |
|||
if (genericArgs.Length == 1) |
|||
{ |
|||
executorDescriptorList.AddRange( |
|||
GetHandlerDescription(genericArgs[0], handler)); |
|||
//Subscribe(genericArgs[0], new IocEventHandlerFactory(ServiceScopeFactory, handler));
|
|||
} |
|||
} |
|||
} |
|||
return executorDescriptorList; |
|||
} |
|||
|
|||
protected virtual IEnumerable<ConsumerExecutorDescriptor> GetHandlerDescription(Type eventType, Type typeInfo) |
|||
{ |
|||
var serviceTypeInfo = typeof(IDistributedEventHandler<>) |
|||
.MakeGenericType(eventType); |
|||
var method = typeInfo |
|||
.GetMethod( |
|||
nameof(IDistributedEventHandler<object>.HandleEventAsync), |
|||
new[] { eventType } |
|||
); |
|||
var eventName = EventNameAttribute.GetNameOrDefault(eventType); |
|||
var topicAttr = method.GetCustomAttributes<TopicAttribute>(true); |
|||
var topicAttributes = topicAttr.ToList(); |
|||
|
|||
topicAttributes.Add(new CapSubscribeAttribute(eventName)); |
|||
|
|||
foreach (var attr in topicAttributes) |
|||
{ |
|||
SetSubscribeAttribute(attr); |
|||
|
|||
var parameters = method.GetParameters() |
|||
.Select(parameter => new ParameterDescriptor |
|||
{ |
|||
Name = parameter.Name, |
|||
ParameterType = parameter.ParameterType, |
|||
IsFromCap = parameter.GetCustomAttributes(typeof(FromCapAttribute)).Any() |
|||
}).ToList(); |
|||
|
|||
yield return InitDescriptor(attr, method, typeInfo.GetTypeInfo(), serviceTypeInfo.GetTypeInfo(), parameters); |
|||
} |
|||
} |
|||
|
|||
private static ConsumerExecutorDescriptor InitDescriptor( |
|||
TopicAttribute attr, |
|||
MethodInfo methodInfo, |
|||
TypeInfo implType, |
|||
TypeInfo serviceTypeInfo, |
|||
IList<ParameterDescriptor> parameters) |
|||
{ |
|||
var descriptor = new ConsumerExecutorDescriptor |
|||
{ |
|||
Attribute = attr, |
|||
MethodInfo = methodInfo, |
|||
ImplTypeInfo = implType, |
|||
ServiceTypeInfo = serviceTypeInfo, |
|||
Parameters = parameters |
|||
}; |
|||
|
|||
return descriptor; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
MIT License |
|||
|
|||
Copyright (c) 2020 Goxiaoy |
|||
|
|||
Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
of this software and associated documentation files (the "Software"), to deal |
|||
in the Software without restriction, including without limitation the rights |
|||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
copies of the Software, and to permit persons to whom the Software is |
|||
furnished to do so, subject to the following conditions: |
|||
|
|||
The above copyright notice and this permission notice shall be included in all |
|||
copies or substantial portions of the Software. |
|||
|
|||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
|||
SOFTWARE. |
|||
|
|||
Ä£¿éÀ´Ô´ |
|||
https://github.com/EasyAbp/Abp.EventBus.CAP |
|||
@ -0,0 +1,13 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.0</TargetFramework> |
|||
<RootNamespace /> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<PackageReference Include="DotNetCore.CAP" Version="3.0.3" /> |
|||
<PackageReference Include="Volo.Abp.EventBus" Version="2.7.0" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,21 @@ |
|||
using Microsoft.Extensions.Configuration; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Volo.Abp.EventBus; |
|||
using Volo.Abp.Modularity; |
|||
|
|||
namespace LINGYUN.Abp.EventBus.CAP |
|||
{ |
|||
[DependsOn(typeof(AbpEventBusModule))] |
|||
public class AbpCAPEventBusModule : AbpModule |
|||
{ |
|||
public override void ConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
var configuration = context.Services.GetConfiguration(); |
|||
context.Services.AddCAPEventBus(options => |
|||
{ |
|||
configuration.GetSection("CAP:EventBus").Bind(options); |
|||
context.Services.ExecutePreConfiguredActions(options); |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,149 @@ |
|||
using DotNetCore.CAP; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Microsoft.Extensions.Options; |
|||
using System; |
|||
using System.Collections.Concurrent; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp; |
|||
using Volo.Abp.DependencyInjection; |
|||
using Volo.Abp.EventBus; |
|||
using Volo.Abp.EventBus.Distributed; |
|||
using Volo.Abp.Threading; |
|||
|
|||
namespace LINGYUN.Abp.EventBus.CAP |
|||
{ |
|||
[Dependency(ServiceLifetime.Singleton, ReplaceServices = true)] |
|||
[ExposeServices(typeof(IDistributedEventBus), typeof(CAPDistributedEventBus))] |
|||
public class CAPDistributedEventBus : EventBusBase, IDistributedEventBus |
|||
{ |
|||
protected AbpDistributedEventBusOptions AbpDistributedEventBusOptions { get; } |
|||
protected readonly ICapPublisher CapPublisher; |
|||
|
|||
//TODO: Accessing to the List<IEventHandlerFactory> may not be thread-safe!
|
|||
protected ConcurrentDictionary<Type, List<IEventHandlerFactory>> HandlerFactories { get; } |
|||
protected ConcurrentDictionary<string, Type> EventTypes { get; } |
|||
|
|||
public CAPDistributedEventBus(IServiceScopeFactory serviceScopeFactory, |
|||
IOptions<AbpDistributedEventBusOptions> distributedEventBusOptions, |
|||
ICapPublisher capPublisher) : base(serviceScopeFactory) |
|||
{ |
|||
CapPublisher = capPublisher; |
|||
AbpDistributedEventBusOptions = distributedEventBusOptions.Value; |
|||
HandlerFactories = new ConcurrentDictionary<Type, List<IEventHandlerFactory>>(); |
|||
EventTypes = new ConcurrentDictionary<string, Type>(); |
|||
} |
|||
|
|||
public override IDisposable Subscribe(Type eventType, IEventHandlerFactory factory) |
|||
{ |
|||
//This is handled by CAP ConsumerServiceSelector
|
|||
throw new NotImplementedException(); |
|||
} |
|||
|
|||
public override void Unsubscribe<TEvent>(Func<TEvent, Task> action) |
|||
{ |
|||
Check.NotNull(action, nameof(action)); |
|||
|
|||
GetOrCreateHandlerFactories(typeof(TEvent)) |
|||
.Locking(factories => |
|||
{ |
|||
factories.RemoveAll( |
|||
factory => |
|||
{ |
|||
var singleInstanceFactory = factory as SingleInstanceHandlerFactory; |
|||
if (singleInstanceFactory == null) |
|||
{ |
|||
return false; |
|||
} |
|||
|
|||
var actionHandler = singleInstanceFactory.HandlerInstance as ActionEventHandler<TEvent>; |
|||
if (actionHandler == null) |
|||
{ |
|||
return false; |
|||
} |
|||
|
|||
return actionHandler.Action == action; |
|||
}); |
|||
}); |
|||
} |
|||
|
|||
public override void Unsubscribe(Type eventType, IEventHandler handler) |
|||
{ |
|||
GetOrCreateHandlerFactories(eventType) |
|||
.Locking(factories => |
|||
{ |
|||
factories.RemoveAll( |
|||
factory => |
|||
factory is SingleInstanceHandlerFactory && |
|||
(factory as SingleInstanceHandlerFactory).HandlerInstance == handler |
|||
); |
|||
}); |
|||
} |
|||
|
|||
public override void Unsubscribe(Type eventType, IEventHandlerFactory factory) |
|||
{ |
|||
GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Remove(factory)); |
|||
} |
|||
|
|||
public override void UnsubscribeAll(Type eventType) |
|||
{ |
|||
GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Clear()); |
|||
} |
|||
|
|||
public IDisposable Subscribe<TEvent>(IDistributedEventHandler<TEvent> handler) where TEvent : class |
|||
{ |
|||
return Subscribe(typeof(TEvent), handler); |
|||
} |
|||
|
|||
|
|||
public override async Task PublishAsync(Type eventType, object eventData) |
|||
{ |
|||
var eventName = EventNameAttribute.GetNameOrDefault(eventType); |
|||
await CapPublisher.PublishAsync(eventName, eventData); |
|||
} |
|||
|
|||
protected override IEnumerable<EventTypeWithEventHandlerFactories> GetHandlerFactories(Type eventType) |
|||
{ |
|||
var handlerFactoryList = new List<EventTypeWithEventHandlerFactories>(); |
|||
|
|||
foreach (var handlerFactory in HandlerFactories.Where(hf => ShouldTriggerEventForHandler(eventType, hf.Key))) |
|||
{ |
|||
handlerFactoryList.Add(new EventTypeWithEventHandlerFactories(handlerFactory.Key, handlerFactory.Value)); |
|||
} |
|||
|
|||
return handlerFactoryList.ToArray(); |
|||
} |
|||
|
|||
private List<IEventHandlerFactory> GetOrCreateHandlerFactories(Type eventType) |
|||
{ |
|||
return HandlerFactories.GetOrAdd( |
|||
eventType, |
|||
type => |
|||
{ |
|||
var eventName = EventNameAttribute.GetNameOrDefault(type); |
|||
EventTypes[eventName] = type; |
|||
return new List<IEventHandlerFactory>(); |
|||
} |
|||
); |
|||
} |
|||
|
|||
private static bool ShouldTriggerEventForHandler(Type targetEventType, Type handlerEventType) |
|||
{ |
|||
//Should trigger same type
|
|||
if (handlerEventType == targetEventType) |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
//TODO: Support inheritance? But it does not support on subscription to RabbitMq!
|
|||
//Should trigger for inherited types
|
|||
if (handlerEventType.IsAssignableFrom(targetEventType)) |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
return false; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
using DotNetCore.CAP; |
|||
using System; |
|||
|
|||
namespace Microsoft.Extensions.DependencyInjection |
|||
{ |
|||
public static class ServiceCollectionExtensions |
|||
{ |
|||
public static IServiceCollection AddCAPEventBus(this IServiceCollection services, Action<CapOptions> capAction) |
|||
{ |
|||
services.AddCap(capAction); |
|||
return services; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,4 @@ |
|||
bin |
|||
obj |
|||
Logs |
|||
appsettings.*.json |
|||
@ -0,0 +1,12 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.0</TargetFramework> |
|||
<RootNamespace /> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<PackageReference Include="Volo.Abp.EventBus" Version="2.7.0" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,11 @@ |
|||
using Volo.Abp.EventBus; |
|||
using Volo.Abp.Modularity; |
|||
|
|||
namespace LINGYUN.Common.EventBus |
|||
{ |
|||
[DependsOn(typeof(AbpEventBusModule))] |
|||
public class CommonEventBusModule : AbpModule |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
using System; |
|||
using Volo.Abp.EventBus; |
|||
|
|||
namespace LINGYUN.Common.EventBus.Tenants |
|||
{ |
|||
[EventName(TenantEventNames.CreateConnectionString)] |
|||
public class CreateConnectionStringEventData |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string Name { get; set; } |
|||
|
|||
public string Value { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
using System; |
|||
using Volo.Abp.EventBus; |
|||
|
|||
namespace LINGYUN.Common.EventBus.Tenants |
|||
{ |
|||
[EventName(TenantEventNames.Create)] |
|||
public class CreateEventData |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string Name { get; set; } |
|||
|
|||
public string AdminEmailAddress { get; set; } |
|||
|
|||
public string AdminPassword { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
using System; |
|||
using Volo.Abp.EventBus; |
|||
|
|||
namespace LINGYUN.Common.EventBus.Tenants |
|||
{ |
|||
[EventName(TenantEventNames.DeleteConnectionString)] |
|||
public class DeleteConnectionStringEventData |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string Name { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
using System; |
|||
using Volo.Abp.EventBus; |
|||
|
|||
namespace LINGYUN.Common.EventBus.Tenants |
|||
{ |
|||
[EventName(TenantEventNames.Delete)] |
|||
public class DeleteEventData |
|||
{ |
|||
public Guid Id { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
namespace LINGYUN.Common.EventBus.Tenants |
|||
{ |
|||
public class TenantEventNames |
|||
{ |
|||
public const string Default = "TenantEvent"; |
|||
|
|||
public const string Create = Default + ".Create"; |
|||
|
|||
public const string Update = Default + ".Update"; |
|||
|
|||
public const string Delete = Default + ".Delete"; |
|||
|
|||
public const string CreateConnectionString = Default + ".CreateConnectionString"; |
|||
|
|||
public const string UpdateConnectionString = Default + ".UpdateConnectionString"; |
|||
|
|||
public const string DeleteConnectionString = Default + ".DeleteConnectionString"; |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
using System; |
|||
using Volo.Abp.EventBus; |
|||
|
|||
namespace LINGYUN.Common.EventBus.Tenants |
|||
{ |
|||
[EventName(TenantEventNames.UpdateConnectionString)] |
|||
public class UpdateConnectionStringEventData |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string OriginName { get; set; } |
|||
|
|||
public string Name { get; set; } |
|||
|
|||
public string OriginValue { get; set; } |
|||
|
|||
public string Value { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
using System; |
|||
using Volo.Abp.EventBus; |
|||
|
|||
namespace LINGYUN.Common.EventBus.Tenants |
|||
{ |
|||
[EventName(TenantEventNames.Update)] |
|||
public class UpdateEventData |
|||
{ |
|||
public Guid Id { get; set; } |
|||
|
|||
public string OriginName { get; set; } |
|||
|
|||
public string Name { get; set; } |
|||
} |
|||
} |
|||
@ -1,8 +0,0 @@ |
|||
{ |
|||
"culture": "zh-CN", |
|||
"texts": { |
|||
"Permission:SettingManagement": "系统设置", |
|||
"Permission:Settings": "配置管理", |
|||
"Permission:Update": "变更" |
|||
} |
|||
} |
|||
@ -0,0 +1,4 @@ |
|||
bin |
|||
obj |
|||
Logs |
|||
appsettings.*.json |
|||
File diff suppressed because it is too large
@ -1,23 +0,0 @@ |
|||
//------------------------------------------------------------------------------
|
|||
// <auto-generated>
|
|||
// 此代码由工具生成。
|
|||
// 运行时版本:4.0.30319.42000
|
|||
//
|
|||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
|||
// 重新生成代码,这些更改将会丢失。
|
|||
// </auto-generated>
|
|||
//------------------------------------------------------------------------------
|
|||
|
|||
using System; |
|||
using System.Reflection; |
|||
|
|||
[assembly: System.Reflection.AssemblyCompanyAttribute("LINGYUN.TenantManagement.Application.Contracts")] |
|||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] |
|||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] |
|||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] |
|||
[assembly: System.Reflection.AssemblyProductAttribute("LINGYUN.TenantManagement.Application.Contracts")] |
|||
[assembly: System.Reflection.AssemblyTitleAttribute("LINGYUN.TenantManagement.Application.Contracts")] |
|||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] |
|||
|
|||
// 由 MSBuild WriteCodeFragment 类生成。
|
|||
|
|||
@ -1 +0,0 @@ |
|||
77579c10756a0f27717dc51f367bec05fe131eea |
|||
Binary file not shown.
@ -1,5 +0,0 @@ |
|||
D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\tenants\LINGYUN.TenantManagement.Application.Contracts\bin\Debug\netstandard2.0\LINGYUN.TenantManagement.Application.Contracts.deps.json |
|||
D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\tenants\LINGYUN.TenantManagement.Application.Contracts\bin\Debug\netstandard2.0\LINGYUN.TenantManagement.Application.Contracts.dll |
|||
D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\tenants\LINGYUN.TenantManagement.Application.Contracts\obj\Debug\netstandard2.0\LINGYUN.TenantManagement.Application.Contracts.csprojAssemblyReference.cache |
|||
D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\tenants\LINGYUN.TenantManagement.Application.Contracts\obj\Debug\netstandard2.0\LINGYUN.TenantManagement.Application.Contracts.AssemblyInfoInputs.cache |
|||
D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\tenants\LINGYUN.TenantManagement.Application.Contracts\obj\Debug\netstandard2.0\LINGYUN.TenantManagement.Application.Contracts.AssemblyInfo.cs |
|||
Binary file not shown.
@ -1,77 +0,0 @@ |
|||
{ |
|||
"format": 1, |
|||
"restore": { |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj": {} |
|||
}, |
|||
"projects": { |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj": { |
|||
"version": "1.0.0", |
|||
"restore": { |
|||
"projectUniqueName": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj", |
|||
"projectName": "LINGYUN.TenantManagement.Application.Contracts", |
|||
"projectPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj", |
|||
"packagesPath": "C:\\Users\\iVarKey\\.nuget\\packages\\", |
|||
"outputPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\obj\\", |
|||
"projectStyle": "PackageReference", |
|||
"fallbackFolders": [ |
|||
"D:\\Microsoft\\Xamarin\\NuGet\\", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder" |
|||
], |
|||
"configFilePaths": [ |
|||
"C:\\Users\\iVarKey\\AppData\\Roaming\\NuGet\\NuGet.Config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" |
|||
], |
|||
"originalTargetFrameworks": [ |
|||
"netstandard2.0" |
|||
], |
|||
"sources": { |
|||
"D:\\NugetLocal": {}, |
|||
"http://10.21.15.28:8081/repository/nuget-hosted/": {}, |
|||
"https://api.nuget.org/v3/index.json": {} |
|||
}, |
|||
"frameworks": { |
|||
"netstandard2.0": { |
|||
"projectReferences": {} |
|||
} |
|||
}, |
|||
"warningProperties": { |
|||
"warnAsError": [ |
|||
"NU1605" |
|||
] |
|||
} |
|||
}, |
|||
"frameworks": { |
|||
"netstandard2.0": { |
|||
"dependencies": { |
|||
"NETStandard.Library": { |
|||
"suppressParent": "All", |
|||
"target": "Package", |
|||
"version": "[2.0.3, )", |
|||
"autoReferenced": true |
|||
}, |
|||
"Volo.Abp.Ddd.Application": { |
|||
"target": "Package", |
|||
"version": "[2.7.0, )" |
|||
}, |
|||
"Volo.Abp.TenantManagement.Domain.Shared": { |
|||
"target": "Package", |
|||
"version": "[2.7.0, )" |
|||
} |
|||
}, |
|||
"imports": [ |
|||
"net461", |
|||
"net462", |
|||
"net47", |
|||
"net471", |
|||
"net472", |
|||
"net48" |
|||
], |
|||
"assetTargetFallback": true, |
|||
"warn": true, |
|||
"runtimeIdentifierGraphPath": "C:\\Program Files (x86)\\dotnet\\sdk\\3.1.100\\RuntimeIdentifierGraph.json" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -1,15 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?> |
|||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
|||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> |
|||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> |
|||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> |
|||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> |
|||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\iVarKey\.nuget\packages\;D:\Microsoft\Xamarin\NuGet\;C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders> |
|||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> |
|||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.5.0</NuGetToolVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup> |
|||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> |
|||
</PropertyGroup> |
|||
</Project> |
|||
@ -1,9 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?> |
|||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup> |
|||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> |
|||
</PropertyGroup> |
|||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
|||
<Import Project="C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets')" /> |
|||
</ImportGroup> |
|||
</Project> |
|||
File diff suppressed because it is too large
@ -1,104 +0,0 @@ |
|||
{ |
|||
"version": 2, |
|||
"dgSpecHash": "Xqy69gfHIl8WcY1JyoFl5td0d3842rqoW793xWNtbBGiHwrv/WGcj+wOFV9hxcBXy4/8IO9R+tAPMBfl85Z53A==", |
|||
"success": true, |
|||
"projectFilePath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj", |
|||
"expectedPackageFiles": [ |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\configureawait.fody\\3.3.1\\configureawait.fody.3.3.1.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\fody\\6.0.2\\fody.6.0.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\jetbrains.annotations\\2019.1.3\\jetbrains.annotations.2019.1.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.authorization\\3.1.2\\microsoft.aspnetcore.authorization.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.metadata\\3.1.2\\microsoft.aspnetcore.metadata.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.1.0\\microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration\\3.1.2\\microsoft.extensions.configuration.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\3.1.2\\microsoft.extensions.configuration.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.binder\\3.1.2\\microsoft.extensions.configuration.binder.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\3.1.2\\microsoft.extensions.configuration.commandline.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\3.1.2\\microsoft.extensions.configuration.environmentvariables.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\3.1.2\\microsoft.extensions.configuration.fileextensions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.json\\3.1.2\\microsoft.extensions.configuration.json.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\3.1.2\\microsoft.extensions.configuration.usersecrets.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\3.1.2\\microsoft.extensions.dependencyinjection.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\3.1.2\\microsoft.extensions.dependencyinjection.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\3.1.2\\microsoft.extensions.fileproviders.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.fileproviders.composite\\3.1.2\\microsoft.extensions.fileproviders.composite.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\3.1.2\\microsoft.extensions.fileproviders.physical.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\3.1.2\\microsoft.extensions.filesystemglobbing.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\3.1.2\\microsoft.extensions.hosting.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.localization\\3.1.2\\microsoft.extensions.localization.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.localization.abstractions\\3.1.2\\microsoft.extensions.localization.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.logging\\3.1.2\\microsoft.extensions.logging.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\3.1.2\\microsoft.extensions.logging.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.options\\3.1.2\\microsoft.extensions.options.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\3.1.2\\microsoft.extensions.options.configurationextensions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.primitives\\3.1.2\\microsoft.extensions.primitives.3.1.2.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\netstandard.library\\2.0.3\\netstandard.library.2.0.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\newtonsoft.json\\12.0.3\\newtonsoft.json.12.0.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.asyncex.context\\5.0.0\\nito.asyncex.context.5.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.asyncex.coordination\\5.0.0\\nito.asyncex.coordination.5.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.asyncex.tasks\\5.0.0\\nito.asyncex.tasks.5.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.collections.deque\\1.0.4\\nito.collections.deque.1.0.4.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.disposables\\2.0.0\\nito.disposables.2.0.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.buffers\\4.5.0\\system.buffers.4.5.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.collections.immutable\\1.7.0\\system.collections.immutable.1.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.componentmodel.annotations\\4.7.0\\system.componentmodel.annotations.4.7.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.linq.dynamic.core\\1.0.19\\system.linq.dynamic.core.1.0.19.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.linq.queryable\\4.3.0\\system.linq.queryable.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.numerics.vectors\\4.5.0\\system.numerics.vectors.4.5.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.objectmodel\\4.3.0\\system.objectmodel.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.emit\\4.3.0\\system.reflection.emit.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.emit.ilgeneration\\4.3.0\\system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.emit.lightweight\\4.3.0\\system.reflection.emit.lightweight.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.extensions\\4.3.0\\system.reflection.extensions.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.typeextensions\\4.3.0\\system.reflection.typeextensions.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\4.7.0\\system.runtime.compilerservices.unsafe.4.7.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.runtime.loader\\4.3.0\\system.runtime.loader.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.text.encodings.web\\4.7.0\\system.text.encodings.web.4.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.text.json\\4.7.1\\system.text.json.4.7.1.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.2\\system.threading.tasks.extensions.4.5.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.auditing\\2.7.0\\volo.abp.auditing.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.authorization\\2.7.0\\volo.abp.authorization.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.core\\2.7.0\\volo.abp.core.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.data\\2.7.0\\volo.abp.data.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ddd.application\\2.7.0\\volo.abp.ddd.application.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ddd.application.contracts\\2.7.0\\volo.abp.ddd.application.contracts.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ddd.domain\\2.7.0\\volo.abp.ddd.domain.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.eventbus\\2.7.0\\volo.abp.eventbus.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.features\\2.7.0\\volo.abp.features.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.guids\\2.7.0\\volo.abp.guids.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.http.abstractions\\2.7.0\\volo.abp.http.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.json\\2.7.0\\volo.abp.json.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.localization\\2.7.0\\volo.abp.localization.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.localization.abstractions\\2.7.0\\volo.abp.localization.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.multitenancy\\2.7.0\\volo.abp.multitenancy.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.objectextending\\2.7.0\\volo.abp.objectextending.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.objectmapping\\2.7.0\\volo.abp.objectmapping.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.security\\2.7.0\\volo.abp.security.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.settings\\2.7.0\\volo.abp.settings.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.tenantmanagement.domain.shared\\2.7.0\\volo.abp.tenantmanagement.domain.shared.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.threading\\2.7.0\\volo.abp.threading.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.timing\\2.7.0\\volo.abp.timing.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.uow\\2.7.0\\volo.abp.uow.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.validation\\2.7.0\\volo.abp.validation.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.validation.abstractions\\2.7.0\\volo.abp.validation.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.virtualfilesystem\\2.7.0\\volo.abp.virtualfilesystem.2.7.0.nupkg.sha512" |
|||
], |
|||
"logs": [] |
|||
} |
|||
@ -0,0 +1,4 @@ |
|||
bin |
|||
obj |
|||
Logs |
|||
appsettings.*.json |
|||
@ -1,47 +0,0 @@ |
|||
{ |
|||
"runtimeTarget": { |
|||
"name": ".NETStandard,Version=v2.0/", |
|||
"signature": "" |
|||
}, |
|||
"compilationOptions": {}, |
|||
"targets": { |
|||
".NETStandard,Version=v2.0": {}, |
|||
".NETStandard,Version=v2.0/": { |
|||
"LINGYUN.TenantManagement.Application/1.0.0": { |
|||
"dependencies": { |
|||
"NETStandard.Library": "2.0.3" |
|||
}, |
|||
"runtime": { |
|||
"LINGYUN.TenantManagement.Application.dll": {} |
|||
} |
|||
}, |
|||
"Microsoft.NETCore.Platforms/1.1.0": {}, |
|||
"NETStandard.Library/2.0.3": { |
|||
"dependencies": { |
|||
"Microsoft.NETCore.Platforms": "1.1.0" |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
"libraries": { |
|||
"LINGYUN.TenantManagement.Application/1.0.0": { |
|||
"type": "project", |
|||
"serviceable": false, |
|||
"sha512": "" |
|||
}, |
|||
"Microsoft.NETCore.Platforms/1.1.0": { |
|||
"type": "package", |
|||
"serviceable": true, |
|||
"sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", |
|||
"path": "microsoft.netcore.platforms/1.1.0", |
|||
"hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" |
|||
}, |
|||
"NETStandard.Library/2.0.3": { |
|||
"type": "package", |
|||
"serviceable": true, |
|||
"sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", |
|||
"path": "netstandard.library/2.0.3", |
|||
"hashPath": "netstandard.library.2.0.3.nupkg.sha512" |
|||
} |
|||
} |
|||
} |
|||
@ -1,23 +0,0 @@ |
|||
//------------------------------------------------------------------------------
|
|||
// <auto-generated>
|
|||
// 此代码由工具生成。
|
|||
// 运行时版本:4.0.30319.42000
|
|||
//
|
|||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
|||
// 重新生成代码,这些更改将会丢失。
|
|||
// </auto-generated>
|
|||
//------------------------------------------------------------------------------
|
|||
|
|||
using System; |
|||
using System.Reflection; |
|||
|
|||
[assembly: System.Reflection.AssemblyCompanyAttribute("LINGYUN.TenantManagement.Application")] |
|||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] |
|||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] |
|||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] |
|||
[assembly: System.Reflection.AssemblyProductAttribute("LINGYUN.TenantManagement.Application")] |
|||
[assembly: System.Reflection.AssemblyTitleAttribute("LINGYUN.TenantManagement.Application")] |
|||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] |
|||
|
|||
// 由 MSBuild WriteCodeFragment 类生成。
|
|||
|
|||
@ -1 +0,0 @@ |
|||
9d5617a3cbf2d91ca8ec140f1673a85e716a926f |
|||
Binary file not shown.
@ -1,4 +0,0 @@ |
|||
D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\tenants\LINGYUN.TenantManagement.Application\bin\Debug\netstandard2.0\LINGYUN.TenantManagement.Application.deps.json |
|||
D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\tenants\LINGYUN.TenantManagement.Application\bin\Debug\netstandard2.0\LINGYUN.TenantManagement.Application.dll |
|||
D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\tenants\LINGYUN.TenantManagement.Application\obj\Debug\netstandard2.0\LINGYUN.TenantManagement.Application.AssemblyInfoInputs.cache |
|||
D:\Projects\MicroService\CRM\Vue\vue-abp\aspnet-core\modules\tenants\LINGYUN.TenantManagement.Application\obj\Debug\netstandard2.0\LINGYUN.TenantManagement.Application.AssemblyInfo.cs |
|||
Binary file not shown.
@ -1,146 +0,0 @@ |
|||
{ |
|||
"format": 1, |
|||
"restore": { |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application\\LINGYUN.TenantManagement.Application.csproj": {} |
|||
}, |
|||
"projects": { |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj": { |
|||
"version": "1.0.0", |
|||
"restore": { |
|||
"projectUniqueName": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj", |
|||
"projectName": "LINGYUN.TenantManagement.Application.Contracts", |
|||
"projectPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj", |
|||
"packagesPath": "C:\\Users\\iVarKey\\.nuget\\packages\\", |
|||
"outputPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\obj\\", |
|||
"projectStyle": "PackageReference", |
|||
"fallbackFolders": [ |
|||
"D:\\Microsoft\\Xamarin\\NuGet\\", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder" |
|||
], |
|||
"configFilePaths": [ |
|||
"C:\\Users\\iVarKey\\AppData\\Roaming\\NuGet\\NuGet.Config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" |
|||
], |
|||
"originalTargetFrameworks": [ |
|||
"netstandard2.0" |
|||
], |
|||
"sources": { |
|||
"D:\\NugetLocal": {}, |
|||
"http://10.21.15.28:8081/repository/nuget-hosted/": {}, |
|||
"https://api.nuget.org/v3/index.json": {} |
|||
}, |
|||
"frameworks": { |
|||
"netstandard2.0": { |
|||
"projectReferences": {} |
|||
} |
|||
}, |
|||
"warningProperties": { |
|||
"warnAsError": [ |
|||
"NU1605" |
|||
] |
|||
} |
|||
}, |
|||
"frameworks": { |
|||
"netstandard2.0": { |
|||
"dependencies": { |
|||
"NETStandard.Library": { |
|||
"suppressParent": "All", |
|||
"target": "Package", |
|||
"version": "[2.0.3, )", |
|||
"autoReferenced": true |
|||
}, |
|||
"Volo.Abp.Ddd.Application": { |
|||
"target": "Package", |
|||
"version": "[2.7.0, )" |
|||
}, |
|||
"Volo.Abp.TenantManagement.Domain.Shared": { |
|||
"target": "Package", |
|||
"version": "[2.7.0, )" |
|||
} |
|||
}, |
|||
"imports": [ |
|||
"net461", |
|||
"net462", |
|||
"net47", |
|||
"net471", |
|||
"net472", |
|||
"net48" |
|||
], |
|||
"assetTargetFallback": true, |
|||
"warn": true, |
|||
"runtimeIdentifierGraphPath": "C:\\Program Files (x86)\\dotnet\\sdk\\3.1.100\\RuntimeIdentifierGraph.json" |
|||
} |
|||
} |
|||
}, |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application\\LINGYUN.TenantManagement.Application.csproj": { |
|||
"version": "1.0.0", |
|||
"restore": { |
|||
"projectUniqueName": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application\\LINGYUN.TenantManagement.Application.csproj", |
|||
"projectName": "LINGYUN.TenantManagement.Application", |
|||
"projectPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application\\LINGYUN.TenantManagement.Application.csproj", |
|||
"packagesPath": "C:\\Users\\iVarKey\\.nuget\\packages\\", |
|||
"outputPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application\\obj\\", |
|||
"projectStyle": "PackageReference", |
|||
"fallbackFolders": [ |
|||
"D:\\Microsoft\\Xamarin\\NuGet\\", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder" |
|||
], |
|||
"configFilePaths": [ |
|||
"C:\\Users\\iVarKey\\AppData\\Roaming\\NuGet\\NuGet.Config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" |
|||
], |
|||
"originalTargetFrameworks": [ |
|||
"netstandard2.0" |
|||
], |
|||
"sources": { |
|||
"D:\\NugetLocal": {}, |
|||
"http://10.21.15.28:8081/repository/nuget-hosted/": {}, |
|||
"https://api.nuget.org/v3/index.json": {} |
|||
}, |
|||
"frameworks": { |
|||
"netstandard2.0": { |
|||
"projectReferences": { |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj": { |
|||
"projectPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj" |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
"warningProperties": { |
|||
"warnAsError": [ |
|||
"NU1605" |
|||
] |
|||
} |
|||
}, |
|||
"frameworks": { |
|||
"netstandard2.0": { |
|||
"dependencies": { |
|||
"NETStandard.Library": { |
|||
"suppressParent": "All", |
|||
"target": "Package", |
|||
"version": "[2.0.3, )", |
|||
"autoReferenced": true |
|||
}, |
|||
"Volo.Abp.TenantManagement.Domain": { |
|||
"target": "Package", |
|||
"version": "[2.7.0, )" |
|||
} |
|||
}, |
|||
"imports": [ |
|||
"net461", |
|||
"net462", |
|||
"net47", |
|||
"net471", |
|||
"net472", |
|||
"net48" |
|||
], |
|||
"assetTargetFallback": true, |
|||
"warn": true, |
|||
"runtimeIdentifierGraphPath": "C:\\Program Files (x86)\\dotnet\\sdk\\3.1.100\\RuntimeIdentifierGraph.json" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -1,15 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?> |
|||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
|||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> |
|||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> |
|||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> |
|||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> |
|||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\iVarKey\.nuget\packages\;D:\Microsoft\Xamarin\NuGet\;C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders> |
|||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> |
|||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.5.0</NuGetToolVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup> |
|||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> |
|||
</PropertyGroup> |
|||
</Project> |
|||
@ -1,9 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?> |
|||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup> |
|||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> |
|||
</PropertyGroup> |
|||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
|||
<Import Project="C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets')" /> |
|||
</ImportGroup> |
|||
</Project> |
|||
File diff suppressed because it is too large
@ -1,109 +0,0 @@ |
|||
{ |
|||
"version": 2, |
|||
"dgSpecHash": "d/WoIUJcwSFsheJYDT6158mmlupHZV2pTKKnFIa9x2zd+G20+d8fYrsQDGifroGiSYCLYuwpqWHEbxIGsK+j3Q==", |
|||
"success": true, |
|||
"projectFilePath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application\\LINGYUN.TenantManagement.Application.csproj", |
|||
"expectedPackageFiles": [ |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\automapper\\9.0.0\\automapper.9.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\configureawait.fody\\3.3.1\\configureawait.fody.3.3.1.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\fody\\6.0.2\\fody.6.0.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\jetbrains.annotations\\2019.1.3\\jetbrains.annotations.2019.1.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.authorization\\3.1.2\\microsoft.aspnetcore.authorization.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.metadata\\3.1.2\\microsoft.aspnetcore.metadata.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.1.0\\microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.csharp\\4.5.0\\microsoft.csharp.4.5.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration\\3.1.2\\microsoft.extensions.configuration.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\3.1.2\\microsoft.extensions.configuration.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.binder\\3.1.2\\microsoft.extensions.configuration.binder.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\3.1.2\\microsoft.extensions.configuration.commandline.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\3.1.2\\microsoft.extensions.configuration.environmentvariables.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\3.1.2\\microsoft.extensions.configuration.fileextensions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.json\\3.1.2\\microsoft.extensions.configuration.json.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\3.1.2\\microsoft.extensions.configuration.usersecrets.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\3.1.2\\microsoft.extensions.dependencyinjection.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\3.1.2\\microsoft.extensions.dependencyinjection.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\3.1.2\\microsoft.extensions.fileproviders.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.fileproviders.composite\\3.1.2\\microsoft.extensions.fileproviders.composite.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\3.1.2\\microsoft.extensions.fileproviders.physical.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\3.1.2\\microsoft.extensions.filesystemglobbing.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\3.1.2\\microsoft.extensions.hosting.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.localization\\3.1.2\\microsoft.extensions.localization.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.localization.abstractions\\3.1.2\\microsoft.extensions.localization.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.logging\\3.1.2\\microsoft.extensions.logging.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\3.1.2\\microsoft.extensions.logging.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.options\\3.1.2\\microsoft.extensions.options.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\3.1.2\\microsoft.extensions.options.configurationextensions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.primitives\\3.1.2\\microsoft.extensions.primitives.3.1.2.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\netstandard.library\\2.0.3\\netstandard.library.2.0.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\newtonsoft.json\\12.0.3\\newtonsoft.json.12.0.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.asyncex.context\\5.0.0\\nito.asyncex.context.5.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.asyncex.coordination\\5.0.0\\nito.asyncex.coordination.5.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.asyncex.tasks\\5.0.0\\nito.asyncex.tasks.5.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.collections.deque\\1.0.4\\nito.collections.deque.1.0.4.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.disposables\\2.0.0\\nito.disposables.2.0.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.buffers\\4.5.0\\system.buffers.4.5.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.collections.immutable\\1.7.0\\system.collections.immutable.1.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.componentmodel.annotations\\4.7.0\\system.componentmodel.annotations.4.7.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.linq.dynamic.core\\1.0.19\\system.linq.dynamic.core.1.0.19.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.linq.queryable\\4.3.0\\system.linq.queryable.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.numerics.vectors\\4.5.0\\system.numerics.vectors.4.5.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.objectmodel\\4.3.0\\system.objectmodel.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.emit\\4.3.0\\system.reflection.emit.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.emit.ilgeneration\\4.3.0\\system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.emit.lightweight\\4.3.0\\system.reflection.emit.lightweight.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.extensions\\4.3.0\\system.reflection.extensions.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.typeextensions\\4.3.0\\system.reflection.typeextensions.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\4.7.0\\system.runtime.compilerservices.unsafe.4.7.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.runtime.loader\\4.3.0\\system.runtime.loader.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.text.encodings.web\\4.7.0\\system.text.encodings.web.4.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.text.json\\4.7.1\\system.text.json.4.7.1.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.2\\system.threading.tasks.extensions.4.5.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.auditing\\2.7.0\\volo.abp.auditing.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.authorization\\2.7.0\\volo.abp.authorization.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.automapper\\2.7.0\\volo.abp.automapper.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.core\\2.7.0\\volo.abp.core.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.data\\2.7.0\\volo.abp.data.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ddd.application\\2.7.0\\volo.abp.ddd.application.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ddd.application.contracts\\2.7.0\\volo.abp.ddd.application.contracts.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ddd.domain\\2.7.0\\volo.abp.ddd.domain.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.eventbus\\2.7.0\\volo.abp.eventbus.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.features\\2.7.0\\volo.abp.features.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.guids\\2.7.0\\volo.abp.guids.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.http.abstractions\\2.7.0\\volo.abp.http.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.json\\2.7.0\\volo.abp.json.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.localization\\2.7.0\\volo.abp.localization.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.localization.abstractions\\2.7.0\\volo.abp.localization.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.multitenancy\\2.7.0\\volo.abp.multitenancy.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.objectextending\\2.7.0\\volo.abp.objectextending.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.objectmapping\\2.7.0\\volo.abp.objectmapping.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.security\\2.7.0\\volo.abp.security.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.settings\\2.7.0\\volo.abp.settings.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.tenantmanagement.domain\\2.7.0\\volo.abp.tenantmanagement.domain.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.tenantmanagement.domain.shared\\2.7.0\\volo.abp.tenantmanagement.domain.shared.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.threading\\2.7.0\\volo.abp.threading.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.timing\\2.7.0\\volo.abp.timing.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ui\\2.7.0\\volo.abp.ui.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.uow\\2.7.0\\volo.abp.uow.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.validation\\2.7.0\\volo.abp.validation.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.validation.abstractions\\2.7.0\\volo.abp.validation.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.virtualfilesystem\\2.7.0\\volo.abp.virtualfilesystem.2.7.0.nupkg.sha512" |
|||
], |
|||
"logs": [] |
|||
} |
|||
@ -0,0 +1,4 @@ |
|||
bin |
|||
obj |
|||
Logs |
|||
appsettings.*.json |
|||
@ -1,23 +0,0 @@ |
|||
//------------------------------------------------------------------------------
|
|||
// <auto-generated>
|
|||
// 此代码由工具生成。
|
|||
// 运行时版本:4.0.30319.42000
|
|||
//
|
|||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
|||
// 重新生成代码,这些更改将会丢失。
|
|||
// </auto-generated>
|
|||
//------------------------------------------------------------------------------
|
|||
|
|||
using System; |
|||
using System.Reflection; |
|||
|
|||
[assembly: System.Reflection.AssemblyCompanyAttribute("LINGYUN.TenantManagement.HttpApi")] |
|||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] |
|||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] |
|||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] |
|||
[assembly: System.Reflection.AssemblyProductAttribute("LINGYUN.TenantManagement.HttpApi")] |
|||
[assembly: System.Reflection.AssemblyTitleAttribute("LINGYUN.TenantManagement.HttpApi")] |
|||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] |
|||
|
|||
// 由 MSBuild WriteCodeFragment 类生成。
|
|||
|
|||
@ -1 +0,0 @@ |
|||
65e28ee4eecd7dbb63a4128a1f9a6ab2a9b0c42d |
|||
Binary file not shown.
Binary file not shown.
@ -1,148 +0,0 @@ |
|||
{ |
|||
"format": 1, |
|||
"restore": { |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.HttpApi\\LINGYUN.TenantManagement.HttpApi.csproj": {} |
|||
}, |
|||
"projects": { |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj": { |
|||
"version": "1.0.0", |
|||
"restore": { |
|||
"projectUniqueName": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj", |
|||
"projectName": "LINGYUN.TenantManagement.Application.Contracts", |
|||
"projectPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj", |
|||
"packagesPath": "C:\\Users\\iVarKey\\.nuget\\packages\\", |
|||
"outputPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\obj\\", |
|||
"projectStyle": "PackageReference", |
|||
"fallbackFolders": [ |
|||
"D:\\Microsoft\\Xamarin\\NuGet\\", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder" |
|||
], |
|||
"configFilePaths": [ |
|||
"C:\\Users\\iVarKey\\AppData\\Roaming\\NuGet\\NuGet.Config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" |
|||
], |
|||
"originalTargetFrameworks": [ |
|||
"netstandard2.0" |
|||
], |
|||
"sources": { |
|||
"D:\\NugetLocal": {}, |
|||
"http://10.21.15.28:8081/repository/nuget-hosted/": {}, |
|||
"https://api.nuget.org/v3/index.json": {} |
|||
}, |
|||
"frameworks": { |
|||
"netstandard2.0": { |
|||
"projectReferences": {} |
|||
} |
|||
}, |
|||
"warningProperties": { |
|||
"warnAsError": [ |
|||
"NU1605" |
|||
] |
|||
} |
|||
}, |
|||
"frameworks": { |
|||
"netstandard2.0": { |
|||
"dependencies": { |
|||
"NETStandard.Library": { |
|||
"suppressParent": "All", |
|||
"target": "Package", |
|||
"version": "[2.0.3, )", |
|||
"autoReferenced": true |
|||
}, |
|||
"Volo.Abp.Ddd.Application": { |
|||
"target": "Package", |
|||
"version": "[2.7.0, )" |
|||
}, |
|||
"Volo.Abp.TenantManagement.Domain.Shared": { |
|||
"target": "Package", |
|||
"version": "[2.7.0, )" |
|||
} |
|||
}, |
|||
"imports": [ |
|||
"net461", |
|||
"net462", |
|||
"net47", |
|||
"net471", |
|||
"net472", |
|||
"net48" |
|||
], |
|||
"assetTargetFallback": true, |
|||
"warn": true, |
|||
"runtimeIdentifierGraphPath": "C:\\Program Files (x86)\\dotnet\\sdk\\3.1.100\\RuntimeIdentifierGraph.json" |
|||
} |
|||
} |
|||
}, |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.HttpApi\\LINGYUN.TenantManagement.HttpApi.csproj": { |
|||
"version": "1.0.0", |
|||
"restore": { |
|||
"projectUniqueName": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.HttpApi\\LINGYUN.TenantManagement.HttpApi.csproj", |
|||
"projectName": "LINGYUN.TenantManagement.HttpApi", |
|||
"projectPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.HttpApi\\LINGYUN.TenantManagement.HttpApi.csproj", |
|||
"packagesPath": "C:\\Users\\iVarKey\\.nuget\\packages\\", |
|||
"outputPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.HttpApi\\obj\\", |
|||
"projectStyle": "PackageReference", |
|||
"fallbackFolders": [ |
|||
"D:\\Microsoft\\Xamarin\\NuGet\\", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder" |
|||
], |
|||
"configFilePaths": [ |
|||
"C:\\Users\\iVarKey\\AppData\\Roaming\\NuGet\\NuGet.Config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", |
|||
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" |
|||
], |
|||
"originalTargetFrameworks": [ |
|||
"netcoreapp3.1" |
|||
], |
|||
"sources": { |
|||
"D:\\NugetLocal": {}, |
|||
"http://10.21.15.28:8081/repository/nuget-hosted/": {}, |
|||
"https://api.nuget.org/v3/index.json": {} |
|||
}, |
|||
"frameworks": { |
|||
"netcoreapp3.1": { |
|||
"projectReferences": { |
|||
"D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj": { |
|||
"projectPath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.Application.Contracts\\LINGYUN.TenantManagement.Application.Contracts.csproj" |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
"warningProperties": { |
|||
"warnAsError": [ |
|||
"NU1605" |
|||
] |
|||
} |
|||
}, |
|||
"frameworks": { |
|||
"netcoreapp3.1": { |
|||
"dependencies": { |
|||
"Volo.Abp.AspNetCore.Mvc": { |
|||
"target": "Package", |
|||
"version": "[2.7.0, )" |
|||
} |
|||
}, |
|||
"imports": [ |
|||
"net461", |
|||
"net462", |
|||
"net47", |
|||
"net471", |
|||
"net472", |
|||
"net48" |
|||
], |
|||
"assetTargetFallback": true, |
|||
"warn": true, |
|||
"frameworkReferences": { |
|||
"Microsoft.AspNetCore.App": { |
|||
"privateAssets": "none" |
|||
}, |
|||
"Microsoft.NETCore.App": { |
|||
"privateAssets": "all" |
|||
} |
|||
}, |
|||
"runtimeIdentifierGraphPath": "C:\\Program Files (x86)\\dotnet\\sdk\\3.1.100\\RuntimeIdentifierGraph.json" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -1,27 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?> |
|||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
|||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> |
|||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> |
|||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> |
|||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> |
|||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\iVarKey\.nuget\packages\;D:\Microsoft\Xamarin\NuGet\;C:\Program Files (x86)\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders> |
|||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> |
|||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.5.0</NuGetToolVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup> |
|||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> |
|||
</PropertyGroup> |
|||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
|||
<Content Include="$(NuGetPackageRoot)volo.abp.aspnetcore.mvc\2.7.0\contentFiles\any\netcoreapp3.1\Properties\launchSettings.json" Condition="Exists('$(NuGetPackageRoot)volo.abp.aspnetcore.mvc\2.7.0\contentFiles\any\netcoreapp3.1\Properties\launchSettings.json')"> |
|||
<NuGetPackageId>Volo.Abp.AspNetCore.Mvc</NuGetPackageId> |
|||
<NuGetPackageVersion>2.7.0</NuGetPackageVersion> |
|||
<NuGetItemType>Content</NuGetItemType> |
|||
<Private>False</Private> |
|||
<Link>Properties\launchSettings.json</Link> |
|||
</Content> |
|||
</ItemGroup> |
|||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
|||
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\iVarKey\.nuget\packages\microsoft.codeanalysis.analyzers\2.9.3</PkgMicrosoft_CodeAnalysis_Analyzers> |
|||
</PropertyGroup> |
|||
</Project> |
|||
@ -1,9 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?> |
|||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup> |
|||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> |
|||
</PropertyGroup> |
|||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> |
|||
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.mvc.razor.runtimecompilation\3.1.2\buildTransitive\netcoreapp3.1\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.mvc.razor.runtimecompilation\3.1.2\buildTransitive\netcoreapp3.1\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.targets')" /> |
|||
</ImportGroup> |
|||
</Project> |
|||
File diff suppressed because it is too large
@ -1,122 +0,0 @@ |
|||
{ |
|||
"version": 2, |
|||
"dgSpecHash": "r0dmU6zCYwD9bEkyDCjXupeRq0tRdVdRk1NJFUEWfIWItVDV7HkVGEGku1LkpEiD/v+vja7VQpX7dbu8tXA5mQ==", |
|||
"success": true, |
|||
"projectFilePath": "D:\\Projects\\MicroService\\CRM\\Vue\\vue-abp\\aspnet-core\\modules\\tenants\\LINGYUN.TenantManagement.HttpApi\\LINGYUN.TenantManagement.HttpApi.csproj", |
|||
"expectedPackageFiles": [ |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\configureawait.fody\\3.3.1\\configureawait.fody.3.3.1.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\fody\\6.0.2\\fody.6.0.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\jetbrains.annotations\\2019.1.3\\jetbrains.annotations.2019.1.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.authorization\\3.1.2\\microsoft.aspnetcore.authorization.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.jsonpatch\\3.1.2\\microsoft.aspnetcore.jsonpatch.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.metadata\\3.1.2\\microsoft.aspnetcore.metadata.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.mvc.newtonsoftjson\\3.1.2\\microsoft.aspnetcore.mvc.newtonsoftjson.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.mvc.razor.extensions\\3.1.2\\microsoft.aspnetcore.mvc.razor.extensions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.mvc.razor.runtimecompilation\\3.1.2\\microsoft.aspnetcore.mvc.razor.runtimecompilation.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.mvc.versioning\\4.1.0\\microsoft.aspnetcore.mvc.versioning.4.1.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.aspnetcore.razor.language\\3.1.2\\microsoft.aspnetcore.razor.language.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\2.9.3\\microsoft.codeanalysis.analyzers.2.9.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.codeanalysis.common\\3.3.0\\microsoft.codeanalysis.common.3.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.codeanalysis.csharp\\3.3.0\\microsoft.codeanalysis.csharp.3.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.codeanalysis.razor\\3.1.2\\microsoft.codeanalysis.razor.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration\\3.1.2\\microsoft.extensions.configuration.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\3.1.2\\microsoft.extensions.configuration.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.binder\\3.1.2\\microsoft.extensions.configuration.binder.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\3.1.2\\microsoft.extensions.configuration.commandline.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\3.1.2\\microsoft.extensions.configuration.environmentvariables.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\3.1.2\\microsoft.extensions.configuration.fileextensions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.json\\3.1.2\\microsoft.extensions.configuration.json.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\3.1.2\\microsoft.extensions.configuration.usersecrets.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\3.1.2\\microsoft.extensions.dependencyinjection.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\3.1.2\\microsoft.extensions.dependencyinjection.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.dependencymodel\\3.1.2\\microsoft.extensions.dependencymodel.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\3.1.2\\microsoft.extensions.fileproviders.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.fileproviders.composite\\3.1.2\\microsoft.extensions.fileproviders.composite.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\3.1.2\\microsoft.extensions.fileproviders.physical.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\3.1.2\\microsoft.extensions.filesystemglobbing.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\3.1.2\\microsoft.extensions.hosting.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.localization\\3.1.2\\microsoft.extensions.localization.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.localization.abstractions\\3.1.2\\microsoft.extensions.localization.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.logging\\3.1.2\\microsoft.extensions.logging.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\3.1.2\\microsoft.extensions.logging.abstractions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.options\\3.1.2\\microsoft.extensions.options.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\3.1.2\\microsoft.extensions.options.configurationextensions.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.extensions.primitives\\3.1.2\\microsoft.extensions.primitives.3.1.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\microsoft.netcore.platforms\\2.1.2\\microsoft.netcore.platforms.2.1.2.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\newtonsoft.json\\12.0.3\\newtonsoft.json.12.0.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\newtonsoft.json.bson\\1.0.2\\newtonsoft.json.bson.1.0.2.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.asyncex.context\\5.0.0\\nito.asyncex.context.5.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.asyncex.coordination\\5.0.0\\nito.asyncex.coordination.5.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.asyncex.tasks\\5.0.0\\nito.asyncex.tasks.5.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.collections.deque\\1.0.4\\nito.collections.deque.1.0.4.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nito.disposables\\2.0.0\\nito.disposables.2.0.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\nuglify\\1.5.13\\nuglify.1.5.13.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.collections.immutable\\1.7.0\\system.collections.immutable.1.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.componentmodel.annotations\\4.7.0\\system.componentmodel.annotations.4.7.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.linq.dynamic.core\\1.0.19\\system.linq.dynamic.core.1.0.19.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.linq.queryable\\4.3.0\\system.linq.queryable.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.objectmodel\\4.3.0\\system.objectmodel.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.emit\\4.3.0\\system.reflection.emit.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.emit.ilgeneration\\4.3.0\\system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.emit.lightweight\\4.3.0\\system.reflection.emit.lightweight.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.extensions\\4.3.0\\system.reflection.extensions.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.metadata\\1.6.0\\system.reflection.metadata.1.6.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.reflection.typeextensions\\4.3.0\\system.reflection.typeextensions.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\4.5.2\\system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.runtime.loader\\4.3.0\\system.runtime.loader.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.text.encoding.codepages\\4.5.1\\system.text.encoding.codepages.4.5.1.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.text.json\\4.7.1\\system.text.json.4.7.1.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512", |
|||
"C:\\Program Files (x86)\\dotnet\\sdk\\NuGetFallbackFolder\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.3\\system.threading.tasks.extensions.4.5.3.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.apiversioning.abstractions\\2.7.0\\volo.abp.apiversioning.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.aspnetcore\\2.7.0\\volo.abp.aspnetcore.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.aspnetcore.mvc\\2.7.0\\volo.abp.aspnetcore.mvc.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.aspnetcore.mvc.contracts\\2.7.0\\volo.abp.aspnetcore.mvc.contracts.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.auditing\\2.7.0\\volo.abp.auditing.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.authorization\\2.7.0\\volo.abp.authorization.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.core\\2.7.0\\volo.abp.core.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.data\\2.7.0\\volo.abp.data.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ddd.application\\2.7.0\\volo.abp.ddd.application.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ddd.application.contracts\\2.7.0\\volo.abp.ddd.application.contracts.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ddd.domain\\2.7.0\\volo.abp.ddd.domain.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.eventbus\\2.7.0\\volo.abp.eventbus.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.features\\2.7.0\\volo.abp.features.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.guids\\2.7.0\\volo.abp.guids.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.http\\2.7.0\\volo.abp.http.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.http.abstractions\\2.7.0\\volo.abp.http.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.json\\2.7.0\\volo.abp.json.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.localization\\2.7.0\\volo.abp.localization.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.localization.abstractions\\2.7.0\\volo.abp.localization.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.minify\\2.7.0\\volo.abp.minify.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.multitenancy\\2.7.0\\volo.abp.multitenancy.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.objectextending\\2.7.0\\volo.abp.objectextending.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.objectmapping\\2.7.0\\volo.abp.objectmapping.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.security\\2.7.0\\volo.abp.security.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.settings\\2.7.0\\volo.abp.settings.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.tenantmanagement.domain.shared\\2.7.0\\volo.abp.tenantmanagement.domain.shared.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.threading\\2.7.0\\volo.abp.threading.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.timing\\2.7.0\\volo.abp.timing.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.ui\\2.7.0\\volo.abp.ui.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.uow\\2.7.0\\volo.abp.uow.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.validation\\2.7.0\\volo.abp.validation.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.validation.abstractions\\2.7.0\\volo.abp.validation.abstractions.2.7.0.nupkg.sha512", |
|||
"C:\\Users\\iVarKey\\.nuget\\packages\\volo.abp.virtualfilesystem\\2.7.0\\volo.abp.virtualfilesystem.2.7.0.nupkg.sha512" |
|||
], |
|||
"logs": [] |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
using LINGYUN.Common.EventBus.Tenants; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.EventBus.Distributed; |
|||
using Volo.Abp.Identity; |
|||
using Volo.Abp.DependencyInjection; |
|||
using Microsoft.Extensions.Logging; |
|||
using Volo.Abp.MultiTenancy; |
|||
|
|||
namespace AuthServer.Host.EventBus.Handlers |
|||
{ |
|||
public class TenantCreateEventHandler : IDistributedEventHandler<CreateEventData>, ITransientDependency |
|||
{ |
|||
protected ILogger<TenantCreateEventHandler> Logger { get; } |
|||
protected ICurrentTenant CurrentTenant { get; } |
|||
protected IIdentityDataSeeder IdentityDataSeeder { get; } |
|||
|
|||
public TenantCreateEventHandler( |
|||
ICurrentTenant currentTenant, |
|||
IIdentityDataSeeder identityDataSeeder, |
|||
ILogger<TenantCreateEventHandler> logger) |
|||
{ |
|||
Logger = logger; |
|||
CurrentTenant = currentTenant; |
|||
IdentityDataSeeder = identityDataSeeder; |
|||
} |
|||
|
|||
public async Task HandleEventAsync(CreateEventData eventData) |
|||
{ |
|||
using (CurrentTenant.Change(eventData.Id, eventData.Name)) |
|||
{ |
|||
var identitySeedResult = await IdentityDataSeeder |
|||
.SeedAsync(eventData.AdminEmailAddress, eventData.AdminPassword, eventData.Id); |
|||
if (!identitySeedResult.CreatedAdminUser) |
|||
{ |
|||
Logger.LogWarning("Tenant {0} admin user {1} not created!", eventData.Name, eventData.AdminEmailAddress); |
|||
} |
|||
if (!identitySeedResult.CreatedAdminRole) |
|||
{ |
|||
Logger.LogWarning("Tenant {0} admin role not created!", eventData.Name); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,4 @@ |
|||
bin |
|||
obj |
|||
Logs |
|||
appsettings.*.json |
|||
@ -0,0 +1,110 @@ |
|||
using LINGYUN.Common.EventBus.Tenants; |
|||
using Microsoft.EntityFrameworkCore; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Authorization.Permissions; |
|||
using Volo.Abp.DependencyInjection; |
|||
using Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.EventBus.Distributed; |
|||
using Volo.Abp.Guids; |
|||
using Volo.Abp.MultiTenancy; |
|||
using Volo.Abp.PermissionManagement; |
|||
using Volo.Abp.Uow; |
|||
|
|||
namespace LINGYUN.Platform.EventBus.Handlers |
|||
{ |
|||
public class TenantCreateEventHandler : IDistributedEventHandler<CreateEventData>, ITransientDependency |
|||
{ |
|||
protected ICurrentTenant CurrentTenant { get; } |
|||
protected IGuidGenerator GuidGenerator { get; } |
|||
protected IUnitOfWorkManager UnitOfWorkManager { get; } |
|||
protected IPermissionGrantRepository PermissionGrantRepository { get; } |
|||
protected IPermissionDefinitionManager PermissionDefinitionManager { get; } |
|||
public TenantCreateEventHandler( |
|||
ICurrentTenant currentTenant, |
|||
IGuidGenerator guidGenerator, |
|||
IUnitOfWorkManager unitOfWorkManager, |
|||
IPermissionGrantRepository permissionGrantRepository, |
|||
IPermissionDefinitionManager permissionDefinitionManager) |
|||
{ |
|||
CurrentTenant = currentTenant; |
|||
GuidGenerator = guidGenerator; |
|||
UnitOfWorkManager = unitOfWorkManager; |
|||
PermissionGrantRepository = permissionGrantRepository; |
|||
PermissionDefinitionManager = permissionDefinitionManager; |
|||
} |
|||
|
|||
public async Task HandleEventAsync(CreateEventData eventData) |
|||
{ |
|||
using (var unitOfWork = UnitOfWorkManager.Begin()) |
|||
{ |
|||
// 订阅租户新增事件,置入管理员角色所有权限
|
|||
using (CurrentTenant.Change(eventData.Id, eventData.Name)) |
|||
{ |
|||
var definitionPermissions = PermissionDefinitionManager.GetPermissions(); |
|||
var grantPermissions = definitionPermissions.Select(p => p.Name).ToArray(); |
|||
//var grantPermissions = new List<PermissionGrant>();
|
|||
//foreach (var permission in definitionPermissions)
|
|||
//{
|
|||
// var permissionGrant = new PermissionGrant(GuidGenerator.Create(),
|
|||
// permission.Name, "R", "admin", eventData.Id);
|
|||
// grantPermissions.Add(permissionGrant);
|
|||
//}
|
|||
// TODO: MySql 批量新增还是一条一条的语句?
|
|||
// await PermissionGrantRepository.GetDbSet().AddRangeAsync(grantPermissions);
|
|||
|
|||
var permissionEntityType = PermissionGrantRepository.GetDbContext() |
|||
.Model.FindEntityType(typeof(PermissionGrant)); |
|||
var permissionTableName = permissionEntityType.GetTableName(); |
|||
var batchInsertPermissionSql = string.Empty; |
|||
if (PermissionGrantRepository.GetDbContext().Database.IsMySql()) |
|||
{ |
|||
batchInsertPermissionSql = BuildMySqlBatchInsertScript(permissionTableName, eventData.Id, grantPermissions); |
|||
} |
|||
else |
|||
{ |
|||
batchInsertPermissionSql = BuildSqlServerBatchInsertScript(permissionTableName, eventData.Id, grantPermissions); |
|||
} |
|||
await PermissionGrantRepository.GetDbContext().Database.ExecuteSqlRawAsync(batchInsertPermissionSql); |
|||
|
|||
await unitOfWork.CompleteAsync(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
protected virtual string BuildMySqlBatchInsertScript(string tableName, Guid tenantId, string[] permissions) |
|||
{ |
|||
var batchRmovePermissionSql = new StringBuilder(128); |
|||
batchRmovePermissionSql.AppendLine($"INSERT INTO `{tableName}`(`Id`, `TenantId`, `Name`, `ProviderName`, `ProviderKey`)"); |
|||
batchRmovePermissionSql.AppendLine("VALUES"); |
|||
for (int i = 0; i < permissions.Length; i++) |
|||
{ |
|||
batchRmovePermissionSql.AppendLine($"(UUID(), '{tenantId}','{permissions[i]}','R','admin')"); |
|||
if(i < permissions.Length - 1) |
|||
{ |
|||
batchRmovePermissionSql.AppendLine(","); |
|||
} |
|||
} |
|||
return batchRmovePermissionSql.ToString(); |
|||
} |
|||
|
|||
protected virtual string BuildSqlServerBatchInsertScript(string tableName, Guid tenantId, string[] permissions) |
|||
{ |
|||
var batchRmovePermissionSql = new StringBuilder(128); |
|||
batchRmovePermissionSql.AppendLine($"INSERT INTO {tableName}(Id, TenantId, Name, ProviderName, ProviderKey)"); |
|||
batchRmovePermissionSql.Append("VALUES"); |
|||
for (int i = 0; i < permissions.Length; i++) |
|||
{ |
|||
batchRmovePermissionSql.AppendLine($"(NEWID(), '{tenantId}','{permissions[i]}','R','admin')"); |
|||
if (i < permissions.Length - 1) |
|||
{ |
|||
batchRmovePermissionSql.AppendLine(","); |
|||
} |
|||
} |
|||
return batchRmovePermissionSql.ToString(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,82 @@ |
|||
using LINGYUN.Common.EventBus.Tenants; |
|||
using Microsoft.EntityFrameworkCore; |
|||
using System; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.DependencyInjection; |
|||
using Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.EventBus.Distributed; |
|||
using Volo.Abp.Guids; |
|||
using Volo.Abp.MultiTenancy; |
|||
using Volo.Abp.PermissionManagement; |
|||
using Volo.Abp.Uow; |
|||
|
|||
namespace LINGYUN.Platform.EventBus.Handlers |
|||
{ |
|||
public class TenantDeleteEventHandler : IDistributedEventHandler<DeleteEventData>, ITransientDependency |
|||
{ |
|||
protected ICurrentTenant CurrentTenant { get; } |
|||
protected IGuidGenerator GuidGenerator { get; } |
|||
protected IUnitOfWorkManager UnitOfWorkManager { get; } |
|||
protected IPermissionGrantRepository PermissionGrantRepository { get; } |
|||
public TenantDeleteEventHandler( |
|||
ICurrentTenant currentTenant, |
|||
IGuidGenerator guidGenerator, |
|||
IUnitOfWorkManager unitOfWorkManager, |
|||
IPermissionGrantRepository permissionGrantRepository) |
|||
{ |
|||
CurrentTenant = currentTenant; |
|||
GuidGenerator = guidGenerator; |
|||
UnitOfWorkManager = unitOfWorkManager; |
|||
PermissionGrantRepository = permissionGrantRepository; |
|||
} |
|||
|
|||
public async Task HandleEventAsync(DeleteEventData eventData) |
|||
{ |
|||
using (var unitOfWork = UnitOfWorkManager.Begin()) |
|||
{ |
|||
// 订阅租户删除事件,删除管理员角色所有权限
|
|||
// TODO: 租户貌似不存在了,删除应该会失败
|
|||
using (CurrentTenant.Change(eventData.Id)) |
|||
{ |
|||
var grantPermissions = await PermissionGrantRepository.GetListAsync("R", "admin"); |
|||
|
|||
// EfCore MySql 批量删除还是一条一条的语句?
|
|||
// PermissionGrantRepository.GetDbSet().RemoveRange(grantPermissions);
|
|||
var permissionEntityType = PermissionGrantRepository.GetDbContext().Model.FindEntityType(typeof(PermissionGrant)); |
|||
var permissionTableName = permissionEntityType.GetTableName(); |
|||
var batchRmovePermissionSql = string.Empty; |
|||
if (PermissionGrantRepository.GetDbContext().Database.IsMySql()) |
|||
{ |
|||
batchRmovePermissionSql = BuildMySqlBatchDeleteScript(permissionTableName, eventData.Id); |
|||
} |
|||
else |
|||
{ |
|||
batchRmovePermissionSql = BuildSqlServerBatchDeleteScript(permissionTableName, eventData.Id); |
|||
} |
|||
|
|||
await PermissionGrantRepository.GetDbContext().Database |
|||
.ExecuteSqlRawAsync(batchRmovePermissionSql); |
|||
|
|||
await unitOfWork.CompleteAsync(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
protected virtual string BuildMySqlBatchDeleteScript(string tableName, Guid tenantId) |
|||
{ |
|||
var batchRmovePermissionSql = new StringBuilder(128); |
|||
batchRmovePermissionSql.AppendLine($"DELETE FROM `{tableName}` WHERE `TenantId` = '{tenantId}'"); |
|||
batchRmovePermissionSql.AppendLine("AND `ProviderName`='R' AND `ProviderKey`='admin'"); |
|||
return batchRmovePermissionSql.ToString(); |
|||
} |
|||
|
|||
protected virtual string BuildSqlServerBatchDeleteScript(string tableName, Guid tenantId) |
|||
{ |
|||
var batchRmovePermissionSql = new StringBuilder(128); |
|||
batchRmovePermissionSql.AppendLine($"DELETE {tableName} WHERE TenantId = '{tenantId}'"); |
|||
batchRmovePermissionSql.AppendLine("AND ProviderName='R' AND ProviderKey='admin'"); |
|||
return batchRmovePermissionSql.ToString(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,47 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk.Web"> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netcoreapp3.1</TargetFramework> |
|||
<RootNamespace>LINGYUN.Platform</RootNamespace> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<PackageReference Include="DotNetCore.CAP.MySql" Version="3.0.3" /> |
|||
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="3.0.3" /> |
|||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.3"> |
|||
<PrivateAssets>all</PrivateAssets> |
|||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> |
|||
</PackageReference> |
|||
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.1.3" /> |
|||
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="3.1.3" /> |
|||
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.1" /> |
|||
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" /> |
|||
<PackageReference Include="Serilog.Enrichers.Assembly" Version="2.0.0" /> |
|||
<PackageReference Include="Serilog.Enrichers.Process" Version="2.0.1" /> |
|||
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" /> |
|||
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" /> |
|||
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" /> |
|||
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.4.1" /> |
|||
<PackageReference Include="Volo.Abp.AspNetCore.MultiTenancy" Version="2.7.0" /> |
|||
<PackageReference Include="Volo.Abp.Autofac" Version="2.7.0" /> |
|||
<PackageReference Include="Volo.Abp.EntityFrameworkCore.MySQL" Version="2.7.0" /> |
|||
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="2.7.0" /> |
|||
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="2.7.0" /> |
|||
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.IdentityServer" Version="2.7.0" /> |
|||
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi" Version="2.7.0" /> |
|||
<PackageReference Include="Volo.Abp.TenantManagement.EntityFrameworkCore" Version="2.7.0" /> |
|||
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="2.7.0" /> |
|||
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="2.7.0" /> |
|||
</ItemGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\..\..\modules\apigateway\LINGYUN.ApiGateway.Application.Contracts\LINGYUN.ApiGateway.Application.Contracts.csproj" /> |
|||
<ProjectReference Include="..\..\..\modules\common\LINGYUN.Abp.EventBus.CAP\LINGYUN.Abp.EventBus.CAP.csproj" /> |
|||
<ProjectReference Include="..\..\..\modules\identityServer\LINGYUN.IdentityServer.Application.Contracts\LINGYUN.IdentityServer.Application.Contracts.csproj" /> |
|||
<ProjectReference Include="..\..\..\modules\permissions\LINGYUN.Abp.PermissionManagement.Application\LINGYUN.Abp.PermissionManagement.Application.csproj" /> |
|||
<ProjectReference Include="..\..\..\modules\settings\LINGYUN.Abp.SettingManagement.Application.Contracts\LINGYUN.Abp.SettingManagement.Application.Contracts.csproj" /> |
|||
<ProjectReference Include="..\..\..\modules\tenants\LINGYUN.TenantManagement.Application\LINGYUN.TenantManagement.Application.csproj" /> |
|||
<ProjectReference Include="..\..\..\modules\tenants\LINGYUN.TenantManagement.HttpApi\LINGYUN.TenantManagement.HttpApi.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,35 @@ |
|||
using Microsoft.AspNetCore.Http; |
|||
using System.Linq; |
|||
using Volo.Abp.AspNetCore.MultiTenancy; |
|||
using Volo.Abp.MultiTenancy; |
|||
using Volo.Abp.Security.Claims; |
|||
|
|||
namespace LINGYUN.Platform.MultiTenancy |
|||
{ |
|||
public class AuthorizationTenantResolveContributor : HttpTenantResolveContributorBase |
|||
{ |
|||
public override string Name => "Authorization"; |
|||
|
|||
protected override string GetTenantIdOrNameFromHttpContextOrNull(ITenantResolveContext context, HttpContext httpContext) |
|||
{ |
|||
if (httpContext.User?.Identity == null) |
|||
{ |
|||
return null; |
|||
} |
|||
if (!httpContext.User.Identity.IsAuthenticated) |
|||
{ |
|||
return null; |
|||
} |
|||
var tenantIdKey = context.GetAbpAspNetCoreMultiTenancyOptions().TenantKey; |
|||
|
|||
var tenantClaim = httpContext.User.Claims.FirstOrDefault(x => x.Type.Equals(AbpClaimTypes.TenantId)); |
|||
|
|||
if (tenantClaim == null) |
|||
{ |
|||
return null; |
|||
} |
|||
|
|||
return tenantClaim.Value; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,168 @@ |
|||
using DotNetCore.CAP; |
|||
using IdentityModel; |
|||
using LINGYUN.Abp.EventBus.CAP; |
|||
using LINGYUN.Abp.IdentityServer; |
|||
using LINGYUN.Abp.SettingManagement; |
|||
using LINGYUN.Abp.TenantManagement; |
|||
using LINGYUN.ApiGateway; |
|||
using LINGYUN.Platform.MultiTenancy; |
|||
using Microsoft.AspNetCore.Builder; |
|||
using Microsoft.AspNetCore.DataProtection; |
|||
using Microsoft.AspNetCore.Hosting; |
|||
using Microsoft.Extensions.Configuration; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Microsoft.Extensions.Hosting; |
|||
using Microsoft.OpenApi.Models; |
|||
using StackExchange.Redis; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using Volo.Abp; |
|||
using Volo.Abp.AspNetCore.MultiTenancy; |
|||
using Volo.Abp.Autofac; |
|||
using Volo.Abp.EntityFrameworkCore; |
|||
using Volo.Abp.EntityFrameworkCore.MySQL; |
|||
using Volo.Abp.Identity; |
|||
using Volo.Abp.Localization; |
|||
using Volo.Abp.Modularity; |
|||
using Volo.Abp.MultiTenancy; |
|||
using Volo.Abp.PermissionManagement.EntityFrameworkCore; |
|||
using Volo.Abp.PermissionManagement.HttpApi; |
|||
using Volo.Abp.PermissionManagement.Identity; |
|||
using Volo.Abp.PermissionManagement.IdentityServer; |
|||
using Volo.Abp.Security.Claims; |
|||
using Volo.Abp.SettingManagement.EntityFrameworkCore; |
|||
using Volo.Abp.TenantManagement.EntityFrameworkCore; |
|||
using AbpPermissionManagementApplicationModule = LINGYUN.Abp.PermissionManagement.AbpPermissionManagementApplicationModule; |
|||
|
|||
namespace LINGYUN.Platform |
|||
{ |
|||
[DependsOn( |
|||
typeof(AbpAspNetCoreMultiTenancyModule), |
|||
typeof(AbpPermissionManagementDomainIdentityModule), |
|||
typeof(AbpPermissionManagementDomainIdentityServerModule), |
|||
typeof(ApiGatewayApplicationContractsModule), |
|||
typeof(AbpIdentityApplicationContractsModule), |
|||
typeof(AbpIdentityServerApplicationContractsModule), |
|||
typeof(AbpSettingManagementApplicationContractsModule), |
|||
typeof(AbpPermissionManagementApplicationModule), |
|||
typeof(AbpTenantManagementApplicationModule), |
|||
typeof(AbpTenantManagementHttpApiModule), |
|||
typeof(AbpPermissionManagementHttpApiModule), |
|||
typeof(AbpEntityFrameworkCoreMySQLModule), |
|||
typeof(AbpTenantManagementEntityFrameworkCoreModule), |
|||
typeof(AbpSettingManagementEntityFrameworkCoreModule), |
|||
typeof(AbpPermissionManagementEntityFrameworkCoreModule), |
|||
typeof(AbpCAPEventBusModule), |
|||
typeof(AbpAutofacModule) |
|||
)] |
|||
public class PlatformHttpApiHostModule : AbpModule |
|||
{ |
|||
public override void PreConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
var configuration = context.Services.GetConfiguration(); |
|||
|
|||
PreConfigure<CapOptions>(options => |
|||
{ |
|||
options |
|||
.UseMySql(configuration.GetConnectionString("Default")) |
|||
.UseRabbitMQ(rabbitMQOptions => |
|||
{ |
|||
configuration.GetSection("CAP:RabbitMQ").Bind(rabbitMQOptions); |
|||
}); |
|||
}); |
|||
} |
|||
|
|||
public override void ConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
var hostingEnvironment = context.Services.GetHostingEnvironment(); |
|||
var configuration = hostingEnvironment.BuildConfiguration(); |
|||
// 配置Ef
|
|||
Configure<AbpDbContextOptions>(options => |
|||
{ |
|||
options.UseMySQL(); |
|||
}); |
|||
|
|||
// 多租户
|
|||
Configure<AbpMultiTenancyOptions>(options => |
|||
{ |
|||
options.IsEnabled = true; |
|||
}); |
|||
|
|||
Configure<AbpTenantResolveOptions>(options => |
|||
{ |
|||
options.TenantResolvers.Insert(0, new AuthorizationTenantResolveContributor()); |
|||
}); |
|||
|
|||
// Swagger
|
|||
context.Services.AddSwaggerGen( |
|||
options => |
|||
{ |
|||
options.SwaggerDoc("v1", new OpenApiInfo { Title = "Platform API", Version = "v1" }); |
|||
options.DocInclusionPredicate((docName, description) => true); |
|||
options.CustomSchemaIds(type => type.FullName); |
|||
}); |
|||
|
|||
// 支持本地化语言类型
|
|||
Configure<AbpLocalizationOptions>(options => |
|||
{ |
|||
options.Languages.Add(new LanguageInfo("en", "en", "English")); |
|||
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); |
|||
}); |
|||
|
|||
context.Services.AddAuthentication("Bearer") |
|||
.AddIdentityServerAuthentication(options => |
|||
{ |
|||
options.Authority = configuration["AuthServer:Authority"]; |
|||
options.RequireHttpsMetadata = false; |
|||
options.ApiName = configuration["AuthServer:ApiName"]; |
|||
AbpClaimTypes.UserId = JwtClaimTypes.Subject; |
|||
AbpClaimTypes.UserName = JwtClaimTypes.Name; |
|||
AbpClaimTypes.Role = JwtClaimTypes.Role; |
|||
AbpClaimTypes.Email = JwtClaimTypes.Email; |
|||
}); |
|||
|
|||
context.Services.AddStackExchangeRedisCache(options => |
|||
{ |
|||
options.Configuration = configuration["RedisCache:ConnectString"]; |
|||
var instanceName = configuration["RedisCache:RedisPrefix"]; |
|||
options.InstanceName = instanceName.IsNullOrEmpty() ? "Platform_Cache" : instanceName; |
|||
}); |
|||
|
|||
if (!hostingEnvironment.IsDevelopment()) |
|||
{ |
|||
var redis = ConnectionMultiplexer.Connect(configuration["RedisCache:ConnectString"]); |
|||
context.Services |
|||
.AddDataProtection() |
|||
.PersistKeysToStackExchangeRedis(redis, "Platform-Protection-Keys"); |
|||
} |
|||
} |
|||
|
|||
public override void OnApplicationInitialization(ApplicationInitializationContext context) |
|||
{ |
|||
var app = context.GetApplicationBuilder(); |
|||
// http调用链
|
|||
app.UseCorrelationId(); |
|||
// 虚拟文件系统
|
|||
app.UseVirtualFiles(); |
|||
// 本地化
|
|||
app.UseAbpRequestLocalization(); |
|||
//路由
|
|||
app.UseRouting(); |
|||
// 认证
|
|||
app.UseAuthentication(); |
|||
// 多租户
|
|||
app.UseMultiTenancy(); |
|||
// Swagger
|
|||
app.UseSwagger(); |
|||
// Swagger可视化界面
|
|||
app.UseSwaggerUI(options => |
|||
{ |
|||
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support Platform API"); |
|||
}); |
|||
// 审计日志
|
|||
app.UseAuditing(); |
|||
// 路由
|
|||
app.UseMvcWithDefaultRouteAndArea(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,49 @@ |
|||
using Microsoft.AspNetCore.Hosting; |
|||
using Microsoft.Extensions.Configuration; |
|||
using Microsoft.Extensions.Hosting; |
|||
using Serilog; |
|||
using System; |
|||
using System.IO; |
|||
|
|||
namespace LINGYUN.Platform |
|||
{ |
|||
public class Program |
|||
{ |
|||
public static int Main(string[] args) |
|||
{ |
|||
var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"; |
|||
var configuration = new ConfigurationBuilder() |
|||
.SetBasePath(Directory.GetCurrentDirectory()) |
|||
.AddJsonFile($"appsettings.{env}.json", optional: false, reloadOnChange: true) |
|||
.AddEnvironmentVariables() |
|||
.Build(); |
|||
Log.Logger = new LoggerConfiguration() |
|||
.ReadFrom.Configuration(configuration) |
|||
.CreateLogger(); |
|||
try |
|||
{ |
|||
Log.Information("Starting web host."); |
|||
CreateHostBuilder(args).Build().Run(); |
|||
return 0; |
|||
} |
|||
catch (Exception ex) |
|||
{ |
|||
Log.Fatal(ex, "Host terminated unexpectedly!"); |
|||
return 1; |
|||
} |
|||
finally |
|||
{ |
|||
Log.CloseAndFlush(); |
|||
} |
|||
} |
|||
|
|||
internal static IHostBuilder CreateHostBuilder(string[] args) => |
|||
Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args) |
|||
.ConfigureWebHostDefaults(webBuilder => |
|||
{ |
|||
webBuilder.UseStartup<Startup>(); |
|||
}) |
|||
.UseSerilog() |
|||
.UseAutofac(); |
|||
} |
|||
} |
|||
@ -0,0 +1,20 @@ |
|||
{ |
|||
"iisSettings": { |
|||
"windowsAuthentication": false, |
|||
"anonymousAuthentication": true, |
|||
"iisExpress": { |
|||
"applicationUrl": "http://localhost:54521", |
|||
"sslPort": 0 |
|||
} |
|||
}, |
|||
"profiles": { |
|||
"LINGYUN.Platform.HttpApi.Host": { |
|||
"commandName": "Project", |
|||
"launchBrowser": false, |
|||
"applicationUrl": "http://localhost:30010", |
|||
"environmentVariables": { |
|||
"ASPNETCORE_ENVIRONMENT": "Development" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
using Microsoft.AspNetCore.Builder; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
|
|||
namespace LINGYUN.Platform |
|||
{ |
|||
public class Startup |
|||
{ |
|||
public void ConfigureServices(IServiceCollection services) |
|||
{ |
|||
services.AddApplication<PlatformHttpApiHostModule>(); |
|||
} |
|||
|
|||
public void Configure(IApplicationBuilder app) |
|||
{ |
|||
app.InitializeApplication(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
@echo off |
|||
cls |
|||
|
|||
start .\start-identity-server.bat --run |
|||
start .\start-apigateway-admin.bat --run |
|||
start .\start-platform.bat --run |
|||
@ -1,6 +0,0 @@ |
|||
@echo off |
|||
cls |
|||
|
|||
start .\start-identity-server.bat --run |
|||
start .\start-apigateway-admin.cmd --run |
|||
start .\start-apigateway-host.cmd --run |
|||
@ -0,0 +1,29 @@ |
|||
@echo off |
|||
cls |
|||
chcp 65001 |
|||
|
|||
echo. 启动平台管理服务 |
|||
|
|||
cd .\platform\LINGYUN.Platform.HttpApi.Host |
|||
|
|||
if '%1' equ '--publish' goto publish |
|||
if '%1' equ '--run' goto run |
|||
if '%1' equ '--restore' goto restore |
|||
if '%1' equ '' goto run |
|||
exit |
|||
|
|||
:publish |
|||
dotnet publish -c Release -o ..\..\Publish\platform --no-cache --no-restore |
|||
copy Dockerfile ..\..\Publish\platform\Dockerfile |
|||
pause |
|||
exit |
|||
|
|||
:run |
|||
dotnet run |
|||
pause |
|||
exit |
|||
|
|||
:restore |
|||
dotnet restore |
|||
pause |
|||
exit |
|||
@ -0,0 +1,193 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div class="filter-container"> |
|||
<el-form |
|||
v-if="checkPermission(['ApiGateway.AggregateRoute.ManageRouteConfig'])" |
|||
ref="formAggregateRouteConfig" |
|||
label-width="100px" |
|||
:model="routeConfig" |
|||
:rules="routeConfigRules" |
|||
> |
|||
<el-form-item |
|||
prop="reRouteKey" |
|||
:label="$t('apiGateWay.aggregateRouteKey')" |
|||
> |
|||
<el-input |
|||
v-model="routeConfig.reRouteKey" |
|||
:placeholder="$t('pleaseInputBy', {key: $t('apiGateWay.aggregateRouteKey')})" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item |
|||
prop="parameter" |
|||
:label="$t('apiGateWay.aggregateParameter')" |
|||
> |
|||
<el-input |
|||
v-model="routeConfig.parameter" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item |
|||
prop="jsonPath" |
|||
:label="$t('apiGateWay.aggregateJsonPath')" |
|||
> |
|||
<el-input |
|||
v-model="routeConfig.jsonPath" |
|||
/> |
|||
</el-form-item> |
|||
|
|||
<el-form-item |
|||
style="text-align: center;" |
|||
label-width="0px" |
|||
> |
|||
<el-button |
|||
type="primary" |
|||
style="width:180px" |
|||
@click="onSaveAggregateRouteConfig" |
|||
> |
|||
{{ $t('apiGateWay.createAggregateRouteConfig') }} |
|||
</el-button> |
|||
</el-form-item> |
|||
<el-divider /> |
|||
</el-form> |
|||
</div> |
|||
<el-table |
|||
row-key="key" |
|||
:data="aggregateRoute.reRouteKeysConfig" |
|||
border |
|||
fit |
|||
highlight-current-row |
|||
style="width: 100%;" |
|||
> |
|||
<el-table-column |
|||
:label="$t('apiGateWay.aggregateRouteKey')" |
|||
prop="aggregateRouteKey" |
|||
sortable |
|||
width="200px" |
|||
align="center" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<span>{{ row.aggregateRouteKey }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
:label="$t('apiGateWay.aggregateParameter')" |
|||
prop="parameter" |
|||
sortable |
|||
min-width="200px" |
|||
align="center" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<span>{{ row.parameter }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
:label="$t('apiGateWay.aggregateJsonPath')" |
|||
prop="jsonPath" |
|||
sortable |
|||
min-width="200px" |
|||
align="center" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<span>{{ row.jsonPath }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
:label="$t('global.operaActions')" |
|||
align="center" |
|||
width="150px" |
|||
fixed="right" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<el-button |
|||
:disabled="!checkPermission(['ApiGateway.AggregateRoute.ManageRouteConfig'])" |
|||
size="mini" |
|||
type="primary" |
|||
@click="handleDeleteAggregateRouteConfig(row.reRouteKey)" |
|||
> |
|||
{{ $t('apiGateWay.deleteAggregateRouteConfig') }} |
|||
</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import ApiGatewayService, { AggregateReRouteConfigCreate, AggregateReRoute } from '@/api/apigateway' |
|||
import { Component, Vue, Prop, Watch } from 'vue-property-decorator' |
|||
import { checkPermission } from '@/utils/permission' |
|||
|
|||
@Component({ |
|||
name: 'AggregateRouteConfigEditForm', |
|||
methods: { |
|||
checkPermission |
|||
} |
|||
}) |
|||
export default class extends Vue { |
|||
@Prop({ default: '' }) |
|||
private aggregateRouteId!: string |
|||
|
|||
private aggregateRoute!: AggregateReRoute |
|||
private routeConfig: AggregateReRouteConfigCreate |
|||
private routeConfigRules = { |
|||
reRouteKey: [ |
|||
{ required: true, message: this.l('pleaseInputBy', { key: this.l('apiGateWay.aggregateRouteKey') }), trigger: 'blur' } |
|||
] |
|||
} |
|||
|
|||
constructor() { |
|||
super() |
|||
this.aggregateRoute = AggregateReRoute.empty() |
|||
this.routeConfig = AggregateReRouteConfigCreate.empty() |
|||
} |
|||
|
|||
@Watch('aggregateRouteId', { immediate: true }) |
|||
private onAggregateRouteIdChanged() { |
|||
if (this.aggregateRouteId) { |
|||
ApiGatewayService.getAggregateReRouteByRouteId(this.aggregateRouteId).then(route => { |
|||
this.aggregateRoute = route |
|||
}) |
|||
} |
|||
} |
|||
|
|||
private handleDeleteAggregateRouteConfig(key: string) { |
|||
this.$confirm(this.l('apiGateWay.deleteAggregateRouteConfigByKey', { key: key }), |
|||
this.l('apiGateWay.deleteAggregateRouteConfig'), { |
|||
callback: (action) => { |
|||
if (action === 'confirm') { |
|||
ApiGatewayService.deleteAggregateRouteConfig(this.aggregateRoute.reRouteId, key).then(() => { |
|||
const deleteRouteConfigIndex = this.aggregateRoute.reRouteKeysConfig.findIndex(p => p.reRouteKey === key) |
|||
this.aggregateRoute.reRouteKeysConfig.splice(deleteRouteConfigIndex, 1) |
|||
this.$message.success(this.l('apiGateWay.deleteAggregateRouteConfigSuccess', { key: key })) |
|||
this.$emit('closed', true) |
|||
}) |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
|
|||
private onSaveAggregateRouteConfig() { |
|||
const frmIdentityProperty = this.$refs.formIdentityProperty as any |
|||
frmIdentityProperty.validate((valid: boolean) => { |
|||
if (valid) { |
|||
this.routeConfig.routeId = this.aggregateRoute.reRouteId |
|||
ApiGatewayService.createAggregateRouteConfig(this.routeConfig).then(routeConfig => { |
|||
this.aggregateRoute.reRouteKeysConfig.push(routeConfig) |
|||
const successMessage = this.l('apiGateWay.createAggregateRouteConfigSuccess', { key: routeConfig.reRouteKey }) |
|||
this.$message.success(successMessage) |
|||
this.resetFields() |
|||
this.$emit('closed', true) |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
|
|||
public resetFields() { |
|||
this.aggregateRouteId = '' |
|||
this.routeConfig = AggregateReRouteConfigCreate.empty() |
|||
} |
|||
|
|||
private l(name: string, values?: any[] | { [key: string]: any }) { |
|||
return this.$t(name, values).toString() |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,142 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div class="filter-container"> |
|||
<el-form |
|||
ref="formTenant" |
|||
label-width="120px" |
|||
:model="tenant" |
|||
:rules="tenantRules" |
|||
> |
|||
<el-form-item |
|||
prop="name" |
|||
:label="$t('tenant.name')" |
|||
> |
|||
<el-input |
|||
v-model="tenant.name" |
|||
:placeholder="$t('pleaseInputBy', {key: $t('tenant.name')})" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item |
|||
v-if="!isEditTenant" |
|||
prop="adminEmailAddress" |
|||
:label="$t('tenant.adminEmailAddress')" |
|||
> |
|||
<el-input |
|||
v-model="tenant.adminEmailAddress" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item |
|||
v-if="!isEditTenant" |
|||
prop="adminPassword" |
|||
:label="$t('tenant.adminPassword')" |
|||
> |
|||
<el-input |
|||
v-model="tenant.adminPassword" |
|||
/> |
|||
</el-form-item> |
|||
|
|||
<el-form-item> |
|||
<el-button |
|||
class="cancel" |
|||
style="width:100px;right: 120px;position: absolute;" |
|||
@click="onCancel" |
|||
> |
|||
{{ $t('global.cancel') }} |
|||
</el-button> |
|||
<el-button |
|||
class="confirm" |
|||
type="primary" |
|||
style="width:100px;right: 10px;position: absolute;" |
|||
@click="onSaveTenant" |
|||
> |
|||
{{ $t('global.confirm') }} |
|||
</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import TenantService, { TenantCreateOrEdit } from '@/api/tenant' |
|||
import { Component, Prop, Vue, Watch } from 'vue-property-decorator' |
|||
|
|||
@Component({ |
|||
name: 'TenantCreateOrEditForm' |
|||
}) |
|||
export default class extends Vue { |
|||
@Prop({ default: '' }) |
|||
private tenantId!: string |
|||
|
|||
private tenant!: TenantCreateOrEdit |
|||
|
|||
get isEditTenant() { |
|||
if (this.tenantId) { |
|||
return true |
|||
} |
|||
return false |
|||
} |
|||
|
|||
private tenantRules = { |
|||
name: [ |
|||
{ required: true, message: this.l('pleaseInputBy', { key: this.l('tenant.name') }), trigger: 'blur' } |
|||
], |
|||
adminEmailAddress: [ |
|||
{ required: true, message: this.l('pleaseInputBy', { key: this.l('tenant.adminEmailAddress') }), trigger: 'blur' }, |
|||
{ type: 'email', message: this.l('pleaseInputBy', { key: this.l('global.correctEmailAddress') }), trigger: 'blur' } |
|||
] |
|||
} |
|||
|
|||
constructor() { |
|||
super() |
|||
this.tenant = TenantCreateOrEdit.empty() |
|||
} |
|||
|
|||
@Watch('tenantId', { immediate: true }) |
|||
private onTenantIdChanged() { |
|||
if (this.tenantId) { |
|||
TenantService.getTenantById(this.tenantId).then(tenant => { |
|||
this.tenant.name = tenant.name |
|||
}) |
|||
} else { |
|||
this.tenant = TenantCreateOrEdit.empty() |
|||
} |
|||
} |
|||
|
|||
private onSaveTenant() { |
|||
const frmTenant = this.$refs.formTenant as any |
|||
frmTenant.validate((valid: boolean) => { |
|||
if (valid) { |
|||
if (this.isEditTenant) { |
|||
TenantService.changeTenantName(this.tenantId, this.tenant.name).then(tenant => { |
|||
const message = this.l('tenant.tenantNameChanged', { name: tenant.name }) |
|||
this.$message.success(message) |
|||
this.reset() |
|||
this.$emit('closed', true) |
|||
}) |
|||
} else { |
|||
TenantService.createTenant(this.tenant).then(tenant => { |
|||
const message = this.l('tenant.createTenantSuccess', { name: tenant.name }) |
|||
this.$message.success(message) |
|||
this.reset() |
|||
this.$emit('closed', true) |
|||
}) |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
|
|||
private onCancel() { |
|||
this.reset() |
|||
this.$emit('closed', false) |
|||
} |
|||
|
|||
private reset() { |
|||
this.tenant = TenantCreateOrEdit.empty() |
|||
} |
|||
|
|||
private l(name: string, values?: any[] | { [key: string]: any }) { |
|||
return this.$t(name, values).toString() |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,189 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div class="filter-container"> |
|||
<el-form |
|||
v-if="checkPermission(['AbpTenantManagement.Tenants.ManageConnectionStrings'])" |
|||
ref="formTenantConnection" |
|||
label-width="100px" |
|||
:model="tenantConnection" |
|||
:rules="tenantConnectionRules" |
|||
> |
|||
<el-form-item |
|||
prop="name" |
|||
:label="$t('tenant.connectionName')" |
|||
> |
|||
<el-input |
|||
v-model="tenantConnection.name" |
|||
:placeholder="$t('pleaseInputBy', {key: $t('tenant.connectionName')})" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item |
|||
prop="value" |
|||
:label="$t('tenant.connectionString')" |
|||
> |
|||
<el-input |
|||
v-model="tenantConnection.value" |
|||
:placeholder="$t('pleaseInputBy', {key: $t('tenant.connectionString')})" |
|||
/> |
|||
</el-form-item> |
|||
|
|||
<el-form-item |
|||
style="text-align: center;" |
|||
label-width="0px" |
|||
> |
|||
<el-button |
|||
type="primary" |
|||
style="width:180px" |
|||
@click="onSaveTenantConnection" |
|||
> |
|||
{{ $t('tenant.setTenantConnection') }} |
|||
</el-button> |
|||
</el-form-item> |
|||
<el-divider /> |
|||
</el-form> |
|||
</div> |
|||
<el-table |
|||
row-key="key" |
|||
:data="tenantConnections" |
|||
border |
|||
fit |
|||
highlight-current-row |
|||
style="width: 100%;" |
|||
> |
|||
<el-table-column |
|||
:label="$t('tenant.connectionName')" |
|||
prop="name" |
|||
sortable |
|||
width="200px" |
|||
align="center" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<span>{{ row.name }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
:label="$t('tenant.connectionString')" |
|||
prop="value" |
|||
sortable |
|||
min-width="400px" |
|||
align="center" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<span>{{ row.value }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
:label="$t('operaActions')" |
|||
align="center" |
|||
width="150px" |
|||
fixed="right" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<el-button |
|||
:disabled="!checkPermission(['AbpTenantManagement.Tenants.ManageConnectionStrings'])" |
|||
size="mini" |
|||
type="primary" |
|||
@click="handleDeleteTenantConnection(row.name)" |
|||
> |
|||
{{ $t('tenant.deleteConnection') }} |
|||
</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import TenantService, { TenantConnectionString } from '@/api/tenant' |
|||
import { Component, Vue, Prop, Watch } from 'vue-property-decorator' |
|||
import { checkPermission } from '@/utils/permission' |
|||
|
|||
@Component({ |
|||
name: 'TenantEditConnectionForm', |
|||
methods: { |
|||
checkPermission |
|||
} |
|||
}) |
|||
export default class extends Vue { |
|||
@Prop({ default: '' }) |
|||
private tenantId!: string |
|||
|
|||
private tenantConnection: TenantConnectionString |
|||
private tenantConnections: TenantConnectionString[] |
|||
private tenantConnectionRules = { |
|||
name: [ |
|||
{ required: true, message: this.l('pleaseInputBy', { key: this.l('tenant.connectionName') }), trigger: 'blur' } |
|||
], |
|||
value: [ |
|||
{ required: true, message: this.l('pleaseInputBy', { key: this.l('tenant.connectionString') }), trigger: 'blur' } |
|||
] |
|||
} |
|||
|
|||
constructor() { |
|||
super() |
|||
this.tenantConnection = TenantConnectionString.empty() |
|||
this.tenantConnections = new Array<TenantConnectionString>() |
|||
} |
|||
|
|||
@Watch('tenantId', { immediate: true }) |
|||
private onTenantIdChanged() { |
|||
if (this.tenantId) { |
|||
TenantService.getTenantConnections(this.tenantId).then(connections => { |
|||
this.tenantConnections = connections.items |
|||
}) |
|||
} else { |
|||
this.tenantConnection = TenantConnectionString.empty() |
|||
this.tenantConnections = new Array<TenantConnectionString>() |
|||
} |
|||
} |
|||
|
|||
private handleDeleteTenantConnection(name: string) { |
|||
this.$confirm(this.l('tenant.deleteTenantConnectionName', { name: name }), |
|||
this.l('tenant.deleteConnection'), { |
|||
callback: (action) => { |
|||
if (action === 'confirm') { |
|||
TenantService.deleteTenantConnectionByName(this.tenantId, name).then(() => { |
|||
const deleteTenantConnectionIndex = this.tenantConnections.findIndex(p => p.name === name) |
|||
this.tenantConnections.splice(deleteTenantConnectionIndex, 1) |
|||
this.$message.success(this.l('tenant.deleteTenantConnectionSuccess', { name: name })) |
|||
this.resetFields() |
|||
this.$emit('closed', true) |
|||
}) |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
|
|||
private onSaveTenantConnection() { |
|||
const frmTenantConnection = this.$refs.formTenantConnection as any |
|||
frmTenantConnection.validate((valid: boolean) => { |
|||
if (valid) { |
|||
TenantService.setTenantConnection(this.tenantId, this.tenantConnection).then(connection => { |
|||
const tenantConnection = this.tenantConnections.find(tc => tc.name === connection.name) |
|||
if (tenantConnection) { |
|||
tenantConnection.value = connection.value |
|||
} else { |
|||
this.tenantConnections.push(connection) |
|||
} |
|||
this.$message.success(this.l('tenant.setTenantConnectionSuccess', { name: name })) |
|||
this.resetFields() |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
|
|||
public resetFields() { |
|||
this.tenantConnection = TenantConnectionString.empty() |
|||
} |
|||
|
|||
private l(name: string, values?: any[] | { [key: string]: any }) { |
|||
return this.$t(name, values).toString() |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.full-select { |
|||
width: 100%; |
|||
} |
|||
</style> |
|||
@ -1,2 +1,311 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div class="filter-container"> |
|||
<label |
|||
class="radio-label" |
|||
style="padding-left:10px;" |
|||
>{{ $t('global.queryFilter') }}</label> |
|||
<el-input |
|||
v-model="tenantGetPagedFilter.filter" |
|||
:placeholder="$t('filterString')" |
|||
style="width: 250px;margin-left: 10px;" |
|||
class="filter-item" |
|||
/> |
|||
<el-button |
|||
class="filter-item" |
|||
style="margin-left: 10px; text-alignt" |
|||
type="primary" |
|||
@click="handleGetTenants" |
|||
> |
|||
{{ $t('global.searchList') }} |
|||
</el-button> |
|||
<el-button |
|||
class="filter-item" |
|||
type="primary" |
|||
:disabled="!checkPermission(['AbpTenantManagement.Tenants.Create'])" |
|||
@click="handleShowCreateOrEditTenantDialog('')" |
|||
> |
|||
{{ $t('tenant.createTenant') }} |
|||
</el-button> |
|||
</div> |
|||
|
|||
<el-table |
|||
v-loading="tenantListLoading" |
|||
row-key="id" |
|||
:data="tenantList" |
|||
border |
|||
fit |
|||
highlight-current-row |
|||
style="width: 100%;" |
|||
@sort-change="handleSortChange" |
|||
> |
|||
<el-table-column |
|||
:label="$t('tenant.id')" |
|||
prop="id" |
|||
sortable |
|||
width="150px" |
|||
align="center" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<span>{{ row.id }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
:label="$t('tenant.name')" |
|||
prop="name" |
|||
sortable |
|||
width="150px" |
|||
align="center" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<span>{{ row.name }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
:label="$t('global.creationTime')" |
|||
prop="creationTime" |
|||
width="170px" |
|||
align="center" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<span> |
|||
<el-tag> |
|||
{{ row.creationTime | datetimeFilter }} |
|||
</el-tag> |
|||
</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
:label="$t('global.lastModificationTime')" |
|||
prop="lastModificationTime" |
|||
width="170px" |
|||
align="center" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<span> |
|||
<el-tag type="warning"> |
|||
{{ row.lastModificationTime | datetimeFilter }} |
|||
</el-tag> |
|||
</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
:label="$t('global.operaActions')" |
|||
align="center" |
|||
width="250px" |
|||
fixed="right" |
|||
> |
|||
<template slot-scope="{row}"> |
|||
<el-button |
|||
:disabled="!checkPermission(['AbpTenantManagement.Tenants.Update'])" |
|||
size="mini" |
|||
type="primary" |
|||
@click="handleShowCreateOrEditTenantDialog(row.id)" |
|||
> |
|||
{{ $t('tenant.updateTenant') }} |
|||
</el-button> |
|||
<el-dropdown |
|||
class="options" |
|||
@command="handleCommand" |
|||
> |
|||
<el-button |
|||
v-permission="['AbpTenantManagement.Tenants']" |
|||
size="mini" |
|||
type="info" |
|||
> |
|||
{{ $t('global.otherOpera') }}<i class="el-icon-arrow-down el-icon--right" /> |
|||
</el-button> |
|||
<el-dropdown-menu slot="dropdown"> |
|||
<el-dropdown-item |
|||
:command="{key: 'connection', row}" |
|||
:disabled="!checkPermission(['AbpTenantManagement.Tenants.ManageConnectionStrings'])" |
|||
> |
|||
{{ $t('tenant.connectionOptions') }} |
|||
</el-dropdown-item> |
|||
<el-dropdown-item |
|||
divided |
|||
:command="{key: 'delete', row}" |
|||
:disabled="!checkPermission(['AbpTenantManagement.Tenants.Delete'])" |
|||
> |
|||
{{ $t('tenant.deleteTenant') }} |
|||
</el-dropdown-item> |
|||
</el-dropdown-menu> |
|||
</el-dropdown> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<Pagination |
|||
v-show="tenantListCount>0" |
|||
:total="tenantListCount" |
|||
:page.sync="tenantGetPagedFilter.skipCount" |
|||
:limit.sync="tenantGetPagedFilter.maxResultCount" |
|||
@pagination="handleGetTenants" |
|||
@sort-change="handleSortChange" |
|||
/> |
|||
|
|||
<el-dialog |
|||
v-el-draggable-dialog |
|||
width="800px" |
|||
:visible.sync="showCreateOrEditTenantDialog" |
|||
:title="$t('tenant.updateTenant')" |
|||
custom-class="modal-form" |
|||
:show-close="false" |
|||
@closed="handleCreateOrEditTenantFormClosed" |
|||
> |
|||
<TenantCreateOrEditForm |
|||
ref="formCreateOrEditTenant" |
|||
:tenant-id="editTenantId" |
|||
@closed="handleCreateOrEditTenantFormClosed" |
|||
/> |
|||
</el-dialog> |
|||
|
|||
<el-dialog |
|||
v-el-draggable-dialog |
|||
width="800px" |
|||
:visible.sync="showEditTenantConnectionDialog" |
|||
:title="$t('tenant.connectionOptions')" |
|||
custom-class="modal-form" |
|||
:show-close="false" |
|||
@closed="handleTenantConnectionEditFormClosed" |
|||
> |
|||
<TenantEditConnectionForm |
|||
ref="formEditTenantConnection" |
|||
:tenant-id="editTenantId" |
|||
@closed="handleTenantConnectionEditFormClosed" |
|||
/> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts"> |
|||
import { Component, Vue } from 'vue-property-decorator' |
|||
import TenantService, { TenantDto, TenantGetByPaged } from '@/api/tenant' |
|||
import { dateFormat } from '@/utils/index' |
|||
import { checkPermission } from '@/utils/permission' |
|||
import Pagination from '@/components/Pagination/index.vue' |
|||
import TenantCreateOrEditForm from './components/TenantCreateOrEditForm.vue' |
|||
import TenantEditConnectionForm from './components/TenantEditConnectionForm.vue' |
|||
|
|||
@Component({ |
|||
name: 'RoleList', |
|||
components: { |
|||
Pagination, |
|||
TenantCreateOrEditForm, |
|||
TenantEditConnectionForm |
|||
}, |
|||
methods: { |
|||
checkPermission |
|||
}, |
|||
filters: { |
|||
datetimeFilter(val: string) { |
|||
const date = new Date(val) |
|||
return dateFormat(date, 'YYYY-mm-dd HH:MM') |
|||
} |
|||
} |
|||
}) |
|||
export default class extends Vue { |
|||
private editTenantId: string |
|||
private tenantList: TenantDto[] |
|||
private tenantListCount: number |
|||
private tenantListLoading: boolean |
|||
private tenantGetPagedFilter: TenantGetByPaged |
|||
|
|||
private showEditTenantConnectionDialog: boolean |
|||
private showCreateOrEditTenantDialog: boolean |
|||
|
|||
constructor() { |
|||
super() |
|||
this.editTenantId = '' |
|||
this.tenantListCount = 0 |
|||
this.tenantListLoading = false |
|||
this.tenantList = new Array<TenantDto>() |
|||
this.tenantGetPagedFilter = new TenantGetByPaged() |
|||
|
|||
this.showCreateOrEditTenantDialog = false |
|||
this.showEditTenantConnectionDialog = false |
|||
} |
|||
|
|||
mounted() { |
|||
this.handleGetTenants() |
|||
} |
|||
|
|||
private handleGetTenants() { |
|||
this.tenantListLoading = true |
|||
TenantService.getTenants(this.tenantGetPagedFilter).then(tenants => { |
|||
this.tenantList = tenants.items |
|||
this.tenantListCount = tenants.totalCount |
|||
this.tenantListLoading = false |
|||
}) |
|||
} |
|||
|
|||
private handleCommand(command: {key: string, row: TenantDto}) { |
|||
switch (command.key) { |
|||
case 'connection' : |
|||
this.editTenantId = command.row.id |
|||
this.showEditTenantConnectionDialog = true |
|||
break |
|||
case 'delete' : |
|||
this.handleDeleteTenant(command.row.id, command.row.name) |
|||
break |
|||
default: break |
|||
} |
|||
} |
|||
|
|||
private handleShowCreateOrEditTenantDialog(id: string) { |
|||
this.editTenantId = id |
|||
this.showCreateOrEditTenantDialog = true |
|||
} |
|||
|
|||
private handleDeleteTenant(id: string, name: string) { |
|||
this.$confirm(this.l('tenant.deleteTenantByName', { name: name }), |
|||
this.l('tenant.deleteTenant'), { |
|||
callback: (action) => { |
|||
if (action === 'confirm') { |
|||
TenantService.deleteTenant(id).then(() => { |
|||
this.$message.success(this.l('tenant.deleteTenantSuccess', { name: name })) |
|||
this.handleGetTenants() |
|||
}) |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
|
|||
private handleTenantConnectionEditFormClosed(changed: boolean) { |
|||
this.showEditTenantConnectionDialog = false |
|||
this.editTenantId = '' |
|||
if (changed) { |
|||
this.handleGetTenants() |
|||
} |
|||
} |
|||
|
|||
private handleCreateOrEditTenantFormClosed(changed: boolean) { |
|||
this.showCreateOrEditTenantDialog = false |
|||
this.editTenantId = '' |
|||
if (changed) { |
|||
this.handleGetTenants() |
|||
} |
|||
} |
|||
|
|||
private handleSortChange(column: any) { |
|||
this.tenantGetPagedFilter.sorting = column.prop |
|||
} |
|||
|
|||
private l(name: string, values?: any[] | { [key: string]: any }) { |
|||
return this.$t(name, values).toString() |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.options { |
|||
vertical-align: top; |
|||
margin-left: 20px; |
|||
} |
|||
.el-dropdown + .el-dropdown { |
|||
margin-left: 15px; |
|||
} |
|||
.el-icon-arrow-down { |
|||
font-size: 12px; |
|||
} |
|||
</style> |
|||
|
|||
Loading…
Reference in new issue