Public Access
27 lines
767 B
C#
27 lines
767 B
C#
using System.Diagnostics;
|
|
|
|
namespace MeetingAssistant.MeetingNotes;
|
|
|
|
public sealed class ObsidianMeetingNoteOpener : IMeetingNoteOpener
|
|
{
|
|
private readonly ILogger<ObsidianMeetingNoteOpener> logger;
|
|
|
|
public ObsidianMeetingNoteOpener(ILogger<ObsidianMeetingNoteOpener> logger)
|
|
{
|
|
this.logger = logger;
|
|
}
|
|
|
|
public Task OpenAsync(string notePath, CancellationToken cancellationToken)
|
|
{
|
|
var uri = $"obsidian://open?path={Uri.EscapeDataString(Path.GetFullPath(notePath))}";
|
|
Process.Start(new ProcessStartInfo
|
|
{
|
|
FileName = uri,
|
|
UseShellExecute = true
|
|
});
|
|
logger.LogInformation("Opened meeting note in Obsidian via {ObsidianUri}", uri);
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
}
|