/// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <QueryProjectsResult> ListProjectsAsync(this IDidacticalEnigmaMem operations, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.ListProjectsWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='publicallyReadable'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> AddProjectAsync(this IDidacticalEnigmaMem operations, string projectName = default(string), bool?publicallyReadable = default(bool?), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.AddProjectWithHttpMessagesAsync(projectName, publicallyReadable, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='body'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> CancelInvitationAsync(this IDidacticalEnigmaMem operations, CancelInvitationParams body = default(CancelInvitationParams), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CancelInvitationWithHttpMessagesAsync(body, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='body'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <AddTranslationsResult> AddTranslationsAsync(this IDidacticalEnigmaMem operations, string projectName = default(string), AddTranslationsParams body = default(AddTranslationsParams), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.AddTranslationsWithHttpMessagesAsync(projectName, body, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='correlationId'>
 /// </param>
 /// <param name='body'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> UpdateTranslationAsync(this IDidacticalEnigmaMem operations, string projectName = default(string), string correlationId = default(string), UpdateTranslationParams body = default(UpdateTranslationParams), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.UpdateTranslationWithHttpMessagesAsync(projectName, correlationId, body, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Query for translations
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// The name of the project
 /// </param>
 /// <param name='correlationId'>
 /// The prefix of the correlation id
 /// </param>
 /// <param name='query'>
 /// Search query
 /// </param>
 /// <param name='category'>
 /// Translation category
 /// </param>
 /// <param name='paginationToken'>
 /// A pagination token that was returned from the previous query with the same
 /// set of parameters
 /// </param>
 /// <param name='limit'>
 /// How many translations should be returned? Values above 250 are treated as
 /// if 250 was passed.
 /// </param>
 /// <param name='translatedOnly'>
 /// Return only the sentences which have corresponding translations
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <QueryTranslationsResult> QueryAsync(this IDidacticalEnigmaMem operations, string projectName = default(string), string correlationId = default(string), string query = default(string), string category = default(string), string paginationToken = default(string), int?limit = 50, bool?translatedOnly = false, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.QueryWithHttpMessagesAsync(projectName, correlationId, query, category, paginationToken, limit, translatedOnly, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='categoryId'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> DeleteCategoryAsync(this IDidacticalEnigmaMem operations, string projectName = default(string), System.Guid?categoryId = default(System.Guid?), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.DeleteCategoryWithHttpMessagesAsync(projectName, categoryId, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <QueryCategoriesResult> GetCategoriesAsync(this IDidacticalEnigmaMem operations, string projectName = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetCategoriesWithHttpMessagesAsync(projectName, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='projectId'>
 /// </param>
 /// <param name='correlationId'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <QueryContextsResult> GetContextsAsync(this IDidacticalEnigmaMem operations, System.Guid?id = default(System.Guid?), string projectId = default(string), string correlationId = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetContextsWithHttpMessagesAsync(id, projectId, correlationId, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='contributorName'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> RemoveContributorAsync(this IDidacticalEnigmaMem operations, string projectName = default(string), string contributorName = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.RemoveContributorWithHttpMessagesAsync(projectName, contributorName, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='contentTypeOverride'>
 /// </param>
 /// <param name='correlationId'>
 /// </param>
 /// <param name='content'>
 /// </param>
 /// <param name='text'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> AddContextAsync(this IDidacticalEnigmaMem operations, string id = default(string), string projectName = default(string), string contentTypeOverride = default(string), string correlationId = default(string), Stream content = default(Stream), string text = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.AddContextWithHttpMessagesAsync(id, projectName, contentTypeOverride, correlationId, content, text, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
        public static async Task Import(IDidacticalEnigmaMem api, string projectName, IReadOnlyList <string> args)
        {
            var deckDirectoryPath = args[0];
            var dataFilePath      = Path.Combine(deckDirectoryPath, "data.json");

            await foreach (var batch in ChunkBy(StreamingDeserialize(dataFilePath), BatchSize))
            {
                await api.AddTranslationsAsync(
                    projectName,
                    new AddTranslationsParams()
                {
                    Translations = batch
                                   .Select(entry => new AddTranslationParams()
                    {
                        Source        = entry.Sentence,
                        Target        = entry.Translation,
                        CorrelationId = $"{entry.DeckName}, {entry.Id}"
                    })
                                   .ToList()
                });
            }
        }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='projectName'>
 /// </param>
 public static object DeleteContext(this IDidacticalEnigmaMem operations, System.Guid?id = default(System.Guid?), string projectName = default(string))
 {
     return(operations.DeleteContextAsync(id, projectName).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='ifModifiedSinceOverride'>
 /// </param>
 public static void GetContextData(this IDidacticalEnigmaMem operations, System.Guid?id = default(System.Guid?), System.DateTime?ifModifiedSinceOverride = default(System.DateTime?))
 {
     operations.GetContextDataAsync(id, ifModifiedSinceOverride).GetAwaiter().GetResult();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 public static QueryCategoriesResult GetCategories(this IDidacticalEnigmaMem operations, string projectName = default(string))
 {
     return(operations.GetCategoriesAsync(projectName).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='correlationId'>
 /// </param>
 /// <param name='body'>
 /// </param>
 public static object UpdateTranslation(this IDidacticalEnigmaMem operations, string projectName = default(string), string correlationId = default(string), UpdateTranslationParams body = default(UpdateTranslationParams))
 {
     return(operations.UpdateTranslationAsync(projectName, correlationId, body).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='ifModifiedSinceOverride'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task GetContextDataAsync(this IDidacticalEnigmaMem operations, System.Guid?id = default(System.Guid?), System.DateTime?ifModifiedSinceOverride = default(System.DateTime?), CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.GetContextDataWithHttpMessagesAsync(id, ifModifiedSinceOverride, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='contributorName'>
 /// </param>
 public static object RemoveContributor(this IDidacticalEnigmaMem operations, string projectName = default(string), string contributorName = default(string))
 {
     return(operations.RemoveContributorAsync(projectName, contributorName).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='correlationId'>
 /// </param>
 public static object DeleteTranslation(this IDidacticalEnigmaMem operations, string projectName = default(string), string correlationId = default(string))
 {
     return(operations.DeleteTranslationAsync(projectName, correlationId).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Query for translations
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// The name of the project
 /// </param>
 /// <param name='correlationId'>
 /// The prefix of the correlation id
 /// </param>
 /// <param name='query'>
 /// Search query
 /// </param>
 /// <param name='category'>
 /// Translation category
 /// </param>
 /// <param name='paginationToken'>
 /// A pagination token that was returned from the previous query with the same
 /// set of parameters
 /// </param>
 /// <param name='limit'>
 /// How many translations should be returned? Values above 250 are treated as
 /// if 250 was passed.
 /// </param>
 /// <param name='translatedOnly'>
 /// Return only the sentences which have corresponding translations
 /// </param>
 public static QueryTranslationsResult Query(this IDidacticalEnigmaMem operations, string projectName = default(string), string correlationId = default(string), string query = default(string), string category = default(string), string paginationToken = default(string), int?limit = 50, bool?translatedOnly = false)
 {
     return(operations.QueryAsync(projectName, correlationId, query, category, paginationToken, limit, translatedOnly).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='categoryId'>
 /// </param>
 public static object DeleteCategory(this IDidacticalEnigmaMem operations, string projectName = default(string), System.Guid?categoryId = default(System.Guid?))
 {
     return(operations.DeleteCategoryAsync(projectName, categoryId).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='body'>
 /// </param>
 public static AddTranslationsResult AddTranslations(this IDidacticalEnigmaMem operations, string projectName = default(string), AddTranslationsParams body = default(AddTranslationsParams))
 {
     return(operations.AddTranslationsAsync(projectName, body).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='body'>
 /// </param>
 public static object SendInvitation(this IDidacticalEnigmaMem operations, string projectName = default(string), SendInvitationParams body = default(SendInvitationParams))
 {
     return(operations.SendInvitationAsync(projectName, body).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 public static QueryInvitationsResult QueryInvitations(this IDidacticalEnigmaMem operations)
 {
     return(operations.QueryInvitationsAsync().GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='projectId'>
 /// </param>
 /// <param name='correlationId'>
 /// </param>
 public static QueryContextsResult GetContexts(this IDidacticalEnigmaMem operations, System.Guid?id = default(System.Guid?), string projectId = default(string), string correlationId = default(string))
 {
     return(operations.GetContextsAsync(id, projectId, correlationId).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 public static object DeleteProject(this IDidacticalEnigmaMem operations, string projectName = default(string))
 {
     return(operations.DeleteProjectAsync(projectName).GetAwaiter().GetResult());
 }
Exemple #27
0
        public static async Task Import(IDidacticalEnigmaMem api, string projectName, IReadOnlyList <string> args)
        {
            var projectPath = args[0];

            if (MagicTranslatorProject.MagicTranslatorProject.Registration.TryOpen(projectPath, out var rawProject, out var failureReason))
            {
                var project = (MagicTranslatorProject.MagicTranslatorProject)rawProject;

                var characterDict = project.Root.AllCharacters.ToDictionary(c => c, c => Guid.NewGuid());

                await api.AddCategoriesAsync(projectName, new AddCategoriesParams()
                {
                    Categories = characterDict
                                 .Select(kvp => new AddCategoryParams()
                    {
                        Id   = kvp.Value,
                        Name = kvp.Key.ToString()
                    })
                                 .ToList()
                });

                var translations = new List <AddTranslationParams>();
                foreach (var volume in project.Root.Children)
                {
                    foreach (var chapter in volume.Children)
                    {
                        foreach (var page in chapter.Children)
                        {
                            await using var file = File.OpenRead(page.PathToRaw);
                            await api.AddContextAsync(
                                Guid.NewGuid().ToString(),
                                projectName,
                                "image/png",
                                page.ReadableIdentifier,
                                file,
                                null);


                            foreach (var capture in page.Children)
                            {
                                var normalizedNotes =
                                    capture.Translation.Notes
                                    .Where(n => !string.IsNullOrWhiteSpace(n.Text))
                                    .Select(n => new IoNormalNote("", n.Text))
                                    .ToList();
                                var normalizedGlosses = capture.Translation.Glosses
                                                        .Where(n => !string.IsNullOrWhiteSpace(n.Foreign) || !string.IsNullOrWhiteSpace(n.Text))
                                                        .Select(n => new IoGlossNote(n.Foreign, n.Text))
                                                        .ToList();
                                var hasNotesOrGlosses = normalizedGlosses.Count != 0 || normalizedNotes.Count != 0;
                                translations.Add(new AddTranslationParams()
                                {
                                    CorrelationId    = capture.ReadableIdentifier,
                                    Source           = capture.Translation.OriginalText,
                                    Target           = string.IsNullOrWhiteSpace(capture.Translation.TranslatedText) ? null : capture.Translation.TranslatedText,
                                    CategoryId       = characterDict[capture.Character],
                                    TranslationNotes = hasNotesOrGlosses
                                        ? new AddTranslationNotesParams(
                                        capture.Translation.Notes.Select(n => new IoNormalNote(n.SideText, n.Text)).ToList(),
                                        capture.Translation.Glosses.Select(n => new IoGlossNote(n.Foreign, n.Text)).ToList())
                                        : null
                                });
                            }

                            if (translations.Count > 100)
                            {
                                await api.AddTranslationsAsync(projectName, new AddTranslationsParams()
                                {
                                    Translations = translations
                                });

                                translations.Clear();
                            }
                        }
                    }
                }
                if (translations.Count > 0)
                {
                    await api.AddTranslationsAsync(projectName, new AddTranslationsParams()
                    {
                        Translations = translations
                    });

                    translations.Clear();
                }
            }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='body'>
 /// </param>
 public static object CancelInvitation(this IDidacticalEnigmaMem operations, CancelInvitationParams body = default(CancelInvitationParams))
 {
     return(operations.CancelInvitationAsync(body).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 public static QueryProjectsResult ListProjects(this IDidacticalEnigmaMem operations)
 {
     return(operations.ListProjectsAsync().GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='projectName'>
 /// </param>
 /// <param name='publicallyReadable'>
 /// </param>
 public static object AddProject(this IDidacticalEnigmaMem operations, string projectName = default(string), bool?publicallyReadable = default(bool?))
 {
     return(operations.AddProjectAsync(projectName, publicallyReadable).GetAwaiter().GetResult());
 }