private static string GetValue(Game.StartProperties startProperties, [CanBeNull] Game.Result result, string key) {
if (startProperties.BasicProperties == null) return null;
switch (key) {
case "type":
return GetType(startProperties, result);
case "car":
return CarsManager.Instance.GetById(startProperties.BasicProperties.CarId)?.DisplayName;
case "car.id":
return startProperties.BasicProperties.CarId;
case "track":
var track = TracksManager.Instance.GetById(startProperties.BasicProperties.TrackId);
var config = startProperties.BasicProperties.TrackConfigurationId != null
? track?.GetLayoutByLayoutId(startProperties.BasicProperties.TrackConfigurationId) : track;
return config?.Name;
case "track.id":
return startProperties.BasicProperties.TrackId;
case "date":
return startProperties.StartTime.ToString(CultureInfo.CurrentCulture);
case "date_ac":
return GetAcDate(startProperties.StartTime);
default:
return null;
}
}