[
  {
    "fragmentId": "method:1t48k4l:getuserprofilequeryhandler__fragment",
    "ownerFileId": "file:4pj82p:getuserprofilequeryhandler-cs",
    "ownerSymbolId": "method:1t48k4l:getuserprofilequeryhandler",
    "ownerSymbolName": "GetUserProfileQueryHandler",
    "entryNodeId": "method:1t48k4l:getuserprofilequeryhandler__entry",
    "exitNodeIds": [
      "method:1t48k4l:getuserprofilequeryhandler__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:1t48k4l:getuserprofilequeryhandler__entry",
        "kind": "entry",
        "label": "GetUserProfileQueryHandler entry",
        "line": 13,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.99,
        "detail": "Constructor that captures the IDbContextFactory dependency."
      },
      {
        "id": "method:1t48k4l:getuserprofilequeryhandler__action_15_assignment_15__linear",
        "kind": "statement",
        "label": "Stores dbContextFactory",
        "line": 15,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "_dbContextFactory = dbContextFactory"
      },
      {
        "id": "method:1t48k4l:getuserprofilequeryhandler__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 16,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:1t48k4l:getuserprofilequeryhandler__entry__method:1t48k4l:getuserprofilequeryhandler__action_15_assignment_15__linear",
        "from": "method:1t48k4l:getuserprofilequeryhandler__entry",
        "to": "method:1t48k4l:getuserprofilequeryhandler__action_15_assignment_15__linear",
        "kind": "next",
        "line": 15,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1t48k4l:getuserprofilequeryhandler__action_15_assignment_15__linear__implicit_return",
        "from": "method:1t48k4l:getuserprofilequeryhandler__action_15_assignment_15__linear",
        "to": "method:1t48k4l:getuserprofilequeryhandler__implicit_return",
        "kind": "return",
        "line": 16,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 13,
      "end": 16
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "line": 13,
        "summary": "Control-flow fragment extracted for method GetUserProfileQueryHandler.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:16gxcfa:handle__fragment",
    "ownerFileId": "file:4pj82p:getuserprofilequeryhandler-cs",
    "ownerSymbolId": "method:16gxcfa:handle",
    "ownerSymbolName": "Handle",
    "entryNodeId": "method:16gxcfa:handle__entry",
    "exitNodeIds": [
      "method:16gxcfa:handle__action_62_handle_return_62_9__return",
      "method:16gxcfa:handle__action_65_handle_return_65_10__return",
      "method:16gxcfa:handle__action_65_return_65__return"
    ],
    "nodes": [
      {
        "id": "method:16gxcfa:handle__entry",
        "kind": "entry",
        "label": "Handle entry",
        "line": 18,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.99,
        "detail": "Loads a single user's profile from the database, maps nested DTOs (plan, last read book, roles, quiz score) and returns Result.Ok(profile) or Result.Fail when not found."
      },
      {
        "id": "method:16gxcfa:handle__action_20_handle_await_20_0__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 20,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.81,
        "detail": "using var dbContext = await _dbContextFactory.CreateDbContextAsync(cancellationToken);"
      },
      {
        "id": "method:16gxcfa:handle__action_20_resource_acquisition_20__linear",
        "kind": "statement",
        "label": "Create DbContext",
        "line": 20,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "using var dbContext = await _dbContextFactory.CreateDbContextAsync(cancellationToken)"
      },
      {
        "id": "method:16gxcfa:handle__action_21_handle_await_21_1__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 21,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.81,
        "detail": "var profile = await dbContext.Users"
      },
      {
        "id": "method:16gxcfa:handle__action_21_db_read_21__linear",
        "kind": "statement",
        "label": "Query Users and project into UserProfileDto",
        "line": 21,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "Single query with Select projection mapping many nested properties and navigation collections"
      },
      {
        "id": "method:16gxcfa:handle__call_21_AppDbContext_Users_DbSet_",
        "kind": "call",
        "label": "AppDbContext.Users (DbSet)",
        "line": 21,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.88,
        "detail": "LINQ: filter u.Id == request.UserId; projection into UserProfileDto"
      },
      {
        "id": "method:16gxcfa:handle__action_22_handle_repository_read_22_2__linear",
        "kind": "db-read",
        "label": "Reads repository or persistence state",
        "line": 22,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.86,
        "detail": ".Where(u => u.Id == request.UserId)"
      },
      {
        "id": "method:16gxcfa:handle__action_23_handle_mapping_23_3__linear",
        "kind": "statement",
        "label": "Maps data or transforms shape",
        "line": 23,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.74,
        "detail": ".Select(u => new UserProfileDto"
      },
      {
        "id": "method:16gxcfa:handle__action_23_projection_23__linear",
        "kind": "statement",
        "label": "Map primitive fields and nested DTOs",
        "line": 23,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "Maps Email, AITokensUsed, Plan (SubscriptionPlanDto), LastReadBook (LastReadBookDto), Roles array, AverageQuizScore"
      },
      {
        "id": "method:16gxcfa:handle__action_27_branch_fallback_27__linear",
        "kind": "statement",
        "label": "TenantId parse with fallback",
        "line": 27,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "Parses TenantId string to Guid when length==36, otherwise Guid.Empty"
      },
      {
        "id": "method:16gxcfa:handle__action_28_branch_fallback_28__linear",
        "kind": "statement",
        "label": "Subscription plan projection with fallback",
        "line": 28,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "Maps SubscriptionPlan when present, otherwise returns empty DTO"
      },
      {
        "id": "method:16gxcfa:handle__action_35_conditional_computation_35__linear",
        "kind": "statement",
        "label": "Average quiz score calculation with guard on total questions",
        "line": 35,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "Computes average percentage across quiz results that have TotalQuestions>0, otherwise 0"
      },
      {
        "id": "method:16gxcfa:handle__action_36_handle_repository_read_36_4__linear",
        "kind": "db-read",
        "label": "Reads repository or persistence state",
        "line": 36,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.86,
        "detail": "? (int)u.QuizResults.Where(q => q.TotalQuestions > 0).Average(q => (double)q.Score / q.TotalQuestions * 100)"
      },
      {
        "id": "method:16gxcfa:handle__action_38_collection_selection_38__linear",
        "kind": "statement",
        "label": "Select last read book or null",
        "line": 38,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "Orders Ebooks by LastReadDate descending, projects LastReadBookDto and takes FirstOrDefault"
      },
      {
        "id": "method:16gxcfa:handle__action_38_handle_mapping_38_5__linear",
        "kind": "statement",
        "label": "Maps data or transforms shape",
        "line": 38,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.74,
        "detail": "LastReadBook = u.Ebooks.OrderByDescending(e => e.LastReadDate).Select(e => new LastReadBookDto"
      },
      {
        "id": "method:16gxcfa:handle__action_52_handle_repository_read_52_6__linear",
        "kind": "db-read",
        "label": "Reads repository or persistence state",
        "line": 52,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.86,
        "detail": "}).FirstOrDefault(),"
      },
      {
        "id": "method:16gxcfa:handle__action_53_join_53__linear",
        "kind": "statement",
        "label": "Build roles array via join",
        "line": 53,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "Filters UserRoles by user id, joins with Roles to select role names and converts to array"
      },
      {
        "id": "method:16gxcfa:handle__call_53_AppDbContext_UserRoles_DbSet_",
        "kind": "call",
        "label": "AppDbContext.UserRoles (DbSet)",
        "line": 53,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.88,
        "detail": "Used to filter roles by ur.UserId == u.Id and join with Roles"
      },
      {
        "id": "method:16gxcfa:handle__action_54_handle_repository_read_54_7__linear",
        "kind": "db-read",
        "label": "Reads repository or persistence state",
        "line": 54,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.86,
        "detail": ".Where(ur => ur.UserId == u.Id)"
      },
      {
        "id": "method:16gxcfa:handle__call_55_AppDbContext_Roles_DbSet_",
        "kind": "call",
        "label": "AppDbContext.Roles (DbSet)",
        "line": 55,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.88,
        "detail": "Joined with UserRoles to select role names"
      },
      {
        "id": "method:16gxcfa:handle__action_60_guard_clause_60__condition",
        "kind": "condition",
        "label": "profile == null",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "If query yields null, returns a failing FluentResults Result"
      },
      {
        "id": "method:16gxcfa:handle__action_60_guard_clause_60__true",
        "kind": "branch-true",
        "label": "Result.Fail(\"Profile not found.\")",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_60_guard_clause_60__false",
        "kind": "branch-false",
        "label": "continue",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_60_guard_clause_60__merge",
        "kind": "statement",
        "label": "merge",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_60_handle_branch_60_8__condition",
        "kind": "condition",
        "label": "profile == null",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.78,
        "detail": "if (profile == null)"
      },
      {
        "id": "method:16gxcfa:handle__action_60_handle_branch_60_8__true",
        "kind": "branch-true",
        "label": "true",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.78
      },
      {
        "id": "method:16gxcfa:handle__action_60_handle_branch_60_8__false",
        "kind": "branch-false",
        "label": "false",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.78
      },
      {
        "id": "method:16gxcfa:handle__action_60_handle_branch_60_8__merge",
        "kind": "statement",
        "label": "merge",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.78
      },
      {
        "id": "method:16gxcfa:handle__action_62_handle_return_62_9__return",
        "kind": "return",
        "label": "Returns result",
        "line": 62,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "return Result.Fail(\"Profile not found.\");"
      },
      {
        "id": "method:16gxcfa:handle__action_65_handle_return_65_10__return",
        "kind": "return",
        "label": "Returns result",
        "line": 65,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "return Result.Ok(profile);"
      },
      {
        "id": "method:16gxcfa:handle__action_65_return_65__return",
        "kind": "return",
        "label": "Return successful result",
        "line": 65,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7,
        "detail": "Result.Ok(profile)"
      }
    ],
    "edges": [
      {
        "id": "method:16gxcfa:handle__entry__method:16gxcfa:handle__action_20_handle_await_20_0__await",
        "from": "method:16gxcfa:handle__entry",
        "to": "method:16gxcfa:handle__action_20_handle_await_20_0__await",
        "kind": "next",
        "line": 20,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.81
      },
      {
        "id": "method:16gxcfa:handle__action_20_handle_await_20_0__await__method:16gxcfa:handle__action_20_resource_acquisition_20__linear",
        "from": "method:16gxcfa:handle__action_20_handle_await_20_0__await",
        "to": "method:16gxcfa:handle__action_20_resource_acquisition_20__linear",
        "kind": "next",
        "line": 20,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_20_resource_acquisition_20__linear__method:16gxcfa:handle__action_21_handle_await_21_1__await",
        "from": "method:16gxcfa:handle__action_20_resource_acquisition_20__linear",
        "to": "method:16gxcfa:handle__action_21_handle_await_21_1__await",
        "kind": "next",
        "line": 21,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.81
      },
      {
        "id": "method:16gxcfa:handle__action_21_handle_await_21_1__await__method:16gxcfa:handle__action_21_db_read_21__linear",
        "from": "method:16gxcfa:handle__action_21_handle_await_21_1__await",
        "to": "method:16gxcfa:handle__action_21_db_read_21__linear",
        "kind": "next",
        "line": 21,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_21_db_read_21__linear__call_method:16gxcfa:handle__call_21_AppDbContext_Users_DbSet_",
        "from": "method:16gxcfa:handle__action_21_db_read_21__linear",
        "to": "method:16gxcfa:handle__call_21_AppDbContext_Users_DbSet_",
        "kind": "call",
        "label": "LINQ: filter u.Id == request.UserId; projection into UserProfileDto",
        "line": 21,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.88
      },
      {
        "id": "method:16gxcfa:handle__call_21_AppDbContext_Users_DbSet___method:16gxcfa:handle__action_22_handle_repository_read_22_2__linear",
        "from": "method:16gxcfa:handle__call_21_AppDbContext_Users_DbSet_",
        "to": "method:16gxcfa:handle__action_22_handle_repository_read_22_2__linear",
        "kind": "next",
        "line": 22,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.86
      },
      {
        "id": "method:16gxcfa:handle__action_22_handle_repository_read_22_2__linear__method:16gxcfa:handle__action_23_handle_mapping_23_3__linear",
        "from": "method:16gxcfa:handle__action_22_handle_repository_read_22_2__linear",
        "to": "method:16gxcfa:handle__action_23_handle_mapping_23_3__linear",
        "kind": "next",
        "line": 23,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.74
      },
      {
        "id": "method:16gxcfa:handle__action_23_handle_mapping_23_3__linear__method:16gxcfa:handle__action_23_projection_23__linear",
        "from": "method:16gxcfa:handle__action_23_handle_mapping_23_3__linear",
        "to": "method:16gxcfa:handle__action_23_projection_23__linear",
        "kind": "next",
        "line": 23,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_23_projection_23__linear__method:16gxcfa:handle__action_27_branch_fallback_27__linear",
        "from": "method:16gxcfa:handle__action_23_projection_23__linear",
        "to": "method:16gxcfa:handle__action_27_branch_fallback_27__linear",
        "kind": "next",
        "line": 27,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_27_branch_fallback_27__linear__method:16gxcfa:handle__action_28_branch_fallback_28__linear",
        "from": "method:16gxcfa:handle__action_27_branch_fallback_27__linear",
        "to": "method:16gxcfa:handle__action_28_branch_fallback_28__linear",
        "kind": "next",
        "line": 28,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_28_branch_fallback_28__linear__method:16gxcfa:handle__action_35_conditional_computation_35__linear",
        "from": "method:16gxcfa:handle__action_28_branch_fallback_28__linear",
        "to": "method:16gxcfa:handle__action_35_conditional_computation_35__linear",
        "kind": "next",
        "line": 35,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_35_conditional_computation_35__linear__method:16gxcfa:handle__action_36_handle_repository_read_36_4__linear",
        "from": "method:16gxcfa:handle__action_35_conditional_computation_35__linear",
        "to": "method:16gxcfa:handle__action_36_handle_repository_read_36_4__linear",
        "kind": "next",
        "line": 36,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.86
      },
      {
        "id": "method:16gxcfa:handle__action_36_handle_repository_read_36_4__linear__method:16gxcfa:handle__action_38_collection_selection_38__linear",
        "from": "method:16gxcfa:handle__action_36_handle_repository_read_36_4__linear",
        "to": "method:16gxcfa:handle__action_38_collection_selection_38__linear",
        "kind": "next",
        "line": 38,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_38_collection_selection_38__linear__method:16gxcfa:handle__action_38_handle_mapping_38_5__linear",
        "from": "method:16gxcfa:handle__action_38_collection_selection_38__linear",
        "to": "method:16gxcfa:handle__action_38_handle_mapping_38_5__linear",
        "kind": "next",
        "line": 38,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.74
      },
      {
        "id": "method:16gxcfa:handle__action_38_handle_mapping_38_5__linear__method:16gxcfa:handle__action_52_handle_repository_read_52_6__linear",
        "from": "method:16gxcfa:handle__action_38_handle_mapping_38_5__linear",
        "to": "method:16gxcfa:handle__action_52_handle_repository_read_52_6__linear",
        "kind": "next",
        "line": 52,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.86
      },
      {
        "id": "method:16gxcfa:handle__action_52_handle_repository_read_52_6__linear__method:16gxcfa:handle__action_53_join_53__linear",
        "from": "method:16gxcfa:handle__action_52_handle_repository_read_52_6__linear",
        "to": "method:16gxcfa:handle__action_53_join_53__linear",
        "kind": "next",
        "line": 53,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_53_join_53__linear__call_method:16gxcfa:handle__call_53_AppDbContext_UserRoles_DbSet_",
        "from": "method:16gxcfa:handle__action_53_join_53__linear",
        "to": "method:16gxcfa:handle__call_53_AppDbContext_UserRoles_DbSet_",
        "kind": "call",
        "label": "Used to filter roles by ur.UserId == u.Id and join with Roles",
        "line": 53,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.88
      },
      {
        "id": "method:16gxcfa:handle__call_53_AppDbContext_UserRoles_DbSet___method:16gxcfa:handle__action_54_handle_repository_read_54_7__linear",
        "from": "method:16gxcfa:handle__call_53_AppDbContext_UserRoles_DbSet_",
        "to": "method:16gxcfa:handle__action_54_handle_repository_read_54_7__linear",
        "kind": "next",
        "line": 54,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.86
      },
      {
        "id": "method:16gxcfa:handle__action_54_handle_repository_read_54_7__linear__call_method:16gxcfa:handle__call_55_AppDbContext_Roles_DbSet_",
        "from": "method:16gxcfa:handle__action_54_handle_repository_read_54_7__linear",
        "to": "method:16gxcfa:handle__call_55_AppDbContext_Roles_DbSet_",
        "kind": "call",
        "label": "Joined with UserRoles to select role names",
        "line": 55,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.88
      },
      {
        "id": "method:16gxcfa:handle__call_55_AppDbContext_Roles_DbSet___method:16gxcfa:handle__action_60_guard_clause_60__condition",
        "from": "method:16gxcfa:handle__call_55_AppDbContext_Roles_DbSet_",
        "to": "method:16gxcfa:handle__action_60_guard_clause_60__condition",
        "kind": "next",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_60_guard_clause_60__condition__method:16gxcfa:handle__action_60_guard_clause_60__true",
        "from": "method:16gxcfa:handle__action_60_guard_clause_60__condition",
        "to": "method:16gxcfa:handle__action_60_guard_clause_60__true",
        "kind": "condition-true",
        "label": "Result.Fail(\"Profile not found.\")",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_60_guard_clause_60__condition__method:16gxcfa:handle__action_60_guard_clause_60__false",
        "from": "method:16gxcfa:handle__action_60_guard_clause_60__condition",
        "to": "method:16gxcfa:handle__action_60_guard_clause_60__false",
        "kind": "condition-false",
        "label": "continue",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_60_guard_clause_60__true__method:16gxcfa:handle__action_60_guard_clause_60__merge",
        "from": "method:16gxcfa:handle__action_60_guard_clause_60__true",
        "to": "method:16gxcfa:handle__action_60_guard_clause_60__merge",
        "kind": "next",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_60_guard_clause_60__false__method:16gxcfa:handle__action_60_guard_clause_60__merge",
        "from": "method:16gxcfa:handle__action_60_guard_clause_60__false",
        "to": "method:16gxcfa:handle__action_60_guard_clause_60__merge",
        "kind": "next",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_60_guard_clause_60__merge__method:16gxcfa:handle__action_60_handle_branch_60_8__condition",
        "from": "method:16gxcfa:handle__action_60_guard_clause_60__merge",
        "to": "method:16gxcfa:handle__action_60_handle_branch_60_8__condition",
        "kind": "next",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.78
      },
      {
        "id": "method:16gxcfa:handle__action_60_handle_branch_60_8__condition__method:16gxcfa:handle__action_60_handle_branch_60_8__true",
        "from": "method:16gxcfa:handle__action_60_handle_branch_60_8__condition",
        "to": "method:16gxcfa:handle__action_60_handle_branch_60_8__true",
        "kind": "condition-true",
        "label": "true",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.78
      },
      {
        "id": "method:16gxcfa:handle__action_60_handle_branch_60_8__condition__method:16gxcfa:handle__action_60_handle_branch_60_8__false",
        "from": "method:16gxcfa:handle__action_60_handle_branch_60_8__condition",
        "to": "method:16gxcfa:handle__action_60_handle_branch_60_8__false",
        "kind": "condition-false",
        "label": "false",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.78
      },
      {
        "id": "method:16gxcfa:handle__action_60_handle_branch_60_8__true__method:16gxcfa:handle__action_60_handle_branch_60_8__merge",
        "from": "method:16gxcfa:handle__action_60_handle_branch_60_8__true",
        "to": "method:16gxcfa:handle__action_60_handle_branch_60_8__merge",
        "kind": "next",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.78
      },
      {
        "id": "method:16gxcfa:handle__action_60_handle_branch_60_8__false__method:16gxcfa:handle__action_60_handle_branch_60_8__merge",
        "from": "method:16gxcfa:handle__action_60_handle_branch_60_8__false",
        "to": "method:16gxcfa:handle__action_60_handle_branch_60_8__merge",
        "kind": "next",
        "line": 60,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.78
      },
      {
        "id": "method:16gxcfa:handle__action_60_handle_branch_60_8__merge__method:16gxcfa:handle__action_62_handle_return_62_9__return",
        "from": "method:16gxcfa:handle__action_60_handle_branch_60_8__merge",
        "to": "method:16gxcfa:handle__action_62_handle_return_62_9__return",
        "kind": "return",
        "line": 62,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_62_handle_return_62_9__return__method:16gxcfa:handle__action_65_handle_return_65_10__return",
        "from": "method:16gxcfa:handle__action_62_handle_return_62_9__return",
        "to": "method:16gxcfa:handle__action_65_handle_return_65_10__return",
        "kind": "return",
        "line": 65,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      },
      {
        "id": "method:16gxcfa:handle__action_65_handle_return_65_10__return__method:16gxcfa:handle__action_65_return_65__return",
        "from": "method:16gxcfa:handle__action_65_handle_return_65_10__return",
        "to": "method:16gxcfa:handle__action_65_return_65__return",
        "kind": "return",
        "line": 65,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "confidence": 0.7
      }
    ],
    "jumpTargets": [
      {
        "id": "method:16gxcfa:handle__call_21_AppDbContext_Users_DbSet___jump_NexusReader_Data_Persistence_AppDbContext_Users_DbSet_",
        "fromNodeId": "method:16gxcfa:handle__call_21_AppDbContext_Users_DbSet_",
        "kind": "call-target",
        "targetPath": "NexusReader.Data.Persistence",
        "targetHint": "AppDbContext.Users (DbSet)",
        "line": 21,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "reason": "Call target AppDbContext.Users (DbSet) in NexusReader.Data.Persistence could not be matched to an extracted method symbol.",
        "status": "unresolved"
      },
      {
        "id": "method:16gxcfa:handle__call_53_AppDbContext_UserRoles_DbSet___jump_NexusReader_Data_Persistence_AppDbContext_UserRoles_DbSet_",
        "fromNodeId": "method:16gxcfa:handle__call_53_AppDbContext_UserRoles_DbSet_",
        "kind": "call-target",
        "targetPath": "NexusReader.Data.Persistence",
        "targetHint": "AppDbContext.UserRoles (DbSet)",
        "line": 53,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "reason": "Call target AppDbContext.UserRoles (DbSet) in NexusReader.Data.Persistence could not be matched to an extracted method symbol.",
        "status": "unresolved"
      },
      {
        "id": "method:16gxcfa:handle__call_55_AppDbContext_Roles_DbSet___jump_NexusReader_Data_Persistence_AppDbContext_Roles_DbSet_",
        "fromNodeId": "method:16gxcfa:handle__call_55_AppDbContext_Roles_DbSet_",
        "kind": "call-target",
        "targetPath": "NexusReader.Data.Persistence",
        "targetHint": "AppDbContext.Roles (DbSet)",
        "line": 55,
        "sourcePath": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "reason": "Call target AppDbContext.Roles (DbSet) in NexusReader.Data.Persistence could not be matched to an extracted method symbol.",
        "status": "unresolved"
      }
    ],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [
      "method:16gxcfa:handle__action_60_guard_clause_60__merge",
      "method:16gxcfa:handle__action_60_handle_branch_60_8__merge"
    ],
    "language": "csharp",
    "confidence": 0.98,
    "lineSpan": {
      "start": 18,
      "end": 66
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Application/Queries/User/GetUserProfileQueryHandler.cs",
        "line": 18,
        "summary": "Control-flow fragment extracted for method Handle.",
        "kind": "file-summary"
      }
    ]
  }
]