43 lines
1004 B
C#
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);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|