public async Task <JokeDomainModel> GetJokeBySearch(string searchText) { string urlToBeEdited = "https://jokeapi-v2.p.rapidapi.com/joke/Any?type=single%2Ctwopart&format=json&contains=ToBeEdited"; string url = urlToBeEdited.Replace("ToBeEdited", searchText); var request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri(url), Headers = { { "x-rapidapi-key", "f532242162mshfcf7cd07f406465p146a68jsn307dbd577c73" }, { "x-rapidapi-host", "jokeapi-v2.p.rapidapi.com" }, }, }; using (var response = ApiHelper.ApiClient.SendAsync(request).Result) { if (response.IsSuccessStatusCode) { var jokeAsString = await response.Content.ReadAsStringAsync(); JokeApiModel = JsonConvert.DeserializeObject <JokeApiModel>(jokeAsString); JokeApiModel.DbId = Guid.NewGuid(); var jokeDomainModel = _jokeAdapterMapper.MapToDomainModel(JokeApiModel); return(jokeDomainModel); } else { throw new Exception(response.ReasonPhrase); } } }
public JokeDomainModel MapToDomainModel(JokeApiModel jokeApiModel) { var domainModel = new JokeDomainModel() { DbId = jokeApiModel.DbId, Category = jokeApiModel.Category, Favourite = jokeApiModel.Favourite, Selfcreated = jokeApiModel.Selfcreated }; if (String.IsNullOrWhiteSpace(jokeApiModel.Setup)) { domainModel.FirstPart = jokeApiModel.Joke; } else { domainModel.FirstPart = jokeApiModel.Setup; domainModel.SecondPart = jokeApiModel.Delivery; } return(domainModel); }
//Methods public JokeApiModel MapToApiModel(JokeDomainModel jokeDomainModel) { var apiModel = new JokeApiModel() { DbId = jokeDomainModel.DbId, Category = jokeDomainModel.Category, Favourite = jokeDomainModel.Favourite, Selfcreated = jokeDomainModel.Selfcreated }; if (!String.IsNullOrWhiteSpace(jokeDomainModel.SecondPart)) { apiModel.Joke = jokeDomainModel.FirstPart; } else { apiModel.Setup = jokeDomainModel.FirstPart; apiModel.Delivery = jokeDomainModel.SecondPart; } return(apiModel); }