public async Task Handle(TankRefueled @event) { logger.LogDebug($"Tank refueled event received. Id: {@event.Id}"); var petrolStation = await repository.GetAsync(callContext.PetrolStationId.Value); petrolStation.Time = @event.TimeStamp; var tank = petrolStation.Tanks.SingleOrDefault(x => x.Id == @event.Id); var report = factory.CreateReportForTankRefused(@event); if (petrolStation.Reports == null) { petrolStation.Reports = new List <PetrolStationReport>(); } petrolStation.Reports.Add(report); tank.CurrentVolume = @event.CurrentPetrolVolume; await repository.UpdateAsync(petrolStation); await hub.Clients.All.SendAsync("StationUpdate", petrolStation.Id); logger.LogDebug($"Tank refueled event received handling ended."); }
public PetrolStationReport CreateReportForTankRefused(TankRefueled @event) { return(new PetrolStationReport() { TankId = @event.Id, NozzleId = null, TimeStamp = @event.TimeStamp, Report = $"Tank refueled. Current petrol volume: {@event.CurrentPetrolVolume}. Arrived petrol amount: {@event.ArrivedPetrolAmount}. Leaked petrol amount: {@event.LeakedPetrolAmount}. Stolen petrol amount {@event.StolenPetrolAmount}", Status = ReportStatus.TankRefueled }); }