コード例 #1
0
        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})"));
        }