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)); }
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); }
public static Uri UpdateOwaLinkToItem(Uri baseLink, string itemId) { return(LinkUtils.AppendQueryString(baseLink, new Dictionary <string, string> { { "ItemID", itemId } })); }
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); }
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)); }
public static Uri UpdateOwaLinkWithMailbox(Uri baseLink, SmtpAddress smtpAddress) { return(LinkUtils.AppendRelativePath(baseLink, string.Format("{0}", smtpAddress), true)); }
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); }