Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 public static StoreObjectId GetFreeBusyFolderId(PublicFolderSession session, string legacyDN, FreeBusyFolderDisposition disposition)
 {
     return(FreeBusyFolder.RetryOnStorageTransientException <StoreObjectId>(() => FreeBusyFolder.GetFreeBusyFolderIdInternal(session, legacyDN, disposition)));
 }
Exemple #6
0
 private static string GenerateExternalLegacyDN(string legacyDN)
 {
     return(FreeBusyFolder.GetOrganizationLegacyDN(legacyDN) + "/ou=External (FYDIBOHF25SPDLT)/cn=Recipients" + FreeBusyFolder.GetNewCnRdn());
 }
Exemple #7
0
 private static string GenerateInternalLegacyDN(string legacyDN)
 {
     return(legacyDN + "/cn=Recipients" + FreeBusyFolder.GetNewCnRdn());
 }
Exemple #8
0
 public static Item CreateFreeBusyItem(PublicFolderSession session, StoreObjectId freeBusyFolderId, string legacyDN)
 {
     return(FreeBusyFolder.RetryOnStorageTransientException <Item>(() => FreeBusyFolder.CreateFreeBusyItemInternal(session, freeBusyFolderId, legacyDN)));
 }