# Program

- File ID: file:1dbwiwx:program-cs
- Path: NexusReader.Web.Client/Program.cs
- Role: startup
- Layer: frontend

## Purpose

Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.

## Key Details

This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.

## Symbols

- Program (top-level): Creates the WebAssembly host builder, registers services (platform, UI, identity, AI, HTTP client, app services) and starts the WASM app.
- CreateDbContext(): IDbContextFactory implementation that prevents use of EF DbContext in the WASM client by always throwing.
- Dispose(): Dispose no-op for the throwing embedding generator.
- GenerateAsync(): Stub embedding generation that always throws in the WASM client.
- GetService(): Returns null for service lookup; minimal service accessor to satisfy interface.
- SaveEbookAsync (byte[]): Stub storage operation that throws because file storage is unsupported in WASM client.
- SaveEbookAsync (Stream): Stub storage operation that throws because file storage is unsupported in WASM client.
- SaveCoverAsync (byte[]): Stub cover save that throws because file storage is unsupported in WASM client.
- SaveCoverAsync (Stream): Stub cover save that throws because file storage is unsupported in WASM client.
- FindAuthorByNameAsync(): Ebook repository lookup stub that throws in WASM; repository operations should be done via server API.
- AddAuthor(): Repository add stub that throws to prevent local data mutation in WASM.
- AddEbook(): Repository add stub that throws to prevent local data mutation in WASM.
- SaveChangesAsync(): Repository save stub that throws to prevent EF operations in WASM.
- BroadcastProgressAsync(): Real-time broadcast stub that throws because server-only real-time broadcasting is unsupported in WASM.
- BroadcastIngestionProgressAsync(): Real-time ingestion progress broadcast stub that throws because server-only broadcasting is required.
- ThrowingDbContextFactory: IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.
- ThrowingEmbeddingGenerator: IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.
- ThrowingBookStorageService: IBookStorageService stub that throws for all file storage operations in the WASM client.
- ThrowingEbookRepository: IEbookRepository stub that throws for all repository operations to force use of server API.
- ThrowingSyncBroadcaster: ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.

## Dependencies

- No resolved dependencies.

## Calls

- No resolved calls.

## Unresolved References

- dependency-target: NexusReader.Application
- dependency-target: NexusReader.Data.Persistence
- dependency-target: NexusReader.Application.Abstractions.Services
- dependency-target: NexusReader.UI.Shared.Services
- dependency-target: NexusReader.Application.Abstractions.Persistence
- dependency-target: NexusReader.Application.Abstractions.Messaging
- dependency-target: NexusReader.Domain.Entities
- dependency-target: Microsoft.AspNetCore.Components.WebAssembly.Hosting
- call-target: unknown
- call-target: self
- call-target: self
- call-target: self
- call-target: self
- call-target: self
- call-target: NexusReader.Application
- call-target: unknown
- call-target: unknown
- interaction-target: public Task<Author?> FindAuthorByNameAsync(string name, CancellationToken cancellationToken = default) => throw new NotSupportedException(ErrorMessage);
- interaction-target: public Task<Author?> FindAuthorByNameAsync(string name, CancellationToken cancellationToken = default) => throw new NotSupportedException(ErrorMessage);
- interaction-target: public Task<Author?> FindAuthorByNameAsync(string name, CancellationToken cancellationToken = default) => throw new NotSupportedException(ErrorMessage);
- interaction-target: public Task<Author?> FindAuthorByNameAsync(string name, CancellationToken cancellationToken = default) => throw new NotSupportedException(ErrorMessage);

## Coverage

- Symbols: 20
- Executable symbols: 15
- Executable symbols with control flow: 15
- Grounded edges: 20
- Unresolved references: 21
- Control-flow fragments: 15
- Unresolved jumps: 9
- Unsupported constructs: 0
- Control-flow coverage: 100%
- Required diagrams: 2
- Generated diagrams: 15

## Control Flow Fragments

- Program (top-level): 20 nodes, 19 edges, 9 jumps, 0 unsupported constructs
- CreateDbContext: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
- Dispose: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
- GenerateAsync: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
- GetService: 2 nodes, 1 edges, 0 jumps, 0 unsupported constructs
- SaveEbookAsync (byte[]): 4 nodes, 3 edges, 0 jumps, 0 unsupported constructs
- SaveEbookAsync (Stream): 5 nodes, 4 edges, 0 jumps, 0 unsupported constructs
- SaveCoverAsync (byte[]): 6 nodes, 5 edges, 0 jumps, 0 unsupported constructs
- SaveCoverAsync (Stream): 6 nodes, 5 edges, 0 jumps, 0 unsupported constructs
- FindAuthorByNameAsync: 5 nodes, 4 edges, 0 jumps, 0 unsupported constructs
- AddAuthor: 6 nodes, 5 edges, 0 jumps, 0 unsupported constructs
- AddEbook: 7 nodes, 6 edges, 0 jumps, 0 unsupported constructs
- SaveChangesAsync: 7 nodes, 6 edges, 0 jumps, 0 unsupported constructs
- BroadcastProgressAsync: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
- BroadcastIngestionProgressAsync: 4 nodes, 3 edges, 0 jumps, 0 unsupported constructs

## Diagrams

### Program Neighborhood

_Warnings: diagram file_1dbwiwx_program_cs_neighborhood_view exceeds preferred complexity thresholds (21 nodes, 0 edges)._

```mermaid
---
config:
  flowchart:
    defaultRenderer: "elk"
---
flowchart LR
    file_1dbwiwx_program_cs("Program")
    method_11t39ko_broadcastprogressasync[["BroadcastProgressAsync()"]]
    method_161c21f_savecoverasync_byte[["SaveCoverAsync (byte[])"]]
    method_194t8sk_dispose[["Dispose()"]]
    method_1c802h4_program_top_level[["Program (top-level)"]]
    method_1wp2z4z_savechangesasync[["SaveChangesAsync()"]]
    method_1xlrbb1_savecoverasync_stream[["SaveCoverAsync (Stream)"]]
    method_9hjjot_createdbcontext[["CreateDbContext()"]]
    method_9ytc6k_saveebookasync_byte[["SaveEbookAsync (byte[])"]]
    method_k4xtk2_saveebookasync_stream[["SaveEbookAsync (Stream)"]]
    method_s3i4fd_findauthorbynameasync[["FindAuthorByNameAsync()"]]
    method_swctk_getservice[["GetService()"]]
    method_ulf8of_addauthor[["AddAuthor()"]]
    method_v3kul8_addebook[["AddEbook()"]]
    method_x4i3zt_generateasync[["GenerateAsync()"]]
    method_yo2gbi_broadcastingestionprogressasync[["BroadcastIngestionProgressAsync()"]]
    type_1b5mqrj_throwingembeddinggenerator[/"ThrowingEmbeddingGenerator"/]
    type_1dhn7tl_throwingebookrepository[/"ThrowingEbookRepository"/]
    type_1mye80d_throwingbookstorageservice[/"ThrowingBookStorageService"/]
    type_k9hk67_throwingdbcontextfactory[/"ThrowingDbContextFactory"/]
    type_ms3ont_throwingsyncbroadcaster[/"ThrowingSyncBroadcaster"/]
```

### Program Execution Overview

_Warnings: diagram file_1dbwiwx_program_cs_execution_view exceeds preferred complexity thresholds (26 nodes, 28 edges)._

```mermaid
---
config:
  flowchart:
    defaultRenderer: "elk"
---
flowchart TD
    file_1dbwiwx_program_cs("Program")
    method_11t39ko_broadcastprogressasync[["BroadcastProgressAsync()"]]
    method_161c21f_savecoverasync_byte[["SaveCoverAsync (byte[])"]]
    method_194t8sk_dispose[["Dispose()"]]
    method_1c802h4_program_top_level[["Program (top-level)"]]
    method_1wp2z4z_savechangesasync[["SaveChangesAsync()"]]
    method_1xlrbb1_savecoverasync_stream[["SaveCoverAsync (Stream)"]]
    method_9hjjot_createdbcontext[["CreateDbContext()"]]
    method_9ytc6k_saveebookasync_byte[["SaveEbookAsync (byte[])"]]
    method_k4xtk2_saveebookasync_stream[["SaveEbookAsync (Stream)"]]
    method_s3i4fd_findauthorbynameasync[["FindAuthorByNameAsync()"]]
    method_swctk_getservice[["GetService()"]]
    method_ulf8of_addauthor[["AddAuthor()"]]
    method_v3kul8_addebook[["AddEbook()"]]
    method_x4i3zt_generateasync[["GenerateAsync()"]]
    method_yo2gbi_broadcastingestionprogressasync[["BroadcastIngestionProgressAsync()"]]
    unresolved_unresolved_16fktdf_call_target{"Unresolved: ThrowingEbookRepository..ctor"}
    unresolved_unresolved_185ga2x_call_target{"Unresolved: ThrowingEmbeddingGenerator..ctor"}
    unresolved_unresolved_1c1y3m5_interaction_target{"Unresolved: public Task<Author?> FindAuthorByNameAsync(string name, CancellationToken cancellationToken = default) => throw new NotSupportedException(ErrorMessage);"}
    unresolved_unresolved_1cadlie_call_target{"Unresolved: ThrowingBookStorageService..ctor"}
    unresolved_unresolved_1i197q2_call_target{"Unresolved: ThrowingDbContextFactory..ctor"}
    unresolved_unresolved_1ijl9jf_call_target{"Unresolved: ServiceCollectionExtensions.AddApplication"}
    unresolved_unresolved_1xv9ime_call_target{"Unresolved: WebAssemblyHostBuilder.Build"}
    unresolved_unresolved_d2qhgm_call_target{"Unresolved: WebAssemblyHost.RunAsync"}
    unresolved_unresolved_h9xqg7_call_target{"Unresolved: WebAssemblyHostBuilder.CreateDefault"}
    unresolved_unresolved_igkgco_call_target{"Unresolved: ThrowingSyncBroadcaster..ctor"}
    file_1dbwiwx_program_cs -->|contains| method_11t39ko_broadcastprogressasync
    file_1dbwiwx_program_cs -->|contains| method_161c21f_savecoverasync_byte
    file_1dbwiwx_program_cs -->|contains| method_194t8sk_dispose
    file_1dbwiwx_program_cs -->|contains| method_1c802h4_program_top_level
    file_1dbwiwx_program_cs -->|contains| method_1wp2z4z_savechangesasync
    file_1dbwiwx_program_cs -->|contains| method_1xlrbb1_savecoverasync_stream
    file_1dbwiwx_program_cs -->|contains| method_9hjjot_createdbcontext
    file_1dbwiwx_program_cs -->|contains| method_9ytc6k_saveebookasync_byte
    file_1dbwiwx_program_cs -->|contains| method_k4xtk2_saveebookasync_stream
    file_1dbwiwx_program_cs -->|contains| method_s3i4fd_findauthorbynameasync
    file_1dbwiwx_program_cs -->|contains| method_swctk_getservice
    file_1dbwiwx_program_cs -->|contains| method_ulf8of_addauthor
    file_1dbwiwx_program_cs -->|contains| method_v3kul8_addebook
    file_1dbwiwx_program_cs -->|contains| method_x4i3zt_generateasync
    file_1dbwiwx_program_cs -->|contains| method_yo2gbi_broadcastingestionprogressasync
    file_1dbwiwx_program_cs -->|unresolved interaction| unresolved_unresolved_1c1y3m5_interaction_target
    file_1dbwiwx_program_cs -->|unresolved interaction| unresolved_unresolved_1c1y3m5_interaction_target
    file_1dbwiwx_program_cs -->|unresolved interaction| unresolved_unresolved_1c1y3m5_interaction_target
    file_1dbwiwx_program_cs -->|unresolved interaction| unresolved_unresolved_1c1y3m5_interaction_target
    method_1c802h4_program_top_level -->|unresolved call| unresolved_unresolved_16fktdf_call_target
    method_1c802h4_program_top_level -->|unresolved call| unresolved_unresolved_185ga2x_call_target
    method_1c802h4_program_top_level -->|unresolved call| unresolved_unresolved_1cadlie_call_target
    method_1c802h4_program_top_level -->|unresolved call| unresolved_unresolved_1i197q2_call_target
    method_1c802h4_program_top_level -->|unresolved call| unresolved_unresolved_1ijl9jf_call_target
    method_1c802h4_program_top_level -->|unresolved call| unresolved_unresolved_1xv9ime_call_target
    method_1c802h4_program_top_level -->|unresolved call| unresolved_unresolved_d2qhgm_call_target
    method_1c802h4_program_top_level -->|unresolved call| unresolved_unresolved_h9xqg7_call_target
    method_1c802h4_program_top_level -->|unresolved call| unresolved_unresolved_igkgco_call_target
```

### Program (top-level)() Control Flow

_Warnings: diagram method_1c802h4_program_top_level__fragment_diagram exceeds preferred complexity thresholds (20 nodes, 19 edges)._

```mermaid
---
config:
  flowchart:
    defaultRenderer: "elk"
---
flowchart TD
    method_1c802h4_program_top_level__call_15_WebAssemblyHostBuilder_CreateDefault[["WebAssemblyHostBuilder.CreateDefault"]]
    method_1c802h4_program_top_level__call_49_ThrowingDbContextFactory_ctor[["ThrowingDbContextFactory..ctor"]]
    method_1c802h4_program_top_level__call_50_ThrowingEmbeddingGenerator_ctor[["ThrowingEmbeddingGenerator..ctor"]]
    method_1c802h4_program_top_level__call_51_ThrowingBookStorageService_ctor[["ThrowingBookStorageService..ctor"]]
    method_1c802h4_program_top_level__call_52_ThrowingEbookRepository_ctor[["ThrowingEbookRepository..ctor"]]
    method_1c802h4_program_top_level__call_53_ThrowingSyncBroadcaster_ctor[["ThrowingSyncBroadcaster..ctor"]]
    method_1c802h4_program_top_level__call_55_ServiceCollectionExtensions_AddApplication[["ServiceCollectionExtensions.AddApplication"]]
    method_1c802h4_program_top_level__call_59_WebAssemblyHost_RunAsync[["WebAssemblyHost.RunAsync"]]
    method_1c802h4_program_top_level__call_59_WebAssemblyHostBuilder_Build[["WebAssemblyHostBuilder.Build"]]
    method_1c802h4_program_top_level__action_17_service_registration_17__linear("Platform & UI registrations")
    method_1c802h4_program_top_level__action_29_service_registration_29__linear("Identity & Auth registrations")
    method_1c802h4_program_top_level__action_37_service_registration_37__linear("AI & content")
    method_1c802h4_program_top_level__action_40_service_registration_40__linear("Http client setup")
    method_1c802h4_program_top_level__action_48_service_registration_48__linear("Server-only dummy stubs")
    method_1c802h4_program_top_level__action_55_service_registration_55__linear("Application layer wiring")
    method_1c802h4_program_top_level__action_56_service_registration_56__linear("WASM-only EPUB readers")
    method_1c802h4_program_top_level__action_59_program_top_level_await_59_0__await[["Waits for async work"]]
    method_1c802h4_program_top_level__action_59_startup_run_59__linear("Start host")
    method_1c802h4_program_top_level__entry(["Program (top-level) entry"])
    method_1c802h4_program_top_level__implicit_return(["return"])
    method_1c802h4_program_top_level__action_17_service_registration_17__linear -->|next| method_1c802h4_program_top_level__action_29_service_registration_29__linear
    method_1c802h4_program_top_level__action_29_service_registration_29__linear -->|next| method_1c802h4_program_top_level__action_37_service_registration_37__linear
    method_1c802h4_program_top_level__action_37_service_registration_37__linear -->|next| method_1c802h4_program_top_level__action_40_service_registration_40__linear
    method_1c802h4_program_top_level__action_40_service_registration_40__linear -->|next| method_1c802h4_program_top_level__action_48_service_registration_48__linear
    method_1c802h4_program_top_level__action_48_service_registration_48__linear -->|instance registered as IDbContextFactory AppDbContext>| method_1c802h4_program_top_level__call_49_ThrowingDbContextFactory_ctor
    method_1c802h4_program_top_level__action_55_service_registration_55__linear -->|IServiceCollection extension to register application layer services| method_1c802h4_program_top_level__call_55_ServiceCollectionExtensions_AddApplication
    method_1c802h4_program_top_level__action_56_service_registration_56__linear -->|next| method_1c802h4_program_top_level__action_59_program_top_level_await_59_0__await
    method_1c802h4_program_top_level__action_59_program_top_level_await_59_0__await -->|next| method_1c802h4_program_top_level__action_59_startup_run_59__linear
    method_1c802h4_program_top_level__action_59_startup_run_59__linear -->|build host| method_1c802h4_program_top_level__call_59_WebAssemblyHostBuilder_Build
    method_1c802h4_program_top_level__call_15_WebAssemblyHostBuilder_CreateDefault -->|next| method_1c802h4_program_top_level__action_17_service_registration_17__linear
    method_1c802h4_program_top_level__call_49_ThrowingDbContextFactory_ctor -->|instance registered as IEmbeddingGenerator string,Embedding float>>| method_1c802h4_program_top_level__call_50_ThrowingEmbeddingGenerator_ctor
    method_1c802h4_program_top_level__call_50_ThrowingEmbeddingGenerator_ctor -->|instance registered as IBookStorageService| method_1c802h4_program_top_level__call_51_ThrowingBookStorageService_ctor
    method_1c802h4_program_top_level__call_51_ThrowingBookStorageService_ctor -->|instance registered as IEbookRepository| method_1c802h4_program_top_level__call_52_ThrowingEbookRepository_ctor
    method_1c802h4_program_top_level__call_52_ThrowingEbookRepository_ctor -->|instance registered as ISyncBroadcaster| method_1c802h4_program_top_level__call_53_ThrowingSyncBroadcaster_ctor
    method_1c802h4_program_top_level__call_53_ThrowingSyncBroadcaster_ctor -->|next| method_1c802h4_program_top_level__action_55_service_registration_55__linear
    method_1c802h4_program_top_level__call_55_ServiceCollectionExtensions_AddApplication -->|next| method_1c802h4_program_top_level__action_56_service_registration_56__linear
    method_1c802h4_program_top_level__call_59_WebAssemblyHost_RunAsync -->|return| method_1c802h4_program_top_level__implicit_return
    method_1c802h4_program_top_level__call_59_WebAssemblyHostBuilder_Build -->|run the WASM host| method_1c802h4_program_top_level__call_59_WebAssemblyHost_RunAsync
    method_1c802h4_program_top_level__entry -->|args from top-level| method_1c802h4_program_top_level__call_15_WebAssemblyHostBuilder_CreateDefault
```

### CreateDbContext() Control Flow

```mermaid
flowchart TD
    method_9hjjot_createdbcontext__action_63_createdbcontext_throw_63_0__throw{"Throws exception"}
    method_9hjjot_createdbcontext__action_63_throw_63__throw{"Throws NotSupportedException to block DbContext usage in WASM"}
    method_9hjjot_createdbcontext__entry(["CreateDbContext entry"])
    method_9hjjot_createdbcontext__action_63_throw_63__throw -->|exception| method_9hjjot_createdbcontext__action_63_createdbcontext_throw_63_0__throw
    method_9hjjot_createdbcontext__entry -->|exception| method_9hjjot_createdbcontext__action_63_throw_63__throw
```

### GenerateAsync() Control Flow

```mermaid
flowchart TD
    method_x4i3zt_generateasync__action_70_generateasync_throw_70_0__throw{"Throws exception"}
    method_x4i3zt_generateasync__action_70_throw_70__throw{"Throws NotSupportedException to block embedding generation in WASM"}
    method_x4i3zt_generateasync__entry(["GenerateAsync entry"])
    method_x4i3zt_generateasync__action_70_throw_70__throw -->|exception| method_x4i3zt_generateasync__action_70_generateasync_throw_70_0__throw
    method_x4i3zt_generateasync__entry -->|exception| method_x4i3zt_generateasync__action_70_throw_70__throw
```

### SaveEbookAsync (byte[])() Control Flow

```mermaid
flowchart TD
    method_9ytc6k_saveebookasync_byte__action_78_saveebookasync_byte_throw_78_0__throw{"Throws exception"}
    method_9ytc6k_saveebookasync_byte__action_78_throw_78__throw{"Throws NotSupportedException"}
    method_9ytc6k_saveebookasync_byte__action_79_saveebookasync_byte_throw_79_1__throw{"Throws exception"}
    method_9ytc6k_saveebookasync_byte__entry(["SaveEbookAsync (byte[]) entry"])
    method_9ytc6k_saveebookasync_byte__action_78_saveebookasync_byte_throw_78_0__throw -->|exception| method_9ytc6k_saveebookasync_byte__action_79_saveebookasync_byte_throw_79_1__throw
    method_9ytc6k_saveebookasync_byte__action_78_throw_78__throw -->|exception| method_9ytc6k_saveebookasync_byte__action_78_saveebookasync_byte_throw_78_0__throw
    method_9ytc6k_saveebookasync_byte__entry -->|exception| method_9ytc6k_saveebookasync_byte__action_78_throw_78__throw
```

### SaveEbookAsync (Stream)() Control Flow

```mermaid
flowchart TD
    method_k4xtk2_saveebookasync_stream__action_78_saveebookasync_stream_throw_78_0__throw{"Throws exception"}
    method_k4xtk2_saveebookasync_stream__action_79_saveebookasync_stream_throw_79_1__throw{"Throws exception"}
    method_k4xtk2_saveebookasync_stream__action_79_throw_79__throw{"Throws NotSupportedException"}
    method_k4xtk2_saveebookasync_stream__action_80_saveebookasync_stream_throw_80_2__throw{"Throws exception"}
    method_k4xtk2_saveebookasync_stream__entry(["SaveEbookAsync (Stream) entry"])
    method_k4xtk2_saveebookasync_stream__action_78_saveebookasync_stream_throw_78_0__throw -->|exception| method_k4xtk2_saveebookasync_stream__action_79_throw_79__throw
    method_k4xtk2_saveebookasync_stream__action_79_saveebookasync_stream_throw_79_1__throw -->|exception| method_k4xtk2_saveebookasync_stream__action_80_saveebookasync_stream_throw_80_2__throw
    method_k4xtk2_saveebookasync_stream__action_79_throw_79__throw -->|exception| method_k4xtk2_saveebookasync_stream__action_79_saveebookasync_stream_throw_79_1__throw
    method_k4xtk2_saveebookasync_stream__entry -->|exception| method_k4xtk2_saveebookasync_stream__action_78_saveebookasync_stream_throw_78_0__throw
```

### SaveCoverAsync (byte[])() Control Flow

```mermaid
flowchart TD
    method_161c21f_savecoverasync_byte__action_78_savecoverasync_byte_throw_78_0__throw{"Throws exception"}
    method_161c21f_savecoverasync_byte__action_79_savecoverasync_byte_throw_79_1__throw{"Throws exception"}
    method_161c21f_savecoverasync_byte__action_80_savecoverasync_byte_throw_80_2__throw{"Throws exception"}
    method_161c21f_savecoverasync_byte__action_80_throw_80__throw{"Throws NotSupportedException"}
    method_161c21f_savecoverasync_byte__action_81_savecoverasync_byte_throw_81_3__throw{"Throws exception"}
    method_161c21f_savecoverasync_byte__entry(["SaveCoverAsync (byte[]) entry"])
    method_161c21f_savecoverasync_byte__action_78_savecoverasync_byte_throw_78_0__throw -->|exception| method_161c21f_savecoverasync_byte__action_79_savecoverasync_byte_throw_79_1__throw
    method_161c21f_savecoverasync_byte__action_79_savecoverasync_byte_throw_79_1__throw -->|exception| method_161c21f_savecoverasync_byte__action_80_throw_80__throw
    method_161c21f_savecoverasync_byte__action_80_savecoverasync_byte_throw_80_2__throw -->|exception| method_161c21f_savecoverasync_byte__action_81_savecoverasync_byte_throw_81_3__throw
    method_161c21f_savecoverasync_byte__action_80_throw_80__throw -->|exception| method_161c21f_savecoverasync_byte__action_80_savecoverasync_byte_throw_80_2__throw
    method_161c21f_savecoverasync_byte__entry -->|exception| method_161c21f_savecoverasync_byte__action_78_savecoverasync_byte_throw_78_0__throw
```

### SaveCoverAsync (Stream)() Control Flow

```mermaid
flowchart TD
    method_1xlrbb1_savecoverasync_stream__action_78_savecoverasync_stream_throw_78_0__throw{"Throws exception"}
    method_1xlrbb1_savecoverasync_stream__action_79_savecoverasync_stream_throw_79_1__throw{"Throws exception"}
    method_1xlrbb1_savecoverasync_stream__action_80_savecoverasync_stream_throw_80_2__throw{"Throws exception"}
    method_1xlrbb1_savecoverasync_stream__action_81_savecoverasync_stream_throw_81_3__throw{"Throws exception"}
    method_1xlrbb1_savecoverasync_stream__action_81_throw_81__throw{"Throws NotSupportedException"}
    method_1xlrbb1_savecoverasync_stream__entry(["SaveCoverAsync (Stream) entry"])
    method_1xlrbb1_savecoverasync_stream__action_78_savecoverasync_stream_throw_78_0__throw -->|exception| method_1xlrbb1_savecoverasync_stream__action_79_savecoverasync_stream_throw_79_1__throw
    method_1xlrbb1_savecoverasync_stream__action_79_savecoverasync_stream_throw_79_1__throw -->|exception| method_1xlrbb1_savecoverasync_stream__action_80_savecoverasync_stream_throw_80_2__throw
    method_1xlrbb1_savecoverasync_stream__action_80_savecoverasync_stream_throw_80_2__throw -->|exception| method_1xlrbb1_savecoverasync_stream__action_81_throw_81__throw
    method_1xlrbb1_savecoverasync_stream__action_81_throw_81__throw -->|exception| method_1xlrbb1_savecoverasync_stream__action_81_savecoverasync_stream_throw_81_3__throw
    method_1xlrbb1_savecoverasync_stream__entry -->|exception| method_1xlrbb1_savecoverasync_stream__action_78_savecoverasync_stream_throw_78_0__throw
```

### FindAuthorByNameAsync() Control Flow

```mermaid
flowchart TD
    method_s3i4fd_findauthorbynameasync__action_88_findauthorbynameasync_throw_88_1__throw{"Throws exception"}
    method_s3i4fd_findauthorbynameasync__action_88_throw_88__throw{"Throws NotSupportedException"}
    method_s3i4fd_findauthorbynameasync__action_89_findauthorbynameasync_throw_89_2__throw{"Throws exception"}
    method_s3i4fd_findauthorbynameasync__entry(["FindAuthorByNameAsync entry"])
    method_s3i4fd_findauthorbynameasync__action_88_findauthorbynameasync_repository_read_88_0__linear[("Reads repository or persistence state")]
    method_s3i4fd_findauthorbynameasync__action_88_findauthorbynameasync_repository_read_88_0__linear -->|exception| method_s3i4fd_findauthorbynameasync__action_89_findauthorbynameasync_throw_89_2__throw
    method_s3i4fd_findauthorbynameasync__action_88_findauthorbynameasync_throw_88_1__throw -->|next| method_s3i4fd_findauthorbynameasync__action_88_findauthorbynameasync_repository_read_88_0__linear
    method_s3i4fd_findauthorbynameasync__action_88_throw_88__throw -->|exception| method_s3i4fd_findauthorbynameasync__action_88_findauthorbynameasync_throw_88_1__throw
    method_s3i4fd_findauthorbynameasync__entry -->|exception| method_s3i4fd_findauthorbynameasync__action_88_throw_88__throw
```

### AddAuthor() Control Flow

```mermaid
flowchart TD
    method_ulf8of_addauthor__action_88_addauthor_throw_88_1__throw{"Throws exception"}
    method_ulf8of_addauthor__action_89_addauthor_throw_89_2__throw{"Throws exception"}
    method_ulf8of_addauthor__action_89_throw_89__throw{"Throws NotSupportedException"}
    method_ulf8of_addauthor__action_90_addauthor_throw_90_3__throw{"Throws exception"}
    method_ulf8of_addauthor__entry(["AddAuthor entry"])
    method_ulf8of_addauthor__action_88_addauthor_repository_read_88_0__linear[("Reads repository or persistence state")]
    method_ulf8of_addauthor__action_88_addauthor_repository_read_88_0__linear -->|exception| method_ulf8of_addauthor__action_89_throw_89__throw
    method_ulf8of_addauthor__action_88_addauthor_throw_88_1__throw -->|next| method_ulf8of_addauthor__action_88_addauthor_repository_read_88_0__linear
    method_ulf8of_addauthor__action_89_addauthor_throw_89_2__throw -->|exception| method_ulf8of_addauthor__action_90_addauthor_throw_90_3__throw
    method_ulf8of_addauthor__action_89_throw_89__throw -->|exception| method_ulf8of_addauthor__action_89_addauthor_throw_89_2__throw
    method_ulf8of_addauthor__entry -->|exception| method_ulf8of_addauthor__action_88_addauthor_throw_88_1__throw
```

### AddEbook() Control Flow

```mermaid
flowchart TD
    method_v3kul8_addebook__action_88_addebook_throw_88_1__throw{"Throws exception"}
    method_v3kul8_addebook__action_89_addebook_throw_89_2__throw{"Throws exception"}
    method_v3kul8_addebook__action_90_addebook_throw_90_3__throw{"Throws exception"}
    method_v3kul8_addebook__action_90_throw_90__throw{"Throws NotSupportedException"}
    method_v3kul8_addebook__action_91_addebook_throw_91_4__throw{"Throws exception"}
    method_v3kul8_addebook__entry(["AddEbook entry"])
    method_v3kul8_addebook__action_88_addebook_repository_read_88_0__linear[("Reads repository or persistence state")]
    method_v3kul8_addebook__action_88_addebook_repository_read_88_0__linear -->|exception| method_v3kul8_addebook__action_89_addebook_throw_89_2__throw
    method_v3kul8_addebook__action_88_addebook_throw_88_1__throw -->|next| method_v3kul8_addebook__action_88_addebook_repository_read_88_0__linear
    method_v3kul8_addebook__action_89_addebook_throw_89_2__throw -->|exception| method_v3kul8_addebook__action_90_throw_90__throw
    method_v3kul8_addebook__action_90_addebook_throw_90_3__throw -->|exception| method_v3kul8_addebook__action_91_addebook_throw_91_4__throw
    method_v3kul8_addebook__action_90_throw_90__throw -->|exception| method_v3kul8_addebook__action_90_addebook_throw_90_3__throw
    method_v3kul8_addebook__entry -->|exception| method_v3kul8_addebook__action_88_addebook_throw_88_1__throw
```

### SaveChangesAsync() Control Flow

```mermaid
flowchart TD
    method_1wp2z4z_savechangesasync__action_88_savechangesasync_throw_88_1__throw{"Throws exception"}
    method_1wp2z4z_savechangesasync__action_89_savechangesasync_throw_89_2__throw{"Throws exception"}
    method_1wp2z4z_savechangesasync__action_90_savechangesasync_throw_90_3__throw{"Throws exception"}
    method_1wp2z4z_savechangesasync__action_91_savechangesasync_throw_91_4__throw{"Throws exception"}
    method_1wp2z4z_savechangesasync__action_91_throw_91__throw{"Throws NotSupportedException"}
    method_1wp2z4z_savechangesasync__entry(["SaveChangesAsync entry"])
    method_1wp2z4z_savechangesasync__action_88_savechangesasync_repository_read_88_0__linear[("Reads repository or persistence state")]
    method_1wp2z4z_savechangesasync__action_88_savechangesasync_repository_read_88_0__linear -->|exception| method_1wp2z4z_savechangesasync__action_89_savechangesasync_throw_89_2__throw
    method_1wp2z4z_savechangesasync__action_88_savechangesasync_throw_88_1__throw -->|next| method_1wp2z4z_savechangesasync__action_88_savechangesasync_repository_read_88_0__linear
    method_1wp2z4z_savechangesasync__action_89_savechangesasync_throw_89_2__throw -->|exception| method_1wp2z4z_savechangesasync__action_90_savechangesasync_throw_90_3__throw
    method_1wp2z4z_savechangesasync__action_90_savechangesasync_throw_90_3__throw -->|exception| method_1wp2z4z_savechangesasync__action_91_throw_91__throw
    method_1wp2z4z_savechangesasync__action_91_throw_91__throw -->|exception| method_1wp2z4z_savechangesasync__action_91_savechangesasync_throw_91_4__throw
    method_1wp2z4z_savechangesasync__entry -->|exception| method_1wp2z4z_savechangesasync__action_88_savechangesasync_throw_88_1__throw
```

### BroadcastProgressAsync() Control Flow

```mermaid
flowchart TD
    method_11t39ko_broadcastprogressasync__action_96_throw_96__throw{"Throws NotSupportedException"}
    method_11t39ko_broadcastprogressasync__action_97_broadcastprogressasync_throw_97_0__throw{"Throws exception"}
    method_11t39ko_broadcastprogressasync__entry(["BroadcastProgressAsync entry"])
    method_11t39ko_broadcastprogressasync__action_96_throw_96__throw -->|exception| method_11t39ko_broadcastprogressasync__action_97_broadcastprogressasync_throw_97_0__throw
    method_11t39ko_broadcastprogressasync__entry -->|exception| method_11t39ko_broadcastprogressasync__action_96_throw_96__throw
```

### BroadcastIngestionProgressAsync() Control Flow

```mermaid
flowchart TD
    method_yo2gbi_broadcastingestionprogressasync__action_100_broadcastingestionprogressasync_throw_100_1__throw{"Throws exception"}
    method_yo2gbi_broadcastingestionprogressasync__action_97_broadcastingestionprogressasync_throw_97_0__throw{"Throws exception"}
    method_yo2gbi_broadcastingestionprogressasync__action_99_throw_99__throw{"Throws NotSupportedException"}
    method_yo2gbi_broadcastingestionprogressasync__entry(["BroadcastIngestionProgressAsync entry"])
    method_yo2gbi_broadcastingestionprogressasync__action_97_broadcastingestionprogressasync_throw_97_0__throw -->|exception| method_yo2gbi_broadcastingestionprogressasync__action_99_throw_99__throw
    method_yo2gbi_broadcastingestionprogressasync__action_99_throw_99__throw -->|exception| method_yo2gbi_broadcastingestionprogressasync__action_100_broadcastingestionprogressasync_throw_100_1__throw
    method_yo2gbi_broadcastingestionprogressasync__entry -->|exception| method_yo2gbi_broadcastingestionprogressasync__action_97_broadcastingestionprogressasync_throw_97_0__throw
```

## Diagram Validation

- Status: warn
- Warning: Control-flow extraction left 9 unresolved jumps.
- Warning: neighborhood-view: diagram file_1dbwiwx_program_cs_neighborhood_view exceeds preferred complexity thresholds (21 nodes, 0 edges).
- Warning: execution-overview: diagram file_1dbwiwx_program_cs_execution_view exceeds preferred complexity thresholds (26 nodes, 28 edges).
- Warning: control-flow: diagram method_1c802h4_program_top_level__fragment_diagram exceeds preferred complexity thresholds (20 nodes, 19 edges).
