scope: fix
This commit is contained in:
parent
90f1c4fa3d
commit
32f570784b
@ -52,8 +52,8 @@ namespace ASC.Core.Configuration
|
||||
public static void Synchronize()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var coreBaseSettings = scope.ServiceProvider.GetService<CoreBaseSettings>();
|
||||
var scopeClass = scope.ServiceProvider.GetService<AmiPublicDnsSyncServiceScope>();
|
||||
(var tenantManager, var coreBaseSettings) = scopeClass;
|
||||
if (coreBaseSettings.Standalone)
|
||||
{
|
||||
var tenants = tenantManager.GetTenants(false).Where(t => MappedDomainNotSettedByUser(t.MappedDomain));
|
||||
@ -95,4 +95,22 @@ namespace ASC.Core.Configuration
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public class AmiPublicDnsSyncServiceScope
|
||||
{
|
||||
private TenantManager TenantManager { get; }
|
||||
private CoreBaseSettings CoreBaseSettings { get; }
|
||||
|
||||
public AmiPublicDnsSyncServiceScope(TenantManager tenantManager, CoreBaseSettings coreBaseSettings)
|
||||
{
|
||||
TenantManager = tenantManager;
|
||||
CoreBaseSettings = coreBaseSettings;
|
||||
}
|
||||
|
||||
public void Deconstruct(out TenantManager tenantManager, out CoreBaseSettings coreBaseSettings)
|
||||
{
|
||||
tenantManager = TenantManager;
|
||||
coreBaseSettings = CoreBaseSettings;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using ASC.Common;
|
||||
using ASC.Common.Logging;
|
||||
using ASC.Common.Utils;
|
||||
using ASC.Core.Notify.Senders;
|
||||
@ -95,15 +96,16 @@ namespace ASC.Core.Notify
|
||||
};
|
||||
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var configuration = scope.ServiceProvider.GetService<CoreConfiguration>();
|
||||
|
||||
var scopeClass = scope.ServiceProvider.GetService<EmailSenderSinkScope>();
|
||||
(var tenantManager, var coreConfiguration, var options) = scopeClass;
|
||||
|
||||
var tenant = tenantManager.GetCurrentTenant(false);
|
||||
m.Tenant = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
|
||||
|
||||
var from = MailAddressUtils.Create(configuration.SmtpSettings.SenderAddress, configuration.SmtpSettings.SenderDisplayName);
|
||||
var from = MailAddressUtils.Create(coreConfiguration.SmtpSettings.SenderAddress, coreConfiguration.SmtpSettings.SenderDisplayName);
|
||||
var fromTag = message.Arguments.FirstOrDefault(x => x.Tag.Equals("MessageFrom"));
|
||||
if ((configuration.SmtpSettings.IsDefaultSettings || string.IsNullOrEmpty(configuration.SmtpSettings.SenderDisplayName)) &&
|
||||
if ((coreConfiguration.SmtpSettings.IsDefaultSettings || string.IsNullOrEmpty(coreConfiguration.SmtpSettings.SenderDisplayName)) &&
|
||||
fromTag != null && fromTag.Value != null)
|
||||
{
|
||||
try
|
||||
@ -149,4 +151,34 @@ namespace ASC.Core.Notify
|
||||
return m;
|
||||
}
|
||||
}
|
||||
|
||||
public class EmailSenderSinkScope
|
||||
{
|
||||
private TenantManager TenantManager { get; }
|
||||
private CoreConfiguration CoreConfiguration { get; }
|
||||
private IOptionsMonitor<ILog> Options { get; }
|
||||
|
||||
public EmailSenderSinkScope(TenantManager tenantManager, CoreConfiguration coreConfiguration, IOptionsMonitor<ILog> options)
|
||||
{
|
||||
TenantManager = tenantManager;
|
||||
CoreConfiguration = coreConfiguration;
|
||||
Options = options;
|
||||
}
|
||||
|
||||
public void Deconstruct(out TenantManager tenantManager, out CoreConfiguration coreConfiguration, out IOptionsMonitor<ILog> optionsMonitor)
|
||||
{
|
||||
tenantManager = TenantManager;
|
||||
coreConfiguration = CoreConfiguration;
|
||||
optionsMonitor = Options;
|
||||
}
|
||||
}
|
||||
|
||||
public static class EmailSenderSinkExtension
|
||||
{
|
||||
public static DIHelper AddEmailSenderSinkService(this DIHelper services)
|
||||
{
|
||||
services.TryAddScoped<EmailSenderSinkScope>();
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
@ -26,6 +26,7 @@
|
||||
|
||||
using System;
|
||||
|
||||
using ASC.Common;
|
||||
using ASC.Core.Notify.Senders;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Notify.Messages;
|
||||
@ -54,8 +55,8 @@ namespace ASC.Core.Notify
|
||||
try
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var scopeClass = scope.ServiceProvider.GetService<JabberSenderSinkScope>();
|
||||
(var userManager, var tenantManager) = scopeClass;
|
||||
var result = SendResult.OK;
|
||||
var username = userManager.GetUsers(new Guid(message.Recipient.ID)).UserName;
|
||||
if (string.IsNullOrEmpty(username))
|
||||
@ -87,4 +88,31 @@ namespace ASC.Core.Notify
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class JabberSenderSinkScope
|
||||
{
|
||||
private UserManager UserManager { get; }
|
||||
private TenantManager TenantManager { get; }
|
||||
|
||||
public JabberSenderSinkScope(UserManager userManager, TenantManager tenantManager)
|
||||
{
|
||||
TenantManager = tenantManager;
|
||||
UserManager = userManager;
|
||||
}
|
||||
|
||||
public void Deconstruct(out UserManager userManager, out TenantManager tenantManager)
|
||||
{
|
||||
userManager = UserManager;
|
||||
tenantManager = TenantManager;
|
||||
}
|
||||
}
|
||||
|
||||
public static class JabberSenderSinkExtension
|
||||
{
|
||||
public static DIHelper AddJabberSenderSinkService(this DIHelper services)
|
||||
{
|
||||
services.TryAddScoped<JabberSenderSinkScope>();
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -60,10 +60,8 @@ namespace ASC.Core.Common.Tests
|
||||
public void CreateProviders()
|
||||
{
|
||||
using var scope = serviceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var subscriptionManager = scope.ServiceProvider.GetService<SubscriptionManager>();
|
||||
tenantManager.SetCurrentTenant(tenant);
|
||||
|
||||
var scopeClass = scope.ServiceProvider.GetService<TopSubscriptionProviderTestScope>();
|
||||
(var tenantManager, var subscriptionManager, var recipientProviderImpl) = scopeClass;
|
||||
tenant = new Tenants.Tenant(0, "teamlab");
|
||||
sourceId = "6045b68c-2c2e-42db-9e53-c272e814c4ad";
|
||||
actionId = "NewCommentForTask";
|
||||
@ -72,7 +70,6 @@ namespace ASC.Core.Common.Tests
|
||||
testRec = new DirectRecipient("ff0c4e13-1831-43c2-91ce-7b7beb56179b", null); //Oliver Khan
|
||||
testRec2 = new DirectRecipient("0017794f-aeb7-49a5-8817-9e870e02bd3f", null); //Якутова Юлия
|
||||
|
||||
recProvider = scope.ServiceProvider.GetService<RecipientProviderImpl>();
|
||||
var directSubProvider = new DirectSubscriptionProvider(sourceId, subscriptionManager, recProvider);
|
||||
subProvider = new TopSubscriptionProvider(recProvider, directSubProvider);
|
||||
}
|
||||
@ -146,5 +143,26 @@ namespace ASC.Core.Common.Tests
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class TopSubscriptionProviderTestScope
|
||||
{
|
||||
private TenantManager TenantManager { get; }
|
||||
private SubscriptionManager SubscriptionManager { get; }
|
||||
private RecipientProviderImpl RecipientProviderImpl { get; }
|
||||
|
||||
public TopSubscriptionProviderTestScope(TenantManager tenantManager, SubscriptionManager subscriptionManager, RecipientProviderImpl recipientProviderImpl)
|
||||
{
|
||||
TenantManager = tenantManager;
|
||||
SubscriptionManager = subscriptionManager;
|
||||
RecipientProviderImpl = recipientProviderImpl;
|
||||
}
|
||||
|
||||
public void Deconstruct(out TenantManager tenantManager, out SubscriptionManager subscriptionManager, out RecipientProviderImpl recipientProviderImpl)
|
||||
{
|
||||
tenantManager = TenantManager;
|
||||
subscriptionManager = SubscriptionManager;
|
||||
recipientProviderImpl = RecipientProviderImpl;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
@ -85,8 +85,8 @@ namespace ASC.Core.Common.Tests
|
||||
public void DepartmentManagers()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var scopeClass = scope.ServiceProvider.GetService<UserManagerTestScope>();
|
||||
(var userManager, var tenantManager) = scopeClass;
|
||||
var tenant = tenantManager.SetCurrentTenant(1024);
|
||||
|
||||
var deps = userManager.GetDepartments();
|
||||
@ -114,8 +114,8 @@ namespace ASC.Core.Common.Tests
|
||||
public void UserGroupsPerformanceTest()
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var scopeClass = scope.ServiceProvider.GetService<UserManagerTestScope>();
|
||||
(var userManager, var tenantManager) = scopeClass;
|
||||
var tenant = tenantManager.SetCurrentTenant(0);
|
||||
|
||||
foreach (var u in userManager.GetUsers())
|
||||
@ -149,5 +149,23 @@ namespace ASC.Core.Common.Tests
|
||||
stopwatch.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
public class UserManagerTestScope
|
||||
{
|
||||
private UserManager UserManager { get; }
|
||||
private TenantManager TenantManager { get; }
|
||||
|
||||
public UserManagerTestScope(UserManager userManager, TenantManager tenantManager)
|
||||
{
|
||||
UserManager = userManager;
|
||||
TenantManager = tenantManager;
|
||||
}
|
||||
|
||||
public void Deconstruct(out UserManager userManager, out TenantManager tenantManager)
|
||||
{
|
||||
userManager = UserManager;
|
||||
tenantManager = TenantManager;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user