public static bool TryInstantiateAggregatorForSave(IMailboxSession session, CoreItemOperation saveOperation, ICoreItem item, ConversationIndexTrackingEx indexTrackingEx, out IConversationAggregator aggregator) { MailboxOwnerFactory mailboxOwnerFactory = new MailboxOwnerFactory(session); ConversationAggregatorFactory conversationAggregatorFactory = new ConversationAggregatorFactory(session, mailboxOwnerFactory.Create(), XSOFactory.Default, indexTrackingEx); return(conversationAggregatorFactory.TryInstantiateAggregatorForSave(saveOperation, item, out aggregator)); }
internal override void CoreObjectUpdate(CoreItem coreItem, CoreItemOperation operation) { base.CoreObjectUpdate(coreItem, operation); Task.CoreObjectUpdateTaskStatus(coreItem); Task.CoreObjectUpdateRecurrence(coreItem); Task.CoreObjectUpdateTaskDates(coreItem); }
internal override void CoreObjectUpdate(CoreItem coreItem, CoreItemOperation operation) { base.CoreObjectUpdate(coreItem, operation); MessageItem.CoreObjectUpdateConversationTopic(coreItem); MessageItem.CoreObjectUpdateConversationIndex(coreItem); MessageItem.CoreObjectUpdateConversationIndexFixup(coreItem, operation); MessageItem.CoreObjectUpdateIconIndex(coreItem); MessageItem.CoreObjectUpdateMimeSkeleton(coreItem); if (operation == CoreItemOperation.Send && coreItem != null && coreItem.Session != null && coreItem.Session.ActivitySession != null) { StoreObjectId internalStoreObjectId = ((ICoreObject)coreItem).InternalStoreObjectId; string name = base.GetType().Name; coreItem.Session.ActivitySession.CaptureMessageSent(internalStoreObjectId, name); } }
internal virtual void CoreObjectUpdate(CoreItem coreItem, CoreItemOperation operation) { Item.CoreObjectUpdateInternetMessageId(coreItem); Item.CoreObjectUpdatePreview(coreItem); Item.CoreObjectUpdateSentRepresentingType(coreItem); Item.CoreObjectUpdateAnnotationToken(coreItem); this.CoreObjectUpdateAllAttachmentsHidden(coreItem); if (coreItem != null && ((IValidatable)coreItem).ValidateAllProperties) { foreach (PropertyRule propertyRule in this.PropertyRules) { bool arg = propertyRule.WriteEnforce(coreItem.PropertyBag); ExTraceGlobals.StorageTracer.Information <string, bool>((long)this.GetHashCode(), "ItemSchema.CoreObjectUpdate. PropertyRule enfoced. Rule = {0}. Result = {1}", propertyRule.ToString(), arg); } } }
internal override void CoreObjectUpdate(CoreItem coreItem, CoreItemOperation operation) { base.CoreObjectUpdate(coreItem, operation); MeetingResponse.CoreObjectUpdateIsSilent(coreItem); }
internal override void CoreObjectUpdate(CoreItem coreItem, CoreItemOperation operation) { CalendarItemBase.CoreObjectUpdateLocationAddress(coreItem); base.CoreObjectUpdate(coreItem, operation); }
internal override void CoreObjectUpdate(CoreItem coreItem, CoreItemOperation operation) { Contact.CoreObjectUpdateFileAs(coreItem); base.CoreObjectUpdate(coreItem, operation); Contact.CoreObjectUpdatePhysicalAddresses(coreItem); }
public bool TryCalculateOnSave(ICorePropertyBag itemPropertyBag, ConversationIndex.FixupStage stage, ConversationIndex conversationIndex, CoreItemOperation operation, out byte[] conversationCreatorSid) { return(ConversationCreatorHelper.TryCalculateConversationCreatorSidOnSaving(this.mailboxSession as MailboxSession, itemPropertyBag, stage, conversationIndex, out conversationCreatorSid)); }
ConflictResolutionResult ICoreItem.InternalFlush(SaveMode saveMode, CoreItemOperation operation, CallbackContext callbackContext) { return(this.CoreItem.InternalFlush(saveMode, operation, callbackContext)); }
internal override void CoreObjectUpdate(CoreItem coreItem, CoreItemOperation operation) { base.CoreObjectUpdate(coreItem, operation); PostItem.CoreObjectUpdateConversationTopic(coreItem); PostItem.CoreObjectUpdateDraftFlag(coreItem); }
private ConversationAggregatorFactory.AggregationApproach IdentifyAggregationApproachForSave(CoreItemOperation saveOperation, ICoreItem item) { if (this.session.LogonType == LogonType.Transport) { return(ConversationAggregatorFactory.AggregationApproach.NoOp); } ICorePropertyBag propertyBag = item.PropertyBag; string valueOrDefault = propertyBag.GetValueOrDefault <string>(InternalSchema.ItemClass, string.Empty); if (string.IsNullOrEmpty(valueOrDefault) || ConversationIdFromIndexProperty.CheckExclusionList(valueOrDefault) || propertyBag.GetValueOrDefault <bool>(InternalSchema.IsAssociated)) { return(ConversationAggregatorFactory.AggregationApproach.NoOp); } if (this.mailboxOwner.ThreadedConversationProcessingEnabled || this.mailboxOwner.SideConversationProcessingEnabled) { if (saveOperation == CoreItemOperation.Send || (item.Origin == Origin.New && !ConversationIndex.WasMessageEverProcessed(propertyBag))) { if (!this.mailboxOwner.ThreadedConversationProcessingEnabled) { return(ConversationAggregatorFactory.AggregationApproach.SideConversation); } return(ConversationAggregatorFactory.AggregationApproach.ThreadedConversation); } else { if (this.mailboxOwner.IsGroupMailbox && !propertyBag.GetValueOrDefault <bool>(InternalSchema.IsDraft)) { return(ConversationAggregatorFactory.AggregationApproach.SideConversation); } return(ConversationAggregatorFactory.AggregationApproach.NoOp); } } else { if (item.Origin == Origin.New && !ConversationIndex.WasMessageEverProcessed(propertyBag)) { return(ConversationAggregatorFactory.AggregationApproach.SameConversation); } return(ConversationAggregatorFactory.AggregationApproach.NoOp); } }
public bool TryInstantiateAggregatorForSave(CoreItemOperation saveOperation, ICoreItem item, out IConversationAggregator aggregator) { ConversationAggregatorFactory.AggregationApproach approach = this.IdentifyAggregationApproachForSave(saveOperation, item); return(this.TryInstantiateAggregator(approach, false, out aggregator)); }
internal override void CoreObjectUpdate(CoreItem coreItem, CoreItemOperation operation) { base.CoreObjectUpdate(coreItem, operation); this.PrepareAggregatedUserConfigurationUpdate(coreItem); }
public bool TryCalculateOnSave(ICorePropertyBag itemPropertyBag, ConversationIndex.FixupStage stage, ConversationIndex conversationIndex, CoreItemOperation operation, out byte[] conversationCreatorSid) { conversationCreatorSid = null; if (operation != CoreItemOperation.Save) { return(false); } byte[] itemOwnerSid = ValueConvertor.ConvertValueToBinary(this.mailboxSession.MailboxOwner.Sid, null); ConversationCreatorSidCalculator.MessageType messageType = this.CalculateMessageTypeOnSave(stage); return(this.TryCalculateConversationCreatorSid(conversationIndex, messageType, itemOwnerSid, out conversationCreatorSid)); }
internal override void CoreObjectUpdate(CoreItem coreItem, CoreItemOperation operation) { base.CoreObjectUpdate(coreItem, operation); ReportMessage.CoreObjectUpdateSubjectPrefix(coreItem); }