private static void SmartReplyOrForward(MessageItem originalItem, MessageItem newItem, UserContext userContext) { if (!RecipientCache.RunGetCacheOperationUnderDefaultExceptionHandler(delegate { SubscriptionCache.GetCache(userContext); }, userContext.GetHashCode())) { return; } SendAddressDefaultSetting sendAddressDefaultSetting = new SendAddressDefaultSetting(userContext); if (sendAddressDefaultSetting.IsUserEmailAddress) { return; } SubscriptionCacheEntry subscriptionCacheEntry; if (userContext.SubscriptionCache.TryGetSendAsDefaultEntry(sendAddressDefaultSetting, out subscriptionCacheEntry)) { newItem.From = new Participant(subscriptionCacheEntry.DisplayName, subscriptionCacheEntry.Address, "SMTP"); return; } try { object obj = originalItem.TryGetProperty(MessageItemSchema.SharingInstanceGuid); SubscriptionCacheEntry subscriptionCacheEntry2; if (obj is Guid && userContext.SubscriptionCache.TryGetEntry((Guid)obj, out subscriptionCacheEntry2)) { newItem.From = new Participant(subscriptionCacheEntry2.DisplayName, subscriptionCacheEntry2.Address, "SMTP"); } } catch (NotInBagPropertyErrorException) { } }
public bool TryGetSendAsDefaultEntry(SendAddressDefaultSetting sendAddressDefaultSetting, out SubscriptionCacheEntry subscriptionCacheEntry) { subscriptionCacheEntry = new SubscriptionCacheEntry(Guid.Empty, string.Empty, string.Empty, null, CultureInfo.InvariantCulture); Guid subscriptionId; return(sendAddressDefaultSetting.TryGetSubscriptionSendAddressId(out subscriptionId) && this.TryGetEntry(subscriptionId, out subscriptionCacheEntry)); }