dotnet-cqrs/Svrnty.CQRS.Events/Discovery/EventDiscovery.cs

28 lines
747 B
C#

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