public override async Task <AnalyzeTrackResponseMessage> AnalyzeTrack(AnalyzeTrackRequestMessage request, ServerCallContext context) { var mediatorRequest = new AnalyzeTrackQuery(request.Tracks.Select(x => convertTimedTrack(x)).ToList()); var mediatorResponse = await mediator.Send(mediatorRequest); var result = new AnalyzeTrackResponseMessage(); result.AverageSpeed = mediatorResponse.AverageSpeed; result.AverateSpeedSplits.AddRange(mediatorResponse.AverageSpeedSplits); return(result); }
public async Task <TrackSpeedAnalyzeResult> AnalyzeTrack(List <TimedTrack> tracks, CancellationToken cancellationToken = default) { var message = new AnalyzeTrackRequestMessage(); message.Tracks.AddRange(tracks.Select(x => convertTrack(x))); var result = await client.AnalyzeTrackAsync(message, cancellationToken : cancellationToken); return(new TrackSpeedAnalyzeResult() { Average = result.AverageSpeed, Splits = result.AverateSpeedSplits.ToList() }); }