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