Esempio n. 1
0
        public static Uri UpdateOwaLinkToSearchId(Uri baseLink, string searchId)
        {
            Dictionary <string, string> queryParameters = new Dictionary <string, string>
            {
                {
                    "cmd",
                    "contents"
                },
                {
                    "module",
                    "discovery"
                },
                {
                    "discoveryid",
                    searchId
                },
                {
                    "exsvurl",
                    "1"
                }
            };
            Uri baseUri = LinkUtils.AppendRelativePath(baseLink, "default.aspx", false);

            return(LinkUtils.AppendQueryString(baseUri, queryParameters));
        }
Esempio n. 2
0
        public static Uri GetOwaMailboxItemLink(Action errorHandler, MailboxInfo mailboxInfo, bool supportsIntegratedAuth)
        {
            Uri uri = LinkUtils.GetOwaBaseLink(errorHandler, mailboxInfo, supportsIntegratedAuth);

            if (uri != null)
            {
                uri = LinkUtils.AppendQueryString(uri, LinkUtils.itemLinkParameters);
            }
            return(uri);
        }
Esempio n. 3
0
 public static Uri UpdateOwaLinkToItem(Uri baseLink, string itemId)
 {
     return(LinkUtils.AppendQueryString(baseLink, new Dictionary <string, string>
     {
         {
             "ItemID",
             itemId
         }
     }));
 }
Esempio n. 4
0
        public static Uri GetOwaBaseLink(Action errorHandler, ExchangePrincipal targetPrincipal, bool supportsIntegratedAuth)
        {
            Uri uri = null;

            if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled)
            {
                uri = FrontEndLocator.GetFrontEndOwaUrl(targetPrincipal);
                if (uri == null)
                {
                    Factory.Current.EventLog.LogEvent(InfoWorkerEventLogConstants.Tuple_DiscoveryFailedToGetOWAUrl, null, new object[]
                    {
                        targetPrincipal.MailboxInfo.Location.ServerFqdn,
                        targetPrincipal.MailboxInfo.OrganizationId.OrganizationalUnit.ObjectGuid,
                        targetPrincipal.MailboxInfo.MailboxGuid
                    });
                }
                else if (!string.IsNullOrEmpty(targetPrincipal.MailboxInfo.PrimarySmtpAddress.ToString()))
                {
                    SmtpAddress primarySmtpAddress = targetPrincipal.MailboxInfo.PrimarySmtpAddress;
                    if (!string.IsNullOrEmpty(primarySmtpAddress.Domain))
                    {
                        uri = LinkUtils.AppendRelativePath(uri, primarySmtpAddress.Domain, true);
                    }
                }
            }
            else
            {
                OwaService owaService = LinkUtils.GetOwaService(targetPrincipal);
                if (owaService != null)
                {
                    uri = owaService.Url;
                    if (supportsIntegratedAuth && owaService.IntegratedFeaturesEnabled)
                    {
                        uri = LinkUtils.AppendRelativePath(uri, "integrated", true);
                    }
                }
                else if (errorHandler != null)
                {
                    errorHandler();
                }
            }
            return(uri);
        }
Esempio n. 5
0
 public static Uri GetOwaBaseLink(Action errorHandler, MailboxInfo mailboxInfo, bool supportsIntegratedAuth)
 {
     Util.ThrowOnNull(mailboxInfo, "mailboxInfo");
     Util.ThrowOnNull(mailboxInfo.ExchangePrincipal, "mailboxInfo.ExchangePrincipal");
     return(LinkUtils.GetOwaBaseLink(errorHandler, mailboxInfo.ExchangePrincipal, supportsIntegratedAuth));
 }
Esempio n. 6
0
 public static Uri UpdateOwaLinkWithMailbox(Uri baseLink, SmtpAddress smtpAddress)
 {
     return(LinkUtils.AppendRelativePath(baseLink, string.Format("{0}", smtpAddress), true));
 }
Esempio n. 7
0
        private static PreviewItem[] InternalCreateSearchPreviewItems(MailboxInfo mailboxInfo, object[][] rows, PagingInfo pagingInfo, StoreSession mailboxSession, List <KeyValuePair <int, long> > messageIdPairs, bool usingSearchFolders)
        {
            if (!usingSearchFolders)
            {
                Util.ThrowOnNull(messageIdPairs, "messageIdPairs");
            }
            if (rows.Length == 0 || rows[0].Length != pagingInfo.DataColumns.Count)
            {
                throw new ArgumentException("Invalid result rows");
            }
            List <PreviewItem> list = new List <PreviewItem>(rows.Length);
            StoreId            sentItemsFolderId = null;

            if (!mailboxSession.IsPublicFolderSession)
            {
                sentItemsFolderId = mailboxSession.GetDefaultFolderId(DefaultFolderType.SentItems);
            }
            Uri owaMailboxItemLink = LinkUtils.GetOwaMailboxItemLink(delegate
            {
            }, mailboxInfo, true);

            for (int i = 0; i < rows.Length; i++)
            {
                object[] array = rows[i];
                Dictionary <PropertyDefinition, object> properties = new Dictionary <PropertyDefinition, object>(4);
                int num = 0;
                foreach (PropertyDefinition key in pagingInfo.DataColumns)
                {
                    properties.Add(key, array[num]);
                    num++;
                }
                ReferenceItem sortValue = null;
                if (!usingSearchFolders)
                {
                    sortValue = new ReferenceItem(pagingInfo.SortBy, properties[pagingInfo.SortColumn], messageIdPairs.Find((KeyValuePair <int, long> x) => x.Key == (int)properties[ItemSchema.DocumentId]).Value);
                }
                else
                {
                    sortValue = new ReferenceItem(pagingInfo.SortBy, properties[pagingInfo.SortColumn], (long)mailboxSession.MailboxGuid.GetHashCode() << 32 | (long)((ulong)((int)properties[ItemSchema.DocumentId])));
                }
                List <PropertyDefinition> list2 = null;
                if (pagingInfo.AdditionalProperties != null && pagingInfo.AdditionalProperties.Count > 0)
                {
                    list2 = new List <PropertyDefinition>(pagingInfo.AdditionalProperties.Count);
                    foreach (ExtendedPropertyInfo extendedPropertyInfo in pagingInfo.AdditionalProperties)
                    {
                        list2.Add(extendedPropertyInfo.XsoPropertyDefinition);
                    }
                }
                PreviewItem item = new PreviewItem(properties, mailboxInfo.MailboxGuid, owaMailboxItemLink, sortValue, Util.CalculateUniqueItemHash(mailboxSession, array, pagingInfo, sentItemsFolderId), list2)
                {
                    MailboxInfo = mailboxInfo
                };
                list.Add(item);
            }
            PreviewItem[] array2 = list.ToArray();
            if (pagingInfo.ExcludeDuplicates)
            {
                array2 = Util.ExcludeDuplicateItems(array2);
            }
            return(array2);
        }