| File: ApplicationModel\AspireStoreExtensions.cs | Web Access |
| Project: src\src\Aspire.Hosting\Aspire.Hosting.csproj (Aspire.Hosting) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Aspire.Hosting.ApplicationModel; /// <summary> /// Provides extension methods for <see cref="IDistributedApplicationBuilder"/> to create an <see cref="IAspireStore"/> instance. /// </summary> public static class AspireStoreExtensions { /// <summary> /// Gets a deterministic file path that is a copy of the <paramref name="sourceFilename"/>. /// The resulting file name will depend on the content of the file. /// </summary> /// <param name="aspireStore">The <see cref="IAspireStore"/> instance.</param> /// <param name="filenameTemplate">A file name to base the result on.</param> /// <param name="sourceFilename">An existing file.</param> /// <returns>A deterministic file path with the same content as <paramref name="sourceFilename"/>.</returns> /// <exception cref="FileNotFoundException">Thrown when the source file does not exist.</exception> public static string GetFileNameWithContent(this IAspireStore aspireStore, string filenameTemplate, string sourceFilename) { ArgumentException.ThrowIfNullOrWhiteSpace(filenameTemplate); ArgumentException.ThrowIfNullOrWhiteSpace(sourceFilename); if (!File.Exists(sourceFilename)) { throw new FileNotFoundException("The source file does not exist.", sourceFilename); } using var sourceStream = File.OpenRead(sourceFilename); return aspireStore.GetFileNameWithContent(filenameTemplate, sourceStream); } }