internal static string GetExternalLegacyDN(ADUser user) { string y = FreeBusyFolder.GetOrganizationLegacyDN(user.LegacyExchangeDN) + "/ou=External (FYDIBOHF25SPDLT)"; foreach (ProxyAddress proxyAddress in user.EmailAddresses) { if (proxyAddress.Prefix == ProxyAddressPrefix.X500) { string oulegacyDN = FreeBusyFolder.GetOULegacyDN(proxyAddress.AddressString); if (oulegacyDN != null && StringComparer.OrdinalIgnoreCase.Equals(oulegacyDN, y)) { return(proxyAddress.AddressString); } } } return(FreeBusyFolder.GenerateExternalLegacyDN(user.LegacyExchangeDN)); }
private static Item CreateFreeBusyItemInternal(PublicFolderSession session, StoreObjectId freeBusyFolderId, string legacyDN) { string freeBusyItemSubject = FreeBusyFolder.GetFreeBusyItemSubject(legacyDN); Item item = Item.Create(session, "IPM.Post", freeBusyFolderId); bool flag = false; try { item[ItemSchema.Subject] = freeBusyItemSubject; item[FreeBusyItemSchema.ScheduleInfoRecipientLegacyDn] = legacyDN; flag = true; } finally { if (!flag) { item.Dispose(); } } return(item); }
internal static string GetInternalLegacyDN(ADUser user, string targetLegacyDN) { string x = FreeBusyFolder.GetOrganizationLegacyDN(user.LegacyExchangeDN) + "/ou=External (FYDIBOHF25SPDLT)"; foreach (ProxyAddress proxyAddress in user.EmailAddresses) { if (proxyAddress.Prefix == ProxyAddressPrefix.X500) { string oulegacyDN = FreeBusyFolder.GetOULegacyDN(proxyAddress.AddressString); if (oulegacyDN != null && !StringComparer.OrdinalIgnoreCase.Equals(x, oulegacyDN) && FreeBusyFolder.IsGeneratedLegacyDN(proxyAddress.AddressString)) { return(proxyAddress.AddressString); } } } string oulegacyDN2 = FreeBusyFolder.GetOULegacyDN(targetLegacyDN); if (oulegacyDN2 != null) { return(FreeBusyFolder.GenerateInternalLegacyDN(oulegacyDN2)); } return(null); }
private static StoreObjectId GetFreeBusyFolderIdInternal(PublicFolderSession session, string legacyDN, FreeBusyFolderDisposition disposition) { string freeBusyFolderName = FreeBusyFolder.GetFreeBusyFolderName(legacyDN); if (freeBusyFolderName == null) { FreeBusyFolder.Tracer.TraceError <string>(0L, "Unable to get free/busy folder for mailbox with legacy DN '{0}' because cannot obtain folder name from legacy DN", legacyDN); return(null); } StoreObjectId freeBusyRootFolderId = FreeBusyFolder.GetFreeBusyRootFolderId(session); if (freeBusyRootFolderId == null) { return(null); } StoreObjectId result; try { StoreObjectId storeObjectId = null; using (Folder folder = Folder.Bind(session, freeBusyRootFolderId)) { storeObjectId = QueryChildFolderByName.Query(folder, freeBusyFolderName); } if (storeObjectId == null && disposition == FreeBusyFolderDisposition.CreateIfNeeded) { storeObjectId = FreeBusyFolder.CreateFreeBusyFolder(session, freeBusyRootFolderId, freeBusyFolderName); } result = storeObjectId; } catch (StoragePermanentException arg) { FreeBusyFolder.Tracer.TraceDebug <StoragePermanentException>(0L, "Failed to get free/busy folder due exception: {0}", arg); result = null; } return(result); }
public static StoreObjectId GetFreeBusyFolderId(PublicFolderSession session, string legacyDN, FreeBusyFolderDisposition disposition) { return(FreeBusyFolder.RetryOnStorageTransientException <StoreObjectId>(() => FreeBusyFolder.GetFreeBusyFolderIdInternal(session, legacyDN, disposition))); }
private static string GenerateExternalLegacyDN(string legacyDN) { return(FreeBusyFolder.GetOrganizationLegacyDN(legacyDN) + "/ou=External (FYDIBOHF25SPDLT)/cn=Recipients" + FreeBusyFolder.GetNewCnRdn()); }
private static string GenerateInternalLegacyDN(string legacyDN) { return(legacyDN + "/cn=Recipients" + FreeBusyFolder.GetNewCnRdn()); }
public static Item CreateFreeBusyItem(PublicFolderSession session, StoreObjectId freeBusyFolderId, string legacyDN) { return(FreeBusyFolder.RetryOnStorageTransientException <Item>(() => FreeBusyFolder.CreateFreeBusyItemInternal(session, freeBusyFolderId, legacyDN))); }