private async Task <RewardResponse> QueueByReplayIdAsync(RewardRequest request) { HeroesProfileReplay replay = await heroesProfileService.GetReplayByIdAsync(request.ReplayId.Value); if (replay == null) { await AddToFailedRequestsAsync(new (request, replay)); return(new RewardResponse(success: false, message: $"could not find replay with id {request.ReplayId.Value}")); } if (replay.Deleted != null) { await AddToFailedRequestsAsync(new (request, replay)); return(new RewardResponse(success: false, message: $"the raw file for replay id {request.ReplayId.Value} is no longer available.")); } if (!settings.Spectate.VersionsSupported.Contains(replay.GameVersion)) { await AddToFailedRequestsAsync(new (request, replay)); return(new RewardResponse(success: false, message: $"the version found '{replay.GameVersion}' does not match the supported versions.")); } int position = await QueueReplayId(new (request, replay)); return(new RewardResponse(success: true, message: $"{replay.Id} - {replay.Map} ({replay.Rank}) has been queued. ({position})")); }