Files
meeting-assistant/MeetingAssistant/MeetingNotes/IMeetingMetadataProvider.cs
T

42 lines
1.1 KiB
C#

namespace MeetingAssistant.MeetingNotes;
public interface IMeetingMetadataProvider
{
Task<MeetingMetadata?> GetCurrentMeetingAsync(
DateTimeOffset startedAt,
CancellationToken cancellationToken);
}
public interface IMeetingMetadataDiagnosticProvider
{
Task<MeetingMetadataDiagnosticResult> DiagnoseCurrentMeetingAsync(
DateTimeOffset startedAt,
TimeSpan timeout,
CancellationToken cancellationToken);
}
public sealed record MeetingMetadata(
string Title,
IReadOnlyList<string> Attendees,
string Agenda,
DateTimeOffset? ScheduledEnd = null);
public sealed record MeetingMetadataDiagnosticResult(
string Provider,
DateTimeOffset StartedAt,
bool Succeeded,
bool TimedOut,
long ElapsedMilliseconds,
MeetingMetadata? Metadata,
string? Error);
public sealed class NoopMeetingMetadataProvider : IMeetingMetadataProvider
{
public Task<MeetingMetadata?> GetCurrentMeetingAsync(
DateTimeOffset startedAt,
CancellationToken cancellationToken)
{
return Task.FromResult<MeetingMetadata?>(null);
}
}