public LDAPSupportSettingsResult SaveLdapSettings(string settings, bool acceptCertificate)
        {
            CheckLdapPermissions();

            var operations = LDAPTasks.GetTasks()
                             .Where(t => t.GetProperty <int>(LDAPOperation.OWNER) == TenantProvider.CurrentTenantID);

            if (operations.Any(o => o.Status <= DistributedTaskStatus.Running))
            {
                throw new InvalidOperationException(Resource.LdapSettingsTooManyOperations);
            }

            var ldapSettings = JsonConvert.DeserializeObject <LDAPSupportSettings>(settings);

            var op = new LDAPSaveSyncOperation(ldapSettings, acceptCertificate: acceptCertificate);

            return(QueueTask(op));
        }
        public LDAPSupportSettingsResult SyncLdap()
        {
            CheckLdapPermissions();

            var operations = LDAPTasks.GetTasks()
                             .Where(t => t.GetProperty <int>(LDAPOperation.OWNER) == TenantProvider.CurrentTenantID);

            if (operations.Any(o => o.Status <= DistributedTaskStatus.Running))
            {
                throw new InvalidOperationException(Resource.LdapSettingsTooManyOperations);
            }

            var ldapSettings =
                SettingsManager.Instance.LoadSettings <LDAPSupportSettings>(TenantProvider.CurrentTenantID);

            var op = new LDAPSaveSyncOperation(ldapSettings, syncOnly: true);

            return(QueueTask(op));
        }