@model ImportIndexViewModel @{ ViewData["Title"] = "JSON Import"; var preview = Model.Preview; }

Tools

JSON Import

Paste or upload a Phase 1A package, preview it, then import a new project when validation passes.

Back to projects
@if (!string.IsNullOrWhiteSpace(Model.StatusMessage)) {
@Model.StatusMessage
}
Uploading a file replaces the pasted text for this preview.
@if (preview is not null) {

Preview

@(preview.Package?.Project.Title ?? "Import package")

@preview.BookCount books @preview.ChapterCount chapters @preview.SceneCount scenes
@if (preview.Validation.Errors.Any()) {
Validation needs attention
} @if (preview.Validation.Warnings.Any()) {
Import notes
} @if (preview.Package is not null) {
@foreach (var book in preview.Package.Books.OrderBy(x => x.SeriesOrder)) {

Book @book.SeriesOrder: @(string.IsNullOrWhiteSpace(book.Subtitle) ? book.Title : $"{book.Title}: {book.Subtitle}")

@foreach (var chapter in book.Chapters.OrderBy(x => x.Order)) {
Chapter @chapter.ChapterNumber: @chapter.Title
    @foreach (var scene in chapter.Scenes.OrderBy(x => x.Order)) {
  • Scene @scene.SceneNumber: @scene.Title
  • }
}
}
@if (preview.HasDuplicateProjectTitle) {
}
}
} @section Scripts { }