public TemplateRender(TemplateRenderOptions options)
 {
     _options = options;
     AddEntries(options.Target.GetChildren());
 }
Example #2
0
        private void ImportBtn_Click(object sender, RoutedEventArgs e)
        {
            ICollectionView cards = CollectionViewSource.GetDefaultView(DG1.ItemsSource);

            Card card = cards
                        .Cast <Card>()
                        .Where(e => e.ToImport)
                        .FirstOrDefault();

            if (card.IsNull())
            {
                MessageBox.Show("Failed to import card because card was null");
                return;
            }

            TemplateRenderOptions opts = new TemplateRenderOptions();

            opts.Refs
            .WithAuthor(AuthorTextbox.Text)
            .WithTitle(TitleTextbox.Text)
            .WithAuthor(SourceTextbox.Text);

            if (ImageExtractionCheckbox.IsChecked == true)
            {
                opts.AddImageComponents = true;
            }
            else
            {
                opts.AddImageComponents = false;
            }

            ElementBuilder builder = null;

            if (IgnoreDuplicateFieldsCheckbox.IsChecked == true)
            {
                var question = new Renderer(card).Render(TemplateType.Question, out var fieldDict);
                var answer   = new Renderer(card).RenderAnswerIgnoreDuplicates(fieldDict, out _);
                builder = new AnkiCardBuilder(card, question, answer).CreateElementBuilder();
            }
            else
            {
                builder = new AnkiCardBuilder(card).CreateElementBuilder();
            }

            IElement parent = null;

            double priority = PrioritySlider.Value;

            if (priority < 0 || priority > 100)
            {
                priority = 30;
            }

            if (ImportChildRadio.IsChecked == true)
            {
                parent = Svc.SM.UI.ElementWdw.CurrentElement;
            }

            Svc.SM.Registry.Element.Add(
                out _,
                Interop.SuperMemo.Elements.Models.ElemCreationFlags.ForceCreate,
                builder
                .WithParent(parent)
                .WithPriority(priority)
                );
        }