public async Task RecordWeatherDataAsync(string tileName, Temperature temperature, Percentage humidity, DateTimeOffset?dateOfChange, CancellationToken token) { var weatherData = new WeatherData(temperature, humidity, dateOfChange ?? DateTimeOffsetProvider.Now); if (await _weatherRepository.AddDataAsync(tileName, weatherData, token)) { await _eventDispatcher.PublishAsync(new NewDataEvent(new TileId(tileName, TileType.Weather), new { Temperature = weatherData.Temperature.GetRoundedValue(), Humidity = weatherData.Humidity.GetRoundedValue(), weatherData.AddedOn }), token); } }