// Copyright (c) Microsoft. All rights reserved. using System.ClientModel; using System.Threading; using System.Threading.Tasks; using Azure.AI.Projects; namespace Microsoft.Agents.AI.Foundry; /// /// Internal extension methods for to provide MemoryStores helper operations. /// internal static class MemoryStoreExtensions { /// /// Creates a memory store if it doesn't already exist. /// internal static async Task CreateMemoryStoreIfNotExistsAsync( this AIProjectClient client, string memoryStoreName, string? description, string chatModel, string embeddingModel, CancellationToken cancellationToken) { try { await client.MemoryStores.GetMemoryStoreAsync(memoryStoreName, cancellationToken).ConfigureAwait(false); return false; // Store already exists } catch (ClientResultException ex) when (ex.Status == 404) { // Store doesn't exist, create it } MemoryStoreDefaultDefinition definition = new(chatModel, embeddingModel); await client.MemoryStores.CreateMemoryStoreAsync(memoryStoreName, definition, description, cancellationToken: cancellationToken).ConfigureAwait(false); return true; } }