public static LocalizedException ValidateE164Entries(ADConfigurationObject dataObject, MultiValuedProperty <string> e164NumberList) { LocalizedException result = null; if (e164NumberList == null || e164NumberList.Count == 0) { return(null); } Dictionary <string, int> dictionary = new Dictionary <string, int>(e164NumberList.Count); for (int i = 0; i < e164NumberList.Count; i++) { string text = e164NumberList[i]; if (!Utils.IsUriValid(text, UMUriType.E164)) { result = new InvalidUMPilotIdentifierListEntry(text); break; } if (dictionary.ContainsKey(text)) { result = new DuplicateE164PilotIdentifierListEntryException(dataObject.Name); break; } dictionary[text] = 1; } return(result); }
private void SaveObject(ADConfigurationObject dataObject) { try { if (dataObject.Identity != null) { base.WriteVerbose(TaskVerboseStringHelper.GetSaveObjectVerboseString(dataObject, this.configurationSession, dataObject.GetType())); } using (TaskPerformanceData.SaveResult.StartRequestTimer()) { this.configurationSession.Save(dataObject); } } catch (DataSourceTransientException exception) { base.WriteError(exception, (ErrorCategory)1002, null); } finally { if (dataObject.Identity != null) { base.WriteVerbose(TaskVerboseStringHelper.GetSourceVerboseString(this.configurationSession)); } } }
void IConfigurationSession.Save(ADConfigurationObject instanceToSave) { if (instanceToSave is BindingStorage) { this.SaveBindingStorage((BindingStorage)instanceToSave); return; } ((IConfigDataProvider)this).Save(instanceToSave); }
private void DeleteContainer(ADConfigurationObject container, bool useConfigNC) { if (container != null) { PartitionId partitionId = new PartitionId(container.Id.PartitionGuid); ITenantConfigurationSession session = this.WritableAllTenantsSessionForPartition(partitionId); this.DeleteTree(session, container, useConfigNC); } }
// Token: 0x06000598 RID: 1432 RVA: 0x000216C8 File Offset: 0x0001F8C8 private static bool DnIsMangled(ADConfigurationObject adObject, string rdnShouldBe) { string escapedName = adObject.Id.Rdn.EscapedName; if (!escapedName.Equals(rdnShouldBe, StringComparison.Ordinal)) { AirSyncDiagnostics.TraceDebug <string>(ExTraceGlobals.RequestsTracer, null, "Found mangled device object DN: {0}", adObject.Id.DistinguishedName); return(true); } return(false); }
// Token: 0x06000597 RID: 1431 RVA: 0x00021628 File Offset: 0x0001F828 private static void DeleteObject(IConfigurationSession scopedSession, ADConfigurationObject adObject) { try { ADNotificationAdapter.RunADOperation(delegate() { scopedSession.Delete(adObject); }); DeviceClassCache.UpdateProtocolLogLastUsedDC(scopedSession); AirSyncDiagnostics.TraceDebug <string>(ExTraceGlobals.RequestsTracer, null, "Deleted object: {0}", adObject.Id.DistinguishedName); } catch (LocalizedException ex) { AirSyncDiagnostics.TraceError <string, string>(ExTraceGlobals.RequestsTracer, null, "Failed to delete object {0} because: {1}", adObject.Id.DistinguishedName, ex.Message); } }
private void DeleteTree(ITenantConfigurationSession session, ADConfigurationObject objectToDelete, bool useConfigNC) { if (objectToDelete != null) { bool useConfigNC2 = session.UseConfigNC; session.UseConfigNC = useConfigNC; try { session.DeleteTree(objectToDelete, null); } finally { session.UseConfigNC = useConfigNC2; } } }
protected T GetDefaultObject <T>() { Func <object> func; if (!FfoDirectorySession.defaultInstanceFactory.TryGetValue(typeof(T), out func)) { return(default(T)); } T t = (T)((object)func()); ADConfigurationObject adconfigurationObject = t as ADConfigurationObject; if (adconfigurationObject != null) { adconfigurationObject.Name = "Default"; adconfigurationObject.SetId(new ADObjectId("CN=Default", FfoDirectorySession.defaultObjectId)); } return(t); }
private static void CheckForPilotIdentifierDuplicates <TResult>(ADConfigurationObject dataObject, IConfigurationSession session, ADPropertyDefinition propertyDefinition, MultiValuedProperty <string> e164NumberList, Task.TaskErrorLoggingDelegate writeErrorDelegate) where TResult : ADConfigurationObject, new() { ValidateArgument.NotNull(session, "session"); ValidateArgument.NotNull(dataObject, "dataObject"); if (e164NumberList == null || e164NumberList.Count == 0) { return; } QueryFilter[] array = new QueryFilter[e164NumberList.Count]; for (int i = 0; i < e164NumberList.Count; i++) { string propertyValue = e164NumberList[i]; array[i] = new ComparisonFilter(ComparisonOperator.Equal, propertyDefinition, propertyValue); } TResult[] array2 = session.Find <TResult>(null, QueryScope.SubTree, new OrFilter(array), null, 2); if (array2 != null && array2.Length > 0 && (array2.Length > 1 || !array2[0].Id.Equals(dataObject.Id))) { writeErrorDelegate(new DuplicateE164PilotIdentifierListEntryException(array2[0].Name), ErrorCategory.InvalidOperation, dataObject); } }
private ADObjectId ValidateRecipientContainer(OrganizationalUnitIdParameter recipientContainer) { bool useConfigNC = this.ConfigurationSession.UseConfigNC; bool useGlobalCatalog = this.ConfigurationSession.UseGlobalCatalog; ADObjectId id; try { this.ConfigurationSession.UseConfigNC = false; if (string.IsNullOrEmpty(this.ConfigurationSession.DomainController)) { this.ConfigurationSession.UseGlobalCatalog = true; } ADConfigurationObject adconfigurationObject = (ADConfigurationObject)base.GetDataObject <ExchangeOrganizationalUnit>(recipientContainer, this.ConfigurationSession, null, new LocalizedString?(Strings.ErrorRecipientContainerInvalidOrNotExists), new LocalizedString?(Strings.ErrorOrganizationalUnitNotUnique(recipientContainer.ToString())), ExchangeErrorCategory.Client); id = adconfigurationObject.Id; } finally { this.ConfigurationSession.UseConfigNC = useConfigNC; this.ConfigurationSession.UseGlobalCatalog = useGlobalCatalog; } return(id); }
void IConfigurationSession.DeleteTree(ADConfigurationObject instanceToDelete, TreeDeleteNotFinishedHandler handler) { FfoDirectorySession.LogNotSupportedInFFO(null); ((IConfigDataProvider)this).Delete(instanceToDelete); }
public static void CheckForPilotIdentifierDuplicates(ADConfigurationObject dataObject, IConfigurationSession session, MultiValuedProperty <string> e164NumberList, Task.TaskErrorLoggingDelegate writeErrorDelegate) { Utility.CheckForPilotIdentifierDuplicates <UMDialPlan>(dataObject, session, UMDialPlanSchema.PilotIdentifierList, e164NumberList, writeErrorDelegate); Utility.CheckForPilotIdentifierDuplicates <UMAutoAttendant>(dataObject, session, UMAutoAttendantSchema.PilotIdentifierList, e164NumberList, writeErrorDelegate); }
private List <ExchangeRoleAssignment> GetEffectiveRoleAssignmentsForConfigObject(ADConfigurationObject configObject, IEnumerable <ExchangeRoleAssignment> roleAssignments, Dictionary <ADObjectId, ADScope> customConfigScopes, Dictionary <ADObjectId, ADScope> exclusiveConfigScopes, bool onlyExclusive) { List <ExchangeRoleAssignment> list = new List <ExchangeRoleAssignment>(); if (onlyExclusive) { foreach (ExchangeRoleAssignment exchangeRoleAssignment in roleAssignments) { if (this.IsValid(exchangeRoleAssignment) && exchangeRoleAssignment.ConfigWriteScope == ConfigWriteScopeType.ExclusiveConfigScope && exclusiveConfigScopes.ContainsKey(exchangeRoleAssignment.CustomConfigWriteScope) && ManagementReporting.VerifyIsWithinScopes(configObject, exclusiveConfigScopes[exchangeRoleAssignment.CustomConfigWriteScope], exclusiveConfigScopes[exchangeRoleAssignment.CustomConfigWriteScope], new RbacScope(exchangeRoleAssignment.ConfigReadScope))) { list.Add(exchangeRoleAssignment); } } return(list); } foreach (ExchangeRoleAssignment exchangeRoleAssignment2 in roleAssignments) { if (this.IsValid(exchangeRoleAssignment2)) { switch (exchangeRoleAssignment2.ConfigWriteScope) { case ConfigWriteScopeType.OrganizationConfig: list.Add(exchangeRoleAssignment2); break; case ConfigWriteScopeType.CustomConfigScope: if (customConfigScopes.ContainsKey(exchangeRoleAssignment2.CustomConfigWriteScope) && ManagementReporting.VerifyIsWithinScopes(configObject, null, customConfigScopes[exchangeRoleAssignment2.CustomConfigWriteScope], new RbacScope(exchangeRoleAssignment2.ConfigReadScope))) { list.Add(exchangeRoleAssignment2); } break; } } } return(list); }
private List <ExchangeRoleAssignment> FindRoleAssignmentsWithWritableConfigObject(ScopeRestrictionType restrictionType, ADConfigurationObject writableObject, IEnumerable <ExchangeRoleAssignment> roleAssignments) { Dictionary <ADObjectId, ADScope> customConfigScopes; Dictionary <ADObjectId, ADScope> dictionary; this.RetrieveAllScopes(restrictionType, writableObject, out customConfigScopes, out dictionary); if (dictionary.Count > 0 && ManagementReporting.VerifyIsWithinScopes(writableObject, new List <ADScope>(dictionary.Values), new List <ADScope>(dictionary.Values), new RbacScope(ScopeType.Organization))) { return(this.GetEffectiveRoleAssignmentsForConfigObject(writableObject, roleAssignments, customConfigScopes, dictionary, true)); } return(this.GetEffectiveRoleAssignmentsForConfigObject(writableObject, roleAssignments, customConfigScopes, dictionary, false)); }
protected override IConfigurable PrepareDataObject() { TaskLogger.LogEnter(); UMDialPlan umdialPlan = (UMDialPlan)base.PrepareDataObject(); if (base.HasErrors) { return(null); } if (base.Fields.IsModified("ContactRecipientContainer") && base.Fields.IsModified("ContactAddressList")) { base.WriteError(new InvalidALParameterException(), ErrorCategory.NotSpecified, null); TaskLogger.LogExit(); return(null); } if (base.Fields.IsModified("CountryOrRegionCode")) { if (string.IsNullOrEmpty(this.CountryOrRegionCode)) { base.WriteError(new InvalidParameterException(Strings.EmptyCountryOrRegionCode), ErrorCategory.InvalidArgument, null); } else { umdialPlan.CountryOrRegionCode = this.CountryOrRegionCode; } } if (base.Fields.IsModified("ContactRecipientContainer")) { OrganizationalUnitIdParameter contactRecipientContainer = this.ContactRecipientContainer; if (contactRecipientContainer != null) { bool useConfigNC = this.ConfigurationSession.UseConfigNC; this.ConfigurationSession.UseConfigNC = false; ADConfigurationObject adconfigurationObject = (ADConfigurationObject)base.GetDataObject <ExchangeOrganizationalUnit>(contactRecipientContainer, this.ConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationalUnitNotFound(this.ContactRecipientContainer.ToString())), new LocalizedString?(Strings.ErrorOrganizationalUnitNotUnique(this.ContactRecipientContainer.ToString()))); this.ConfigurationSession.UseConfigNC = useConfigNC; if (!base.HasErrors) { umdialPlan.ContactAddressList = adconfigurationObject.Id; } } else { umdialPlan.ContactAddressList = null; } } if (base.Fields.IsModified("ContactAddressList")) { AddressListIdParameter contactAddressList = this.ContactAddressList; if (contactAddressList != null) { IEnumerable <AddressBookBase> objects = contactAddressList.GetObjects <AddressBookBase>(null, this.ConfigurationSession); using (IEnumerator <AddressBookBase> enumerator = objects.GetEnumerator()) { if (enumerator.MoveNext()) { umdialPlan.ContactAddressList = (ADObjectId)enumerator.Current.Identity; } goto IL_19C; } } umdialPlan.ContactAddressList = null; } IL_19C: if (umdialPlan.ContactScope != CallSomeoneScopeEnum.AddressList) { umdialPlan.ContactAddressList = null; } if (base.Fields.IsModified("UMAutoAttendant")) { UMAutoAttendantIdParameter umautoAttendant = this.UMAutoAttendant; if (umautoAttendant != null) { UMAutoAttendant umautoAttendant2 = (UMAutoAttendant)base.GetDataObject <UMAutoAttendant>(umautoAttendant, this.ConfigurationSession, null, new LocalizedString?(Strings.NonExistantAutoAttendant(umautoAttendant.ToString())), new LocalizedString?(Strings.MultipleAutoAttendantsWithSameId(umautoAttendant.ToString()))); if (!base.HasErrors) { umdialPlan.UMAutoAttendant = umautoAttendant2.Id; } } else { umdialPlan.UMAutoAttendant = null; } } TaskLogger.LogExit(); return(umdialPlan); }
private void AssignDirectoryIdentity <TObject>(IIdentityParameter identityParameter, DirectoryObjectType objectType, LocalizedString notFoundErrorMsg, LocalizedString ambiguousObjErrorMsg) where TObject : ADConfigurationObject, new() { ADConfigurationObject adconfigurationObject = (ADConfigurationObject)base.GetDataObject <TObject>(identityParameter, this.ConfigurationSession, this.RootId, new LocalizedString?(notFoundErrorMsg), new LocalizedString?(ambiguousObjErrorMsg)); this.objectIdentity = DirectoryIdentity.CreateFromADObjectId(adconfigurationObject.Id, objectType); }
protected override IConfigurable PrepareDataObject() { TaskLogger.LogEnter(); UMAutoAttendant umautoAttendant = (UMAutoAttendant)base.PrepareDataObject(); if (base.HasErrors) { return(null); } if (base.Fields.IsModified("ContactRecipientContainer") && base.Fields.IsModified("ContactAddressList")) { base.WriteError(new InvalidALParameterException(), ErrorCategory.NotSpecified, null); TaskLogger.LogExit(); return(null); } if (base.Fields.IsModified("TimeZone") && base.Fields.IsModified("TimeZoneName")) { base.WriteError(new InvalidParameterException(Strings.InvalidTimeZoneParameters), ErrorCategory.NotSpecified, null); } if (base.Fields.IsModified("ContactRecipientContainer")) { OrganizationalUnitIdParameter contactRecipientContainer = this.ContactRecipientContainer; if (contactRecipientContainer != null) { bool useConfigNC = this.ConfigurationSession.UseConfigNC; this.ConfigurationSession.UseConfigNC = false; ADConfigurationObject adconfigurationObject = (ADConfigurationObject)base.GetDataObject <ExchangeOrganizationalUnit>(contactRecipientContainer, this.ConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationalUnitNotFound(this.ContactRecipientContainer.ToString())), new LocalizedString?(Strings.ErrorOrganizationalUnitNotUnique(this.ContactRecipientContainer.ToString()))); this.ConfigurationSession.UseConfigNC = useConfigNC; if (!base.HasErrors) { umautoAttendant.ContactAddressList = adconfigurationObject.Id; } } else { umautoAttendant.ContactAddressList = null; } } if (base.Fields.IsModified("ContactAddressList")) { AddressListIdParameter contactAddressList = this.ContactAddressList; if (contactAddressList != null) { IEnumerable <AddressBookBase> objects = contactAddressList.GetObjects <AddressBookBase>(null, this.ConfigurationSession); using (IEnumerator <AddressBookBase> enumerator = objects.GetEnumerator()) { if (enumerator.MoveNext()) { umautoAttendant.ContactAddressList = (ADObjectId)enumerator.Current.Identity; } goto IL_193; } } umautoAttendant.ContactAddressList = null; } IL_193: if (base.Fields.IsModified("DTMFFallbackAutoAttendant")) { UMAutoAttendantIdParameter dtmffallbackAutoAttendant = this.DTMFFallbackAutoAttendant; if (dtmffallbackAutoAttendant != null) { this.fallbackAA = (UMAutoAttendant)base.GetDataObject <UMAutoAttendant>(dtmffallbackAutoAttendant, this.ConfigurationSession, null, new LocalizedString?(Strings.NonExistantAutoAttendant(dtmffallbackAutoAttendant.ToString())), new LocalizedString?(Strings.MultipleAutoAttendantsWithSameId(dtmffallbackAutoAttendant.ToString()))); umautoAttendant.DTMFFallbackAutoAttendant = this.fallbackAA.Id; } else { umautoAttendant.DTMFFallbackAutoAttendant = null; } } if (base.Fields.IsModified("DefaultMailbox")) { if (this.DefaultMailbox == null) { umautoAttendant.DefaultMailbox = null; umautoAttendant.DefaultMailboxLegacyDN = null; } else { IRecipientSession recipientSessionScopedToOrganization = Utility.GetRecipientSessionScopedToOrganization(umautoAttendant.OrganizationId, true); LocalizedString value = Strings.InvalidMailbox(this.DefaultMailbox.ToString(), "DefaultMailbox"); umautoAttendant.DefaultMailbox = (ADUser)base.GetDataObject <ADUser>(this.DefaultMailbox, recipientSessionScopedToOrganization, null, null, new LocalizedString?(value), new LocalizedString?(value)); umautoAttendant.DefaultMailboxLegacyDN = umautoAttendant.DefaultMailbox.LegacyExchangeDN; } } if (!base.HasErrors) { if (base.Fields.IsModified("TimeZone")) { umautoAttendant.TimeZone = this.TimeZone; } if (base.Fields.IsModified("TimeZoneName")) { umautoAttendant.TimeZoneName = this.TimeZoneName; } } TaskLogger.LogExit(); return(umautoAttendant); }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(); ADConfigurationObject config = null; string parameterSetName; if ((parameterSetName = base.ParameterSetName) != null) { if (parameterSetName == "UploadDialPlanPrompts" || parameterSetName == "UploadDialPlanPromptsStream") { config = this.DataObject; goto IL_7D; } if (parameterSetName == "UploadAutoAttendantPrompts" || parameterSetName == "UploadAutoAttendantPromptsStream") { config = base.AutoAttendant; goto IL_7D; } } ExAssert.RetailAssert(false, "Invalid parameter set {0}", new object[] { base.ParameterSetName }); try { IL_7D: ITempFile tempFile = null; string extension = Path.GetExtension(this.PromptFileName); if (string.Equals(extension, ".wav", StringComparison.OrdinalIgnoreCase)) { tempFile = TempFileFactory.CreateTempWavFile(); } else { if (!string.Equals(extension, ".wma", StringComparison.OrdinalIgnoreCase)) { throw new InvalidFileNameException(128); } tempFile = TempFileFactory.CreateTempWmaFile(); } using (tempFile) { using (FileStream fileStream = new FileStream(tempFile.FilePath, FileMode.Create, FileAccess.Write)) { if (this.PromptFileData != null) { fileStream.Write(this.PromptFileData, 0, this.PromptFileData.Length); } else { CommonUtil.CopyStream(this.PromptFileStream, fileStream); } } using (IPublishingSession publishingSession = PublishingPoint.GetPublishingSession(Environment.UserName, config)) { publishingSession.Upload(tempFile.FilePath, this.PromptFileName); } } } catch (UnsupportedCustomGreetingSizeFormatException) { this.HandleOversizeAudioData(); } catch (LocalizedException exception) { base.WriteError(exception, (ErrorCategory)1000, null); } catch (SystemException ex) { if (!this.HandleException(ex)) { throw; } base.WriteError(ex, (ErrorCategory)1000, null); } TaskLogger.LogExit(); }