2019-08-12 10:53:12 +00:00
|
|
|
namespace ASC.Web.Studio.Core.SMS
|
2019-06-11 15:20:04 +00:00
|
|
|
{
|
2019-08-12 10:53:12 +00:00
|
|
|
[Serializable]
|
2019-11-08 12:21:51 +00:00
|
|
|
public class StudioSmsNotificationSettings : ISettings
|
2019-06-11 15:20:04 +00:00
|
|
|
{
|
2019-11-08 12:21:51 +00:00
|
|
|
public Guid ID
|
2019-06-11 15:20:04 +00:00
|
|
|
{
|
2019-08-12 10:53:12 +00:00
|
|
|
get { return new Guid("{2802df61-af0d-40d4-abc5-a8506a5352ff}"); }
|
2019-06-11 15:20:04 +00:00
|
|
|
}
|
|
|
|
|
2019-11-08 15:11:30 +00:00
|
|
|
public ISettings GetDefault(IServiceProvider serviceProvider)
|
2019-09-13 11:18:27 +00:00
|
|
|
{
|
2019-11-08 12:21:51 +00:00
|
|
|
return new StudioSmsNotificationSettings { EnableSetting = false, };
|
2019-09-13 11:18:27 +00:00
|
|
|
}
|
|
|
|
|
2020-07-09 19:06:08 +00:00
|
|
|
[JsonPropertyName("Enable")]
|
2019-11-08 12:21:51 +00:00
|
|
|
public bool EnableSetting { get; set; }
|
|
|
|
}
|
|
|
|
|
2020-10-19 15:53:15 +00:00
|
|
|
[Scope]
|
2019-11-08 12:21:51 +00:00
|
|
|
public class StudioSmsNotificationSettingsHelper
|
|
|
|
{
|
2020-08-12 09:58:08 +00:00
|
|
|
private TenantExtra TenantExtra { get; }
|
|
|
|
private CoreBaseSettings CoreBaseSettings { get; }
|
|
|
|
private SetupInfo SetupInfo { get; }
|
|
|
|
private SettingsManager SettingsManager { get; }
|
|
|
|
private SmsProviderManager SmsProviderManager { get; }
|
2019-09-19 11:34:54 +00:00
|
|
|
|
2019-11-08 12:21:51 +00:00
|
|
|
public StudioSmsNotificationSettingsHelper(
|
2019-09-19 11:34:54 +00:00
|
|
|
TenantExtra tenantExtra,
|
2019-09-23 12:20:08 +00:00
|
|
|
CoreBaseSettings coreBaseSettings,
|
2019-11-08 12:21:51 +00:00
|
|
|
SetupInfo setupInfo,
|
2019-12-20 11:17:01 +00:00
|
|
|
SettingsManager settingsManager,
|
|
|
|
SmsProviderManager smsProviderManager)
|
2019-09-13 11:18:27 +00:00
|
|
|
{
|
2019-09-19 11:34:54 +00:00
|
|
|
TenantExtra = tenantExtra;
|
|
|
|
CoreBaseSettings = coreBaseSettings;
|
2019-09-23 12:20:08 +00:00
|
|
|
SetupInfo = setupInfo;
|
2019-11-08 12:21:51 +00:00
|
|
|
SettingsManager = settingsManager;
|
2019-12-20 11:17:01 +00:00
|
|
|
SmsProviderManager = smsProviderManager;
|
2019-09-13 11:18:27 +00:00
|
|
|
}
|
|
|
|
|
2019-11-08 12:21:51 +00:00
|
|
|
public bool IsVisibleSettings()
|
2019-06-11 15:20:04 +00:00
|
|
|
{
|
2019-11-08 12:21:51 +00:00
|
|
|
var quota = TenantExtra.GetTenantQuota();
|
|
|
|
return CoreBaseSettings.Standalone
|
|
|
|
|| ((!quota.Trial || SetupInfo.SmsTrial)
|
|
|
|
&& !quota.NonProfit
|
|
|
|
&& !quota.Free
|
|
|
|
&& !quota.Open);
|
2019-06-11 15:20:04 +00:00
|
|
|
}
|
|
|
|
|
2019-09-13 11:18:27 +00:00
|
|
|
public bool Enable
|
2019-08-12 10:53:12 +00:00
|
|
|
{
|
2019-11-08 12:21:51 +00:00
|
|
|
get { return SettingsManager.Load<StudioSmsNotificationSettings>().EnableSetting && SmsProviderManager.Enabled(); }
|
2019-08-12 10:53:12 +00:00
|
|
|
set
|
|
|
|
{
|
2019-11-08 12:21:51 +00:00
|
|
|
var settings = SettingsManager.Load<StudioSmsNotificationSettings>();
|
2019-08-12 10:53:12 +00:00
|
|
|
settings.EnableSetting = value;
|
2019-11-08 12:21:51 +00:00
|
|
|
SettingsManager.Save<StudioSmsNotificationSettings>(settings);
|
2019-08-12 10:53:12 +00:00
|
|
|
}
|
|
|
|
}
|
2019-06-11 15:20:04 +00:00
|
|
|
}
|
|
|
|
}
|