using FictionArchive.Common.Enums; using FictionArchive.Service.TranslationService.Models.Database; using FictionArchive.Service.TranslationService.Models.Enums; using FictionArchive.Service.TranslationService.Services.Database; using FictionArchive.Service.TranslationService.Services.TranslationEngines; namespace FictionArchive.Service.TranslationService.GraphQL; public class Mutation { public async Task TranslateText(string text, Language from, Language to, string translationEngineKey, IEnumerable translationEngines, TranslationServiceDbContext dbContext) { var engine = translationEngines.FirstOrDefault(engine => engine.Descriptor.Key == translationEngineKey); var translation = await engine.GetTranslation(text, from, to); dbContext.TranslationRequests.Add(new TranslationRequest() { OriginalText = text, BilledCharacterCount = 0, // FILL ME From = from, To = to, Status = translation != null ? TranslationRequestStatus.Success : TranslationRequestStatus.Failed, TranslatedText = translation, TranslationEngineKey = translationEngineKey }); await dbContext.SaveChangesAsync(); return translation; } }