public ActionResult Play(HomePageViewModel viewModel) { if (!Enum.IsDefined(typeof(Region), viewModel.PlayerInput.Region) || string.IsNullOrWhiteSpace(viewModel.PlayerInput.SummonerName)) { return(RedirectToAction("Index", new { error = "Something is wrong with the provided summoner name or region." })); } var region = (Region)viewModel.PlayerInput.Region; var summonerName = viewModel.PlayerInput.SummonerName; var trimmedSummonerName = Regex.Replace(summonerName, @"\s+", ""); var apiConnection = new RiotAPIConnection(); var summonerRequest = new GetSummonerByNameRequest(region, summonerName); var summonersResult = apiConnection.PerformRequest <Dictionary <string, Summoner> >(summonerRequest); if (summonersResult.isSuccess && summonersResult.value != null && summonersResult.value.ContainsKey(trimmedSummonerName)) { var summoner = summonersResult.value[trimmedSummonerName]; return(RedirectToAction("Play", "Game", new { region = region, summonerId = summoner.id })); } else { return(RedirectToAction("Index", new { error = "Could not find Summoner." })); } }
public async Task <IActionResult> GetByName([FromRoute] GetSummonerByNameRequest request) { var result = await _riotSummonerService.GetBySummonerName(request); return(result.Match <IActionResult>( Ok, notFound => NotFound(ErrorResponse.GenerateErrorResponse("summonerName", Errors.SummonerNotFound)), error => StatusCode(StatusCodes.Status500InternalServerError, ErrorResponse.GenerateErrorResponse(null, Errors.UnexpectedError)) )); }
public async Task <OneOf <GetSummonerByNameResult, GetSummonerByNameNotFound, GetSummonerByNameError> > GetBySummonerName(GetSummonerByNameRequest request) { try { GetSummonerByNameResponse response = await _riotApi.GetSummonerByName(request.SummonerName); return(new GetSummonerByNameResult { AccountId = response.AccountId, ProfileIconId = response.ProfileIconId, RevisionDate = response.RevisionDate, Name = response.Name, Id = response.Id, PUuid = response.Puuid, SummonerLevel = response.SummonerLevel }); } catch (ApiException exception) { return(exception.StatusCode switch { HttpStatusCode.NotFound => new GetSummonerByNameNotFound(), _ => new GetSummonerByNameError(new[] { Errors.UnexpectedError }), });