2
0
mirror of https://github.com/9ParsonsB/Pulsar.git synced 2025-04-05 17:39:39 -04:00
pulsar/Pulsar/Features/EventsHub.cs
Ben Parsons efd0b3e0c0 Journals Now processed in own thread
Some invalid journal data is now handled
Journals now use polymorphic deserialization
Added Event names to all journal events
Remove unused controllers
2024-05-24 19:30:12 +10:00

61 lines
2.3 KiB
C#

namespace Pulsar.Features;
using Observatory.Framework.Files;
using Observatory.Framework.Files.Journal;
using Observatory.Framework.Files.Journal.Odyssey;
public class EventsHub : Hub<IEventsHub>
{
public async Task Status([FromServices] IStatusService statusService)
{
var status = await statusService.Get();
await Clients.Caller.StatusUpdated(status);
}
public async Task StatusUpdated(Observatory.Framework.Files.Status status) => await Clients.All.StatusUpdated(status);
public async Task OutfittingUpdated(OutfittingFile outfitting) => await Clients.All.OutfittingUpdated(outfitting);
public async Task ShipyardUpdated(ShipyardFile shipyard) => await Clients.All.ShipyardUpdated(shipyard);
public async Task NavRouteUpdated(NavRouteFile navRoute) => await Clients.All.NavRouteUpdated(navRoute);
public async Task MarketUpdated(MarketFile market) => await Clients.All.MarketUpdated(market);
public async Task JournalUpdated(IReadOnlyCollection<JournalBase> journals) => await Clients.All.JournalUpdated(journals);
public async Task ModuleInfoUpdated(ModuleInfoFile moduleInfo) => await Clients.All.ModuleInfoUpdated(moduleInfo);
public async Task FleetCarrierUpdated(FCMaterialsFile fleetCarrier) => await Clients.All.FleetCarrierUpdated(fleetCarrier);
public async Task CargoUpdated(CargoFile cargo) => await Clients.All.CargoUpdated(cargo);
public async Task BackpackUpdated(BackpackFile backpack) => await Clients.All.BackpackUpdated(backpack);
public async Task ShipLockerUpdated(ShipLockerMaterials shipLocker) => await Clients.All.ShipLockerUpdated(shipLocker);
}
public interface IEventsHub
{
Task StatusUpdated(Observatory.Framework.Files.Status status);
Task OutfittingUpdated(OutfittingFile outfitting);
Task ShipyardUpdated(ShipyardFile shipyard);
Task NavRouteUpdated(NavRouteFile navRoute);
Task MarketUpdated(MarketFile market);
Task JournalUpdated(IReadOnlyCollection<JournalBase> journals);
Task ModuleInfoUpdated(ModuleInfoFile moduleInfo);
Task FleetCarrierUpdated(FCMaterialsFile fleetCarrier);
Task CargoUpdated(CargoFile cargo);
Task BackpackUpdated(BackpackFile backpack);
Task ShipLockerUpdated(ShipLockerMaterials shipLocker);
}