Public Access
42 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|