Phase 20F Fixed build project
This commit is contained in:
parent
16ea855a3e
commit
6cd452018c
@ -247,7 +247,7 @@ public sealed class OnboardingService(
|
||||
|
||||
await PublishBuildProgress(userId, preview.PreviewID, "Creating characters...", 60, progress);
|
||||
var result = await builds.BuildAsync(userId, request)
|
||||
?? throw new InvalidOperationException("The project structure could not be built. Check the review choices and try again.");
|
||||
?? throw new InvalidOperationException($"The project structure could not be built. Approved chapters: {request.Chapters.Count}, scenes: {request.Scenes.Count}, characters: {request.Characters.Count}. Return to review, save your selections, and try Build Project again.");
|
||||
await scanPreviews.SaveBuildResultAsync(userId, result);
|
||||
await PublishBuildProgress(userId, preview.PreviewID, "Finalising project...", 90, progress);
|
||||
await PublishBuildProgress(userId, preview.PreviewID, result.Message, 100, progress, result);
|
||||
@ -415,6 +415,15 @@ public sealed class OnboardingService(
|
||||
var previewChapters = preview.Chapters.ToDictionary(chapter => chapter.TemporaryChapterKey, StringComparer.Ordinal);
|
||||
var previewScenes = preview.Scenes.ToDictionary(scene => scene.TemporarySceneKey, StringComparer.Ordinal);
|
||||
var includedChapterKeys = review.Chapters.Where(chapter => chapter.Include).Select(chapter => chapter.TemporaryChapterKey).ToHashSet(StringComparer.Ordinal);
|
||||
if (includedChapterKeys.Count == 0)
|
||||
{
|
||||
throw new InvalidOperationException("Choose at least one chapter before continuing.");
|
||||
}
|
||||
|
||||
if (!review.Scenes.Any(scene => scene.Include && includedChapterKeys.Contains(scene.TemporaryChapterKey)))
|
||||
{
|
||||
throw new InvalidOperationException("Choose at least one scene before continuing.");
|
||||
}
|
||||
|
||||
if (review.Chapters.Where(chapter => chapter.Include).Any(chapter => string.IsNullOrWhiteSpace(chapter.Title)))
|
||||
{
|
||||
|
||||
@ -85,8 +85,8 @@
|
||||
<input type="hidden" name="Chapters[@chapterIndex].TemporaryChapterKey" value="@chapter.TemporaryChapterKey" />
|
||||
<input type="hidden" name="Chapters[@chapterIndex].ChapterNumber" value="@chapter.ChapterNumber" />
|
||||
<label class="onboarding-review-toggle">
|
||||
<input type="hidden" name="Chapters[@chapterIndex].Include" value="false" />
|
||||
<input type="checkbox" name="Chapters[@chapterIndex].Include" value="true" checked="@chapter.Include" data-review-kind="chapter" />
|
||||
<input type="hidden" name="Chapters[@chapterIndex].Include" value="false" />
|
||||
Include chapter
|
||||
</label>
|
||||
<label class="onboarding-review-field">
|
||||
@ -104,8 +104,8 @@
|
||||
<input type="hidden" name="Scenes[@sceneIndex].TemporaryChapterKey" value="@scene.TemporaryChapterKey" />
|
||||
<input type="hidden" name="Scenes[@sceneIndex].SceneNumberWithinChapter" value="@scene.SceneNumberWithinChapter" />
|
||||
<label class="onboarding-review-toggle">
|
||||
<input type="hidden" name="Scenes[@sceneIndex].Include" value="false" />
|
||||
<input type="checkbox" name="Scenes[@sceneIndex].Include" value="true" checked="@scene.Include" data-review-kind="scene" />
|
||||
<input type="hidden" name="Scenes[@sceneIndex].Include" value="false" />
|
||||
Include scene
|
||||
</label>
|
||||
<label class="onboarding-review-field">
|
||||
@ -116,8 +116,8 @@
|
||||
@if (scene.WordCount == 0)
|
||||
{
|
||||
<label class="onboarding-review-toggle">
|
||||
<input type="hidden" name="Scenes[@sceneIndex].AllowZeroWords" value="false" />
|
||||
<input type="checkbox" name="Scenes[@sceneIndex].AllowZeroWords" value="true" />
|
||||
<input type="hidden" name="Scenes[@sceneIndex].AllowZeroWords" value="false" />
|
||||
Allow empty scene
|
||||
</label>
|
||||
}
|
||||
@ -172,8 +172,8 @@
|
||||
<input type="hidden" name="Characters[@characterIndex].TemporaryCharacterKey" value="@candidate.TemporaryCharacterKey" />
|
||||
<input type="hidden" name="Characters[@characterIndex].Category" value="@candidate.Category" />
|
||||
<label class="onboarding-review-toggle">
|
||||
<input type="hidden" name="Characters[@characterIndex].Include" value="false" />
|
||||
<input type="checkbox" name="Characters[@characterIndex].Include" value="true" checked="@candidate.Include" />
|
||||
<input type="hidden" name="Characters[@characterIndex].Include" value="false" />
|
||||
Include
|
||||
</label>
|
||||
<label class="onboarding-review-field">
|
||||
@ -218,8 +218,8 @@
|
||||
<input type="hidden" name="Characters[@characterIndex].TemporaryCharacterKey" value="@candidate.TemporaryCharacterKey" />
|
||||
<input type="hidden" name="Characters[@characterIndex].Category" value="@candidate.Category" />
|
||||
<label class="onboarding-review-toggle">
|
||||
<input type="hidden" name="Characters[@characterIndex].Include" value="false" />
|
||||
<input type="checkbox" name="Characters[@characterIndex].Include" value="true" checked="@candidate.Include" />
|
||||
<input type="hidden" name="Characters[@characterIndex].Include" value="false" />
|
||||
Include
|
||||
</label>
|
||||
<label class="onboarding-review-field">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user