Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Documentation Search all OfficeIMO/

API Reference

Class

EmailStorePstMutationTransaction

Namespace OfficeIMO.Email.Store
Assembly OfficeIMO.Email
Source revision 804a7612eee4 with working tree changes
Implements
IDisposable
Modifiers sealed

Stages folder and item changes against an existing Unicode PST and commits them as a verified atomic rewrite. Disposing an uncommitted transaction leaves the source byte-for-byte unchanged.

Inheritance

  • Object
  • EmailStorePstMutationTransaction

Usage

Explore 1 API references to this type

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Returned or exposed by 1

Methods

public String AddItem(String folderId, EmailDocument document, Boolean isAssociated = false, CancellationToken cancellationToken = default) #
Returns: String

Adds an item and returns its transaction-local identifier.

Parameters

folderId System.String requiredposition: 0
document OfficeIMO.Email.EmailDocument requiredposition: 1
isAssociated System.Boolean = false optionalposition: 2
cancellationToken System.Threading.CancellationToken = default optionalposition: 3
public EmailStorePstMutationReport Commit(CancellationToken cancellationToken = default) #
Returns: EmailStorePstMutationReport

Writes and verifies a staged Unicode PST, optionally commits a byte-for-byte backup, and atomically replaces the original. Any failure before the final commit leaves the original unchanged.

Parameters

cancellationToken System.Threading.CancellationToken = default optionalposition: 0
public async Task<EmailStorePstMutationReport> CommitAsync(CancellationToken cancellationToken = default) #
Returns: Task<EmailStorePstMutationReport>

Writes and verifies a staged Unicode PST, asynchronously flushes the staged artifact and optional byte-for-byte backup, then atomically replaces the original. Ordered PST serialization and semantic comparison remain synchronous stateful phases and are not hidden in a worker-thread wrapper.

Parameters

cancellationToken System.Threading.CancellationToken = default optionalposition: 0
public EmailStorePstFolderCopyResult CopyFolder(String folderId, String destinationParentFolderId, Boolean includeDescendants = true, EmailStorePstCopyConflictPolicy conflictPolicy = Fail, CancellationToken cancellationToken = default) #
Returns: EmailStorePstFolderCopyResult

Copies a source folder, optionally including its complete subtree and items.

Parameters

folderId System.String requiredposition: 0
destinationParentFolderId System.String requiredposition: 1
includeDescendants System.Boolean = true optionalposition: 2
conflictPolicy OfficeIMO.Email.Store.EmailStorePstCopyConflictPolicy = Fail optionalposition: 3
cancellationToken System.Threading.CancellationToken = default optionalposition: 4
public String CopyItem(String itemId, String destinationFolderId, Boolean? isAssociated = null, CancellationToken cancellationToken = default) #
Returns: String

Copies an existing source item into another folder and returns a transaction-local identifier.

Parameters

itemId System.String requiredposition: 0
destinationFolderId System.String requiredposition: 1
isAssociated System.Boolean? = null optionalposition: 2
cancellationToken System.Threading.CancellationToken = default optionalposition: 3
public String CreateFolder(String name, String? parentFolderId = null, String? containerClass = null) #
Returns: String

Creates a folder and returns its transaction-local identifier.

Parameters

name System.String requiredposition: 0
parentFolderId System.String? = null optionalposition: 1
containerClass System.String? = null optionalposition: 2
public Void DeleteFolder(String folderId, Boolean recursive = false, CancellationToken cancellationToken = default) #
Returns: Void

Deletes a non-mandatory folder. A non-empty folder requires recursive. Recursive deletion includes active descendants and their items.

Parameters

folderId System.String requiredposition: 0
recursive System.Boolean = false optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public Void DeleteItem(String itemId, CancellationToken cancellationToken = default) #
Returns: Void

Deletes an existing or newly staged item.

Parameters

itemId System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public Void Dispose() #
Returns: Void

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public EmailStorePstMutationPlan DryRun(CancellationToken cancellationToken = default) #
Returns: EmailStorePstMutationPlan

Returns a value-free dry run of every effective staged operation without writing an artifact.

Parameters

cancellationToken System.Threading.CancellationToken = default optionalposition: 0
public IEnumerable<EmailStoreItemReference> EnumerateItems() #
Returns: IEnumerable<EmailStoreItemReference>

Enumerates active source item references after staged deletes.

public Void MoveFolder(String folderId, String newParentFolderId) #
Returns: Void

Moves a non-mandatory folder below another active folder.

Parameters

folderId System.String requiredposition: 0
newParentFolderId System.String requiredposition: 1
public Void MoveItem(String itemId, String destinationFolderId, CancellationToken cancellationToken = default) #
Returns: Void

Moves an existing or newly staged item to another active folder.

Parameters

itemId System.String requiredposition: 0
destinationFolderId System.String requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public static EmailStorePstMutationTransaction Open(String path, EmailStorePstMutationOptions? options = null, CancellationToken cancellationToken = default) #
Returns: EmailStorePstMutationTransaction

Opens and locks an existing Unicode PST for one mutation transaction.

Parameters

path System.String requiredposition: 0
options OfficeIMO.Email.Store.EmailStorePstMutationOptions? = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public Void PatchItem(String itemId, EmailStoreItemPatch patch, CancellationToken cancellationToken = default) #
Returns: Void

Applies one reusable typed patch to an item.

Parameters

itemId System.String requiredposition: 0
patch OfficeIMO.Email.Store.EmailStoreItemPatch requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public Void PatchItemAttachments(String itemId, EmailAttachmentPatch patch, CancellationToken cancellationToken = default) #
Returns: Void

Applies ordered, bounds-checked attachment changes to an item.

Parameters

itemId System.String requiredposition: 0
patch OfficeIMO.Email.EmailAttachmentPatch requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public Void PatchItemProperties(String itemId, MapiPropertyPatch patch, CancellationToken cancellationToken = default) #
Returns: Void

Applies exact typed MAPI property changes after normal semantic projection when the item is rewritten.

Parameters

itemId System.String requiredposition: 0
patch OfficeIMO.Email.MapiPropertyPatch requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public EmailStorePstMutationSelectionReport PatchItems(EmailStoreTableQuery query, EmailStoreItemPatch patch, CancellationToken cancellationToken = default) #
Returns: EmailStorePstMutationSelectionReport

Applies one reusable typed patch to every row selected by a bounded table query. Selection completes before any item is changed, and a scan-limit result is rejected rather than partially mutating the transaction.

Parameters

query OfficeIMO.Email.Store.EmailStoreTableQuery requiredposition: 0
patch OfficeIMO.Email.Store.EmailStoreItemPatch requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public EmailStoreItem ReadItem(String itemId, CancellationToken cancellationToken = default) #
Returns: EmailStoreItem

Reads one source item by its stable source identifier.

Parameters

itemId System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public Void RenameFolder(String folderId, String name) #
Returns: Void

Changes a non-mandatory folder's display name.

Parameters

folderId System.String requiredposition: 0
name System.String requiredposition: 1
public Void ReplaceItem(String itemId, EmailDocument document, CancellationToken cancellationToken = default) #
Returns: Void

Replaces the semantic document for an existing or newly staged item.

Parameters

itemId System.String requiredposition: 0
document OfficeIMO.Email.EmailDocument requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public Void SetItemAssociated(String itemId, Boolean isAssociated, CancellationToken cancellationToken = default) #
Returns: Void

Moves an item between normal contents and folder-associated contents.

Parameters

itemId System.String requiredposition: 0
isAssociated System.Boolean requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2

Properties

public String SourcePath { get; } #

Full path of the PST that will be replaced only after a successful commit.

public String RootFolderId { get; } #

Source folder identifier used when a new folder omits its parent.

public IReadOnlyList<EmailStorePstMutationFolder> Folders { get; } #

Current staged folder view. Transaction-local identifiers remain stable until commit.