private async Task <IReadOnlyList <TurnViewModel> > GetTurnsForReplay(string replay) { if (!_wormsRunner.TryGetLogForReplay(replay, out var replayLog)) { replayLog = await _wormsRunner.CreateReplayLog(replay); } if (replayLog == null) { throw new OperationFailedException($"Log for replay not created: '{replay}'"); } var turns = _wormsRunner.ReadReplayLog(replayLog); return(turns.Select(x => new TurnViewModel(x)).ToArray()); }