using Pokespearean.Models.Generic; using System; using System.Threading.Tasks; using Pokespearean.Models; using Pokespearean.Models.Shakespeare; using Flurl; using Flurl.Http; using Microsoft.Extensions.Options; namespace Pokespearean.Services { public class ShakespeareService : IShakespeareService { private string shakespeareApi; public ShakespeareService(IOptions settingsOption) { shakespeareApi = settingsOption.Value.ShakespeareApi; } public async Task ToShakespearean(string text) { var result = new WebResult(); try { var response = await shakespeareApi .AppendPathSegment("translate") .AppendPathSegment("shakespeare.json") .SetQueryParam(nameof(text), text, isEncoded: true) .GetJsonAsync(); result.Data = response.Contents.Translated; return result; } catch (System.Exception ex) { Console.WriteLine(ex.Message); return result.Invalidate(ex.Message, ex); } } } }