first iteration#507
Conversation
📝 WalkthroughWalkthroughAdds AlephMapper as the 272nd RSCG example, with a new EF Core demo project, example documentation, and site/catalog entries. The README and related counters are updated to show 272 examples and the 2026-06-29 date. ChangesAlephMapper Example
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR adds a new RSCG example entry for AlephMapper across the repository’s data sources (generator index, website docs/exports, and book HTML), and updates the global counts/latest-update references to reflect the new total.
Changes:
- Add the AlephMapper example project (EF Core + AlephMapper mapping demo) and its accompanying metadata (description, nuget blurb, video steps, code tour).
- Register AlephMapper in the site + search/export artifacts (docs pages, category lists, JSON export, docFind).
- Update repository-wide counts and book inputs/indices to reflect 272 total examples.
Reviewed changes
Copilot reviewed 32 out of 35 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| v2/RSCGExamplesData/GeneratorDataRec.json | Adds AlephMapper to the generator registry data. |
| v2/rscg_examples/AlephMapper/video.json | Adds the scripted video steps for the AlephMapper example. |
| v2/rscg_examples/AlephMapper/src/EntityDemo/Star.cs | Adds EF Core entity model for stars. |
| v2/rscg_examples/AlephMapper/src/EntityDemo/ProjectExtensions.cs | Adds AlephMapper expressive mapping from Project to DTO. |
| v2/rscg_examples/AlephMapper/src/EntityDemo/ProjectDTO.cs | Adds DTO used by the mapping/demo query. |
| v2/rscg_examples/AlephMapper/src/EntityDemo/Project.cs | Adds EF Core entity model for projects. |
| v2/rscg_examples/AlephMapper/src/EntityDemo/Program.cs | Adds demo program that runs EF query with generated projection expression. |
| v2/rscg_examples/AlephMapper/src/EntityDemo/globals.cs | Adds global usings for EF Core and Stats.Database. |
| v2/rscg_examples/AlephMapper/src/EntityDemo/EntityDemo.csproj | Adds the demo project + NuGet references (AlephMapper, EF Core). |
| v2/rscg_examples/AlephMapper/src/EntityDemo/DotNetStatsContext.cs | Adds EF Core DbContext + model configuration for the demo. |
| v2/rscg_examples/AlephMapper/src/EntityDemo.sln | Adds a solution wrapper for the demo project. |
| v2/rscg_examples/AlephMapper/src/.tours/AlephMapper.tour | Adds CodeTour steps for walking through the example and generated output. |
| v2/rscg_examples/AlephMapper/readme.txt | Captures upstream project readme content for documentation. |
| v2/rscg_examples/AlephMapper/nuget.txt | Adds the short description used by site/book generation. |
| v2/rscg_examples/AlephMapper/description.json | Adds generator metadata used to render the AlephMapper docs page. |
| v2/rscg_examples_site/static/exports/RSCG.json | Adds AlephMapper to the exported RSCG list. |
| v2/rscg_examples_site/src/components/HomepageFeatures/index.js | Updates homepage “Examples” count from 271 to 272. |
| v2/rscg_examples_site/docs/RSCG-Examples/index.md | Updates counts and links/graph to include AlephMapper in Database category. |
| v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md | Adds the full generated docs page for AlephMapper. |
| v2/rscg_examples_site/docs/indexRSCG.md | Updates the main list to 272 and adds AlephMapper entry. |
| v2/rscg_examples_site/docs/Categories/Database.md | Updates Database category count/list to include AlephMapper. |
| v2/rscg_examples_site/docs/Categories/_PrimitiveDatabase.mdx | Updates the “SameCategory” primitive list to include AlephMapper. |
| v2/rscg_examples_site/docs/Authors/Yevhen_Cherkes.md | Adds the author page and links the AlephMapper entry. |
| v2/rscg_examples_site/docs/about.md | Updates About page count from 271 to 272. |
| v2/Generator/all.csv | Adds AlephMapper to the generator CSV index. |
| v2/docFind.json | Adds AlephMapper to the search index data. |
| v2/book/pandocHTML.yaml | Adds the AlephMapper HTML page to the book build inputs. |
| v2/book/list.html | Updates book list count and adds AlephMapper link. |
| v2/book/examples/TypedStateBuilder.Generator.html | Updates TypedStateBuilder.Generator page content (appears unintentionally corrupted). |
| v2/book/examples/AlephMapper.html | Adds the AlephMapper book HTML page. |
| README.md | Updates repository headline/count/latest update + adds AlephMapper section. |
| later.md | Updates latest update date to 2026-06-29. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <h2>About</h2> | ||
|
|
||
| Generate strongly typed state builders for C# applications, improving code readability and maintainability. | ||
| Generate strongly typed state builders for C# applications, enforced at compile time**Summary of TypedStateBuilder.Generator****Purpose:** Generates compile-time safe step-by-step builders using the *type-state pattern* — each required property must be set in order before Build() is available, enforced at compile time.**NuGet:** https://www.nuget.org/packages/TypedStateBuilder.Generator/**GitHub:** https://github.com/Georgiy-Petrov/TypedStateBuilder.Generator**Author:** Georgiy Petrov**How to use:**1. Decorate a builder class with [TypedStateBuilder], mark each required step with [StepForValue], and optionally add [ValidateValue] for validation:```csharp[TypedStateBuilder]public class PersonBuilder{ [StepForValue] [ValidateValue(nameof(ValidateName))] private string lastName = string.Empty; [StepForValue] [ValidateValue(nameof(ValidateName))] private string firstName = string.Empty; public void ValidateName(string name) { if (string.IsNullOrWhiteSpace(name) || name.Length <= 1) throw new ArgumentException("Name must be at least 2 characters long."); } [Build] public Person Build() => new Person(firstName, lastName);}```2. Use the generated fluent builder — steps are enforced in order at compile time:```csharpvar p = TypedStateBuilders .CreatePersonBuilder() .SetFirstName("Andrei") .SetLastName("Ignat") .Build();Console.WriteLine(p.FullName()); // "Andrei Ignat"``` |
| DbContextOptionsBuilder<DotNetStatsContext> optionsBuilder = new(); | ||
| //optionsBuilder.UseInMemoryDatabase("StatsDatabase"); | ||
| optionsBuilder.UseSqlite("Data Source=stats.db"); | ||
| var cnt = new DotNetStatsContext(optionsBuilder.Options); |
| public virtual DbSet<Project> Projects { get; set; } | ||
|
|
||
| public virtual DbSet<Star> Stars { get; set; } |
| public class ProjectDTO | ||
| { | ||
| public string? Name { get; set; } | ||
| public int CountStars { get; set; } |
There was a problem hiding this comment.
Actionable comments posted: 9
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md`:
- Line 439: The TabItem value in the AlephMapper docs uses a machine-specific
absolute Windows path, which should be removed. Update the relevant TabItem
entry in the markdown to use a portable relative identifier or display name
instead of the full local path, matching the approach used for other tabs like
the Program.cs entry.
- Line 461: The TabItem value in the AlephMapper docs still uses a
machine-specific absolute Windows path, which should be removed. Update the
TabItem entry in AlephMapper.md so its value uses a portable relative identifier
or filename instead of D:\... while keeping the ProjectDTO.cs reference
recognizable for navigation.
- Around line 470-472: The C# property declarations in the AlephMapper markdown
code block contain escaped braces that should be plain braces, so update the
snippet to remove the backslashes and restore valid C# syntax. Fix the affected
code block so the `Name` and `CountStars` property declarations, along with the
closing brace, use normal `{` and `}` characters rather than `\{` and `\}`.
- Line 562: The TabItem value in the generated mappings snippet contains a
machine-specific absolute Windows path, so replace it with a relative or stable
identifier in the markdown source. Update the documentation entry that renders
this TabItem so it uses the generated file name or a repo-relative path instead
of the local build path, keeping the surrounding AlephMapper example content
intact.
- Line 415: The TabItem in the AlephMapper docs is using a machine-specific
absolute Windows path as its value, which makes the tab identifier unstable and
leaks local filesystem details. Update the TabItem value in the AlephMapper
documentation snippet to use a short, stable identifier such as the file name,
and ensure any related TabItem entries use the same convention so tab state
remains portable across machines.
- Line 485: The TabItem value in the AlephMapper documentation contains a
machine-specific absolute Windows path, which should be removed. Update the
generated docs snippet in AlephMapper.Attributes.g.cs so the TabItem value uses
a portable relative path or identifier instead of the full local filesystem
path, and keep the label unchanged.
In `@v2/rscg_examples/AlephMapper/readme.txt`:
- Around line 274-303: The README still uses repository-relative links that
break in this mirrored location, so update the links in the related sections to
absolute upstream GitHub URLs or remove the mirrored-only references. Fix the
entries for SampleApp, AlephMapper.IntegrationTests, LICENSE, contributors, and
any other linked project names in the same block so they resolve correctly
regardless of the current folder. Keep the existing section structure, but
ensure all references point to the original upstream targets instead of relative
paths.
In `@v2/rscg_examples/AlephMapper/src/.tours/AlephMapper.tour`:
- Around line 13-29: The AlephMapper tour steps are using a placeholder anchor
that cannot resolve in ProjectDTO, ProjectExtensions, or Program. Update the
entries in AlephMapper.tour to use real anchors by replacing the invalid
"pattern": "this is the code" with an actual unique snippet from each target
file, or switch those steps to explicit line references so the tour can locate
ProjectDTO, ProjectExtensions, and Program reliably.
In `@v2/rscg_examples/AlephMapper/video.json`:
- Around line 35-38: The JSON entry in AlephMapper/video.json is malformed
because the object uses SpeakTest=" " instead of a quoted key/value pair, so
update the browser step object to use valid JSON syntax throughout. Fix the
malformed object in the sequence containing typeStep and arg, and verify the
surrounding entries remain valid JSON array items so the script can be parsed
correctly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 7df9e128-2dc5-499d-90ae-c98a6840b478
⛔ Files ignored due to path filters (4)
v2/Generator/all.csvis excluded by!**/*.csvv2/rscg_examples/AlephMapper/src/EntityDemo/stats.dbis excluded by!**/*.dbv2/rscg_examples_site/static/exports/RSCG.xlsxis excluded by!**/*.xlsxv2/rscg_examples_site/static/sources/AlephMapper.zipis excluded by!**/*.zip
📒 Files selected for processing (31)
README.mdlater.mdv2/RSCGExamplesData/GeneratorDataRec.jsonv2/book/examples/AlephMapper.htmlv2/book/examples/TypedStateBuilder.Generator.htmlv2/book/list.htmlv2/book/pandocHTML.yamlv2/docFind.jsonv2/rscg_examples/AlephMapper/description.jsonv2/rscg_examples/AlephMapper/nuget.txtv2/rscg_examples/AlephMapper/readme.txtv2/rscg_examples/AlephMapper/src/.tours/AlephMapper.tourv2/rscg_examples/AlephMapper/src/EntityDemo.slnv2/rscg_examples/AlephMapper/src/EntityDemo/DotNetStatsContext.csv2/rscg_examples/AlephMapper/src/EntityDemo/EntityDemo.csprojv2/rscg_examples/AlephMapper/src/EntityDemo/Program.csv2/rscg_examples/AlephMapper/src/EntityDemo/Project.csv2/rscg_examples/AlephMapper/src/EntityDemo/ProjectDTO.csv2/rscg_examples/AlephMapper/src/EntityDemo/ProjectExtensions.csv2/rscg_examples/AlephMapper/src/EntityDemo/Star.csv2/rscg_examples/AlephMapper/src/EntityDemo/globals.csv2/rscg_examples/AlephMapper/video.jsonv2/rscg_examples_site/docs/Authors/Yevhen_Cherkes.mdv2/rscg_examples_site/docs/Categories/Database.mdv2/rscg_examples_site/docs/Categories/_PrimitiveDatabase.mdxv2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.mdv2/rscg_examples_site/docs/RSCG-Examples/index.mdv2/rscg_examples_site/docs/about.mdv2/rscg_examples_site/docs/indexRSCG.mdv2/rscg_examples_site/src/components/HomepageFeatures/index.jsv2/rscg_examples_site/static/exports/RSCG.json
|
|
||
| </TabItem> | ||
|
|
||
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\Program.cs" label="Program.cs" > |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove absolute Windows paths from TabItem values.
The value attribute contains a machine-specific absolute path (D:\gth\RSCG_Examples\...). Docusaurus TabItem values are identifiers for tab state; they should be short, stable strings like "Program.cs". These paths will break on any other machine and leak local filesystem structure.
- <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\Program.cs" label="Program.cs" >
+ <TabItem value="program-cs" label="Program.cs" >📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\Program.cs" label="Program.cs" > | |
| <TabItem value="program-cs" label="Program.cs" > |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md` at line 415, The
TabItem in the AlephMapper docs is using a machine-specific absolute Windows
path as its value, which makes the tab identifier unstable and leaks local
filesystem details. Update the TabItem value in the AlephMapper documentation
snippet to use a short, stable identifier such as the file name, and ensure any
related TabItem entries use the same convention so tab state remains portable
across machines.
| ``` | ||
| </TabItem> | ||
|
|
||
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\ProjectExtensions.cs" label="ProjectExtensions.cs" > |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove absolute Windows paths from TabItem values.
Same issue as Program.cs tab — the value attribute contains a machine-specific absolute path.
- <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\ProjectExtensions.cs" label="ProjectExtensions.cs" >
+ <TabItem value="projectextensions-cs" label="ProjectExtensions.cs" >📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\ProjectExtensions.cs" label="ProjectExtensions.cs" > | |
| <TabItem value="projectextensions-cs" label="ProjectExtensions.cs" > |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md` at line 439, The
TabItem value in the AlephMapper docs uses a machine-specific absolute Windows
path, which should be removed. Update the relevant TabItem entry in the markdown
to use a portable relative identifier or display name instead of the full local
path, matching the approach used for other tabs like the Program.cs entry.
| ``` | ||
| </TabItem> | ||
|
|
||
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\ProjectDTO.cs" label="ProjectDTO.cs" > |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove absolute Windows paths from TabItem values.
Same issue — machine-specific absolute path in value attribute.
- <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\ProjectDTO.cs" label="ProjectDTO.cs" >
+ <TabItem value="projectdto-cs" label="ProjectDTO.cs" >📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\ProjectDTO.cs" label="ProjectDTO.cs" > | |
| <TabItem value="projectdto-cs" label="ProjectDTO.cs" > |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md` at line 461, The
TabItem value in the AlephMapper docs still uses a machine-specific absolute
Windows path, which should be removed. Update the TabItem entry in
AlephMapper.md so its value uses a portable relative identifier or filename
instead of D:\... while keeping the ProjectDTO.cs reference recognizable for
navigation.
| public string? Name \{ get; set; } | ||
| public int CountStars \{ get; set; } | ||
| } |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Fix escaped braces in C# code block.
The property declarations show \{ and \} instead of { and }. This is invalid C# syntax and appears to be a copy-paste artifact from an intermediate format.
- public string? Name \{ get; set; }
- public int CountStars \{ get; set; }
+ public string? Name { get; set; }
+ public int CountStars { get; set; }📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| public string? Name \{ get; set; } | |
| public int CountStars \{ get; set; } | |
| } | |
| public string? Name { get; set; } | |
| public int CountStars { get; set; } | |
| } |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md` around lines 470 -
472, The C# property declarations in the AlephMapper markdown code block contain
escaped braces that should be plain braces, so update the snippet to remove the
backslashes and restore valid C# syntax. Fix the affected code block so the
`Name` and `CountStars` property declarations, along with the closing brace, use
normal `{` and `}` characters rather than `\{` and `\}`.
| <Tabs> | ||
|
|
||
|
|
||
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\obj\GX\AlephMapper\AlephMapper.AlephSourceGenerator\AlephMapper.Attributes.g.cs" label="AlephMapper.Attributes.g.cs" > |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove absolute Windows paths from TabItem values.
Same issue — machine-specific absolute path in value attribute.
- <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\obj\GX\AlephMapper\AlephMapper.AlephSourceGenerator\AlephMapper.Attributes.g.cs" label="AlephMapper.Attributes.g.cs" >
+ <TabItem value="alephmapper-attributes-g-cs" label="AlephMapper.Attributes.g.cs" >📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\obj\GX\AlephMapper\AlephMapper.AlephSourceGenerator\AlephMapper.Attributes.g.cs" label="AlephMapper.Attributes.g.cs" > | |
| <TabItem value="alephmapper-attributes-g-cs" label="AlephMapper.Attributes.g.cs" > |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md` at line 485, The
TabItem value in the AlephMapper documentation contains a machine-specific
absolute Windows path, which should be removed. Update the generated docs
snippet in AlephMapper.Attributes.g.cs so the TabItem value uses a portable
relative path or identifier instead of the full local filesystem path, and keep
the label unchanged.
| </TabItem> | ||
|
|
||
|
|
||
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\obj\GX\AlephMapper\AlephMapper.AlephSourceGenerator\EntityDemo_ProjectExtensions_GeneratedMappings.g.cs" label="EntityDemo_ProjectExtensions_GeneratedMappings.g.cs" > |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove absolute Windows paths from TabItem values.
Same issue — machine-specific absolute path in value attribute.
- <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\obj\GX\AlephMapper\AlephMapper.AlephSourceGenerator\EntityDemo_ProjectExtensions_GeneratedMappings.g.cs" label="EntityDemo_ProjectExtensions_GeneratedMappings.g.cs" >
+ <TabItem value="entitydemo-generated-mappings-g-cs" label="EntityDemo_ProjectExtensions_GeneratedMappings.g.cs" >📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\AlephMapper\src\EntityDemo\obj\GX\AlephMapper\AlephMapper.AlephSourceGenerator\EntityDemo_ProjectExtensions_GeneratedMappings.g.cs" label="EntityDemo_ProjectExtensions_GeneratedMappings.g.cs" > | |
| <TabItem value="entitydemo-generated-mappings-g-cs" label="EntityDemo_ProjectExtensions_GeneratedMappings.g.cs" > |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md` at line 562, The
TabItem value in the generated mappings snippet contains a machine-specific
absolute Windows path, so replace it with a relative or stable identifier in the
markdown source. Update the documentation entry that renders this TabItem so it
uses the generated file name or a repo-relative path instead of the local build
path, keeping the surrounding AlephMapper example content intact.
| - [Sample app](examples/SampleApp) - richer mapping examples. | ||
| - [Integration tests](tests/AlephMapper.IntegrationTests) - EF Core and generated behavior coverage. | ||
|
|
||
| ## Contributing | ||
|
|
||
| Contributions are welcome. | ||
|
|
||
| 1. Fork the repository. | ||
| 2. Create a feature branch. | ||
| 3. Make the change. | ||
| 4. Add or update tests. | ||
| 5. Run the test suite. | ||
| 6. Open a pull request. | ||
|
|
||
| ## License | ||
|
|
||
| This project is licensed under the MIT License. See [LICENSE](LICENSE) for details. | ||
|
|
||
| ## Acknowledgments | ||
|
|
||
| - Inspired by [EntityFrameworkCore.Projectables](https://github.com/koenbeuk/EntityFrameworkCore.Projectables) and [Expressionify](https://github.com/ClaveConsulting/Expressionify). | ||
| - Thanks to all [contributors](https://github.com/Raffinert/AlephMapper/graphs/contributors). | ||
|
|
||
| ## Related Projects | ||
|
|
||
| - [EntityFrameworkCore.Projectables](https://github.com/koenbeuk/EntityFrameworkCore.Projectables) | ||
| - [Expressionify](https://github.com/ClaveConsulting/Expressionify) | ||
| - [AutoMapper](https://automapper.org/) | ||
| - [Mapster](https://github.com/MapsterMapper/Mapster) | ||
| - [Facet](https://github.com/Tim-Maes/Facet) |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Replace upstream-relative links with absolute URLs.
The links on Lines 274-303 resolve relative to v2/rscg_examples/AlephMapper/, so entries like examples/SampleApp, tests/AlephMapper.IntegrationTests, and LICENSE will point to the wrong place here. Please switch them to full upstream GitHub URLs or remove them from this mirrored README.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples/AlephMapper/readme.txt` around lines 274 - 303, The README
still uses repository-relative links that break in this mirrored location, so
update the links in the related sections to absolute upstream GitHub URLs or
remove the mirrored-only references. Fix the entries for SampleApp,
AlephMapper.IntegrationTests, LICENSE, contributors, and any other linked
project names in the same block so they resolve correctly regardless of the
current folder. Keep the existing section structure, but ensure all references
point to the original upstream targets instead of relative paths.
| ,{ | ||
| "file": "EntityDemo/ProjectDTO.cs", | ||
| "description": "File ProjectDTO.cs ", | ||
| "pattern": "this is the code" | ||
| } | ||
|
|
||
| ,{ | ||
| "file": "EntityDemo/ProjectExtensions.cs", | ||
| "description": "File ProjectExtensions.cs ", | ||
| "pattern": "this is the code" | ||
| } | ||
|
|
||
| ,{ | ||
| "file": "EntityDemo/Program.cs", | ||
| "description": "File Program.cs \r\n>> dotnet run --project EntityDemo/EntityDemo.csproj ", | ||
| "pattern": "this is the code" | ||
| } |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Use real anchors for these tour steps.
"pattern": "this is the code" does not exist in v2/rscg_examples/AlephMapper/src/EntityDemo/ProjectDTO.cs:1-7, v2/rscg_examples/AlephMapper/src/EntityDemo/ProjectExtensions.cs:1-12, or v2/rscg_examples/AlephMapper/src/EntityDemo/Program.cs:1-16, so those steps cannot resolve to a location. Replace the placeholder with an actual pattern or explicit line number per file.
Suggested fix
,{
"file": "EntityDemo/ProjectDTO.cs",
"description": "File ProjectDTO.cs ",
- "pattern": "this is the code"
+ "pattern": "public class ProjectDTO"
}
,{
"file": "EntityDemo/ProjectExtensions.cs",
"description": "File ProjectExtensions.cs ",
- "pattern": "this is the code"
+ "pattern": "public static partial class ProjectExtensions"
}
,{
"file": "EntityDemo/Program.cs",
"description": "File Program.cs \r\n>> dotnet run --project EntityDemo/EntityDemo.csproj ",
- "pattern": "this is the code"
+ "pattern": "Console.WriteLine(\"Hello, World!\")"
}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ,{ | |
| "file": "EntityDemo/ProjectDTO.cs", | |
| "description": "File ProjectDTO.cs ", | |
| "pattern": "this is the code" | |
| } | |
| ,{ | |
| "file": "EntityDemo/ProjectExtensions.cs", | |
| "description": "File ProjectExtensions.cs ", | |
| "pattern": "this is the code" | |
| } | |
| ,{ | |
| "file": "EntityDemo/Program.cs", | |
| "description": "File Program.cs \r\n>> dotnet run --project EntityDemo/EntityDemo.csproj ", | |
| "pattern": "this is the code" | |
| } | |
| ,{ | |
| "file": "EntityDemo/ProjectDTO.cs", | |
| "description": "File ProjectDTO.cs ", | |
| "pattern": "public class ProjectDTO" | |
| } | |
| ,{ | |
| "file": "EntityDemo/ProjectExtensions.cs", | |
| "description": "File ProjectExtensions.cs ", | |
| "pattern": "public static partial class ProjectExtensions" | |
| } | |
| ,{ | |
| "file": "EntityDemo/Program.cs", | |
| "description": "File Program.cs \r\n>> dotnet run --project EntityDemo/EntityDemo.csproj ", | |
| "pattern": "Console.WriteLine(\"Hello, World!\")" | |
| } |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples/AlephMapper/src/.tours/AlephMapper.tour` around lines 13 -
29, The AlephMapper tour steps are using a placeholder anchor that cannot
resolve in ProjectDTO, ProjectExtensions, or Program. Update the entries in
AlephMapper.tour to use real anchors by replacing the invalid "pattern": "this
is the code" with an actual unique snippet from each target file, or switch
those steps to explicit line references so the tour can locate ProjectDTO,
ProjectExtensions, and Program reliably.
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/AlephMapper#download-example-net--c-", | ||
| SpeakTest=" "}, | ||
| {"typeStep":"waitseconds","arg":"30"}, | ||
| ] |
There was a problem hiding this comment.
🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win
Fix the malformed JSON object.
Lines 35-36 are not valid JSON: SpeakTest=" " uses = instead of a quoted key with :, which makes the entire script unreadable.
Suggested fix
-{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/AlephMapper#download-example-net--c-",
-SpeakTest=" "},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/AlephMapper#download-example-net--c-",
+"SpeakTest":" "},📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/AlephMapper#download-example-net--c-", | |
| SpeakTest=" "}, | |
| {"typeStep":"waitseconds","arg":"30"}, | |
| ] | |
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/AlephMapper#download-example-net--c-", | |
| "SpeakTest":" "}, | |
| {"typeStep":"waitseconds","arg":"30"}, | |
| ] |
🧰 Tools
🪛 Biome (2.5.0)
[error] 36-36: Property key must be double quoted
(parse)
[error] 36-36: unexpected character =
(parse)
[error] 36-36: expected , but instead found " "
(parse)
[error] 36-36: expected : but instead found }
(parse)
[error] 38-38: Expected an array, an object, or a literal but instead found ']'.
(parse)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples/AlephMapper/video.json` around lines 35 - 38, The JSON entry
in AlephMapper/video.json is malformed because the object uses SpeakTest=" "
instead of a quoted key/value pair, so update the browser step object to use
valid JSON syntax throughout. Fix the malformed object in the sequence
containing typeStep and arg, and verify the surrounding entries remain valid
JSON array items so the script can be parsed correctly.
Source: Linters/SAST tools
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md (1)
415-415: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winReplace the absolute
TabItem valuepaths and escaped braces in the AlephMapper snippets — use repo-relative paths, and change the C# property declarations to plain{ get; set; }so the docs render correctly.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md` at line 415, The AlephMapper doc snippets contain absolute TabItem value paths and escaped C# property braces that break rendering. Update the snippet markup in the AlephMapper documentation to use repo-relative paths for the TabItem value, and adjust the property declarations in the referenced Program.cs examples to plain { get; set; } syntax. Use the TabItem entries and the Program.cs snippet blocks as the locations to fix.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md`:
- Line 69: The LICENSE badge link in the AlephMapper markdown points to a
non-existent repository URL and should be updated to the actual LICENSE file
location. Fix the markdown reference for the badge in AlephMapper.md so it
targets the repo’s valid LICENSE path (for example the blob-based LICENSE URL)
and resolves correctly when clicked.
---
Outside diff comments:
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md`:
- Line 415: The AlephMapper doc snippets contain absolute TabItem value paths
and escaped C# property braces that break rendering. Update the snippet markup
in the AlephMapper documentation to use repo-relative paths for the TabItem
value, and adjust the property declarations in the referenced Program.cs
examples to plain { get; set; } syntax. Use the TabItem entries and the
Program.cs snippet blocks as the locations to fix.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: da3fd5e8-bfb3-420a-a7d9-96b1ae11c3e8
📒 Files selected for processing (1)
v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md
|
|
||
| [](https://www.nuget.org/packages/AlephMapper) | ||
| [](https://www.nuget.org/packages/AlephMapper) | ||
| [](https://github.com/Raffinert/AlephMapper/LICENSE) |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if the LICENSE URL resolves
curl -s -o /dev/null -w "%{http_code}" "https://github.com/Raffinert/AlephMapper/LICENSE"Repository: ignatandrei/RSCG_Examples
Length of output: 166
Fix the LICENSE link The badge/reference URL points to https://github.com/Raffinert/AlephMapper/LICENSE, which returns 404. Update it to the repo’s actual LICENSE path (for example /blob/main/LICENSE) so the link works.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md` at line 69, The
LICENSE badge link in the AlephMapper markdown points to a non-existent
repository URL and should be updated to the actual LICENSE file location. Fix
the markdown reference for the badge in AlephMapper.md so it targets the repo’s
valid LICENSE path (for example the blob-based LICENSE URL) and resolves
correctly when clicked.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md`:
- Around line 325-326: The AlephMapper docs links in the markdown are pointing
to repository paths that 404; update the Sample app and Integration tests URLs
to use the GitHub /tree/main/ form. Make this change in the markdown section
containing those two links so the references point to the actual directories in
the repository.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 1e5ab9b2-fcd9-4f50-9366-6aba89554d6e
📒 Files selected for processing (2)
v2/Generator/MultiGeneratorV2.csv2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md
| - [Sample app](https://github.com/Raffinert/AlephMapper/examples/SampleApp) - richer mapping examples. | ||
| - [Integration tests](https://github.com/Raffinert/AlephMapper/tests/AlephMapper.IntegrationTests) - EF Core and generated behavior coverage. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if the URLs resolve correctly
for path in "/examples/SampleApp" "/tests/AlephMapper.IntegrationTests"; do
url="https://github.com/Raffinert/AlephMapper${path}"
echo "Checking: $url"
curl -s -o /dev/null -w "%{http_code}" "$url"
echo " (should be 404)"
fixed_url="https://github.com/Raffinert/AlephMapper/tree/main${path}"
echo "Checking: $fixed_url"
curl -s -o /dev/null -w "%{http_code}" "$fixed_url"
echo " (should be 200 or 301/302)"
echo "---"
doneRepository: ignatandrei/RSCG_Examples
Length of output: 605
Fix the GitHub links Both URLs 404 as written; use /tree/main/ for these directories.
🧰 Tools
🪛 LanguageTool
[grammar] ~325-~325: Ensure spelling is correct
Context: ...ation. | ###### Examples - Sample app - richer mapping examples. - [Integration tests](https://github.co...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples_site/docs/RSCG-Examples/AlephMapper.md` around lines 325 -
326, The AlephMapper docs links in the markdown are pointing to repository paths
that 404; update the Sample app and Integration tests URLs to use the GitHub
/tree/main/ form. Make this change in the markdown section containing those two
links so the references point to the actual directories in the repository.
Summary by CodeRabbit
New Features
Documentation