Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

arch: move MasterDataSet out of LageBuch.Persistence so AppLogic stops referencing the infrastructure assembly

未关闭
#297 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
35/100
Issue 类型
重构
描述清晰度
基本清楚
活跃度
活跃
技术栈
csharp
领域
backend

调研方向

Start with src/LageBuch.AppLogic/LageBuch.AppLogic.csproj and src/LageBuch.Persistence/MasterData/MasterDataSet.cs, then trace the listed view-models, service interfaces, and Services/IncidentStore.cs dependencies. The proposal leaves the destination undecided (Domain or a new Contracts project) and allows moving IncidentStore to either app heads or a new Infrastructure project. Follow AGENTS.md and keep docs/master-data.example.json in sync; done when AppLogic no longer references Persistence and the dependent code builds and tests pass.

由索引模型根据 Issue 内容生成。

描述

enhancement

From the 2026-09-09 architecture review of main (35d86e1).

LageBuch.AppLogic references LageBuch.Persistence (src/LageBuch.AppLogic/LageBuch.AppLogic.csproj:6) for one reason: MasterDataSet and IncidentSettings (src/LageBuch.Persistence/MasterData/MasterDataSet.cs) are defined in the infrastructure assembly, and 14 view-model files plus the service interfaces IMasterDataProvider, IMasterDataFileService and IIncidentHostController using LageBuch.Persistence.MasterData. The records themselves are plain data with no SQLite in them. The only concrete Persistence use in AppLogic is Services/IncidentStore.cs.

Proposal

  • Move MasterDataSet, IncidentSettings, AnonymizedExampleData and the small record types they use to LageBuch.Domain (they are dependency-free records) or a new LageBuch.Contracts project.
  • Keep MasterDataJson and MasterDataStore in Persistence.
  • Move IncidentStore (the IIncidentStore implementation over IncidentRepository) to the app heads or a small LageBuch.Infrastructure project, so AppLogic no longer references Persistence at all.

Keep docs/master-data.example.json in sync per AGENTS.md if any field moves.

主要语言
C#
星标
1
派生
3
平均合并
4 小时 34 分钟
30 天内合并 PR
182

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

CodeForFire/lagebuch 的其他 Issue

查看 CodeForFire/lagebuch 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。