# GetReaderPageQueryHandler

- File ID: file:y077jr:getreaderpagequeryhandler-cs
- Path: NexusReader.Application/Queries/Reader/GetReaderPageQueryHandler.cs
- Role: handler
- Layer: application

## Purpose

Query handler that responds to GetReaderPageQuery by delegating to an IEpubReader to fetch a ReaderPageViewModel for a given ebook/chapter and user.

## Key Details

Very thin handler: no validation, mapping, retries, or logging — it simply delegates to IEpubReader.GetEpubContentAsync and returns its Result<Task<ReaderPageViewModel>>.

## Symbols

- GetReaderPageQueryHandler: Query handler that responds to GetReaderPageQuery by delegating to an IEpubReader to fetch a ReaderPageViewModel for a given ebook/chapter and user.
- Handle(): Handles GetReaderPageQuery by calling the epub reader to fetch the requested page content and returns the Result-wrapped ReaderPageViewModel.
- GetReaderPageQueryHandler: Internal query handler class that coordinates fetching reader page content via IEpubReader.

## Dependencies

- No resolved dependencies.

## Calls

- No resolved calls.

## Unresolved References

- dependency-target: NexusReader.Application.Abstractions.Messaging
- dependency-target: NexusReader.Application.Abstractions.Services
- dependency-target: FluentResults
- call-target: unknown
- interaction-target: _epubReader.GetEpubContentAsync(request.EbookId, request.ChapterIndex, request.UserId, cancellationToken)

## Coverage

- Symbols: 3
- Executable symbols: 1
- Executable symbols with control flow: 1
- Grounded edges: 3
- Unresolved references: 5
- Control-flow fragments: 1
- Unresolved jumps: 1
- Unsupported constructs: 0
- Control-flow coverage: 100%
- Required diagrams: 2
- Generated diagrams: 3

## Control Flow Fragments

- Handle: 6 nodes, 5 edges, 1 jumps, 0 unsupported constructs

## Diagrams

### GetReaderPageQueryHandler Neighborhood

```mermaid
flowchart LR
    class_1lgm7qp_getreaderpagequeryhandler("GetReaderPageQueryHandler")
    file_y077jr_getreaderpagequeryhandler_cs("GetReaderPageQueryHandler")
    method_1al0hre_handle[["Handle()"]]
    type_4pvcwi_getreaderpagequeryhandler[/"GetReaderPageQueryHandler"/]
```

### GetReaderPageQueryHandler Execution Overview

```mermaid
flowchart TD
    class_1lgm7qp_getreaderpagequeryhandler("GetReaderPageQueryHandler")
    method_1al0hre_handle[["Handle()"]]
    unresolved_unresolved_7zd42w_call_target{"Unresolved: GetEpubContentAsync"}
    unresolved_unresolved_nzxkp1_interaction_target{"Unresolved: _epubReader.GetEpubContentAsync(request.EbookId, request.ChapterIndex, request.UserId, cancellationToken)"}
    class_1lgm7qp_getreaderpagequeryhandler -->|contains| method_1al0hre_handle
    class_1lgm7qp_getreaderpagequeryhandler -->|unresolved interaction| unresolved_unresolved_nzxkp1_interaction_target
    method_1al0hre_handle -->|unresolved call| unresolved_unresolved_7zd42w_call_target
```

### Handle() Control Flow

```mermaid
flowchart TD
    method_1al0hre_handle__call_18_GetEpubContentAsync[["GetEpubContentAsync"]]
    method_1al0hre_handle__entry(["Handle entry"])
    method_1al0hre_handle__action_18_external_call_18__linear("Delegate to epub reader")
    method_1al0hre_handle__action_18_handle_return_18_0__return(["Returns result"])
    method_1al0hre_handle__action_18_return_18__return(["Return epub reader result"])
    method_1al0hre_handle__implicit_return(["return"])
    method_1al0hre_handle__action_18_external_call_18__linear -->|request.EbookId, request.ChapterIndex, request.UserId, cancellationToken| method_1al0hre_handle__call_18_GetEpubContentAsync
    method_1al0hre_handle__action_18_handle_return_18_0__return -->|return| method_1al0hre_handle__action_18_return_18__return
    method_1al0hre_handle__action_18_return_18__return -->|next| method_1al0hre_handle__action_18_external_call_18__linear
    method_1al0hre_handle__call_18_GetEpubContentAsync -->|return| method_1al0hre_handle__implicit_return
    method_1al0hre_handle__entry -->|return| method_1al0hre_handle__action_18_handle_return_18_0__return
```

## Diagram Validation

- Status: warn
- Warning: Control-flow extraction left 1 unresolved jumps.
