Pokespearean/Pokespearean/Services/ShakespeareService.cs

43 lines
1004 B
C#

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<Settings> settingsOption)
{
shakespeareApi = settingsOption.Value.ShakespeareApi;
}
public async Task<WebResult> ToShakespearean(string text)
{
var result = new WebResult();
try
{
var response = await shakespeareApi
.AppendPathSegment("translate")
.AppendPathSegment("shakespeare.json")
.SetQueryParam(nameof(text), text, isEncoded: true)
.GetJsonAsync<ShakespearResponse>();
result.Data = response.Contents.Translated;
return result;
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
return result.Invalidate(ex.Message, ex);
}
}
}
}