using System;
using System.Collections.Generic;
using System.Linq;
using Svrnty.CQRS.Events.Abstractions.Discovery;
namespace Svrnty.CQRS.Events.Discovery;
///
/// Default implementation of IEventDiscovery.
///
public sealed class EventDiscovery : IEventDiscovery
{
private readonly IEnumerable _eventMetas;
public EventDiscovery(IEnumerable eventMetas)
{
_eventMetas = eventMetas;
}
public IEnumerable GetEvents() => _eventMetas;
public IEventMeta? GetEvent(string name) =>
_eventMetas.FirstOrDefault(e => e.Name == name);
public IEventMeta? GetEvent(Type eventType) =>
_eventMetas.FirstOrDefault(e => e.EventType == eventType);
}