Skip to content
This repository has been archived by the owner on Feb 28, 2024. It is now read-only.

Final PR Draft #35

Open
wants to merge 55 commits into
base: main
Choose a base branch
from
Open

Final PR Draft #35

wants to merge 55 commits into from

Conversation

Shirasagi0012
Copy link
Collaborator

No description provided.

Shirasagi0012 and others added 30 commits January 25, 2024 23:22
* 增加数据持久化的委托

* feat: 增加对DependencyInjection库的引用

* feat: 增加对DependencyInjection库的引用

* feat: 建立DI容器
* 增加数据持久化的委托

* feat: 增加对DependencyInjection库的引用

* feat: 增加对DependencyInjection库的引用

* feat: 建立DI容器
* feat: Create all views (#9) (#10)

* feat: 借助DI简单实现不同页面之间的导航
* feat: Create all views

* feat: 新建了几个VM,不包括MainWindow的
* feat: Create all views

* feat: Create all views (#9) (#10)

* feat: 借助DI简单实现不同页面之间的导航

* feat: 新建了几个VM,不包括MainWindow的

* refactor: 将MainWindow和它的ViewModel一起塞进DI容器,并且由DI容器创建窗体

* feat: 新增引用CommunityToolkit.MVVM包

* 惊了,居然还能跑起来

* feat: 初步完成基于DI容器实现的带传参的导航,支持单例页面和瞬态页面
* refactor: format

* refactor: 重构了导航部分以尽量避免用到反射和装箱拆箱🤧
* feat: 增加对WebView2包的引用

* feat: 测试WebView2

* test: 测试导航跳转功能与WebView2

* refactor: 将测试页面MVVM化
* refactor: 将INavigationAware改为Async

* refactor: 将NavigationService改为异步

* refactor: 将MainWindow的导航相关部分改为异步的(性能真的有明显提升的说
* feat: 增加MarkDig包的引用,为实现markdown->html+css->Webview2渲染打下基础

* feat: 开始搞md解析与在webview2里显示

* remove: 删掉之前的测试代码

* feat: Markdown渲染器能用了

* feat: 在HomePage里加入一个简单的编辑器用作测试目的
* test: 加入一些用于测试的md文档

* fix: 不存在的entry id没必要抛出异常,搞个404页面多好
* feat: MainWindow MVVM化(一直拖到现在才改

* cleanup:

* refactor: 将UserPage的按钮也MVVM化
* Feat:将深色切换可视化,初步完善设置界面

* 完善了设置中其他页面

因暂时想不出应添加什么设置,故搁置系统设置这一页面

* 修改了页面切换的方式,沿用INavigationService进行页面的切换

---------

Co-authored-by: Shirasagi <[email protected]>
Shirasagi0012 and others added 25 commits February 15, 2024 18:16
* feat: 写好接口啦

* feat: 把所有接口及不存在的实现塞在DI容器里了

* feat: 补上一个Core.Contracts.User的DI容器
* feat:使用Refit库并且加入了目前api的定义

* feat: 初步实现了EntryProvider

* feat: 似乎写完Cache和Settings的存储部分了

* fix: 把SettingsService做了点简单的测试,大概是能用了

* test: 测试并修复了EntryCache和CacheStorage部分,似乎能用了
* 完善EntryProvider,计划明天更改为使用Result类来向WPF项目传递数据,以避免WPF项目里try catch满天飞的情况

* push forward

* 将ISastWikiAPI的返回值包上了一层IApiResponse
这下减少了不少的try-catch,代码一下清爽了

* EntryProvider抛出异常时顺便带上ApiException

* 事实证明Refit的HttpClient连接不上服务器触发的异常并不会包含在IApiResponse中,因而就没有再包一层异常的必要了

* fix: 修改PostEntryApi与使EntryDto中的值均可为null

* fix: 修复了SettingsStorage获取文件流冲突的问题

之前SettingsFileLock锁定的位置不对,现在改正了,理应能提高稳定性

* fix:在文件被占用时不使用缓存版本

减轻因为文件被占用在Cache服务中造成的后果

* fix: 修复缓存检测逻辑

* fix: fix last commit

* fix: EntryCache的EntryMetadata部分加入lock

* feat: 开始做登录与鉴权部分

* refactor: 将Core项目DI容器初始化的内容放在Core项目里

* feat: 完成CategoryProvider和TagProvider

当你可以在本地快速完成时,为什么还需要找后端接口的麻烦呢?
LINQ真好玩😋

* feat: 注册功能

* fix: GetEntryByTags()的取交集逻辑有误

* feat: 实装DI容器的修改

* fix: 能跑了

* refactor: 整理代码

* fix: 为缓存文件引入锁,解决文件被占用的问题
* feat: 使用EntryDto而不是单独拿出来的Title等数据,更MVVM

* refactor: 删除不需要的字段属性
* feat: 侧边栏的TreeView可以显示数据了,但是还不能跳转

* feat: 点击事件处理与跳转页面完成
* 完善了显示的数据绑定

* 完成编辑页面的初步设计

* 完善了浏览页面,对编辑页面进行了部分修改,实现了Placeholder效果

* Feat edit shirasagi (#39)

* feat: 完成了Infrastructure部分的基本内容,Cache部分没做完 (#30)

* feat:使用Refit库并且加入了目前api的定义

* feat: 初步实现了EntryProvider

* feat: 似乎写完Cache和Settings的存储部分了

* fix: 把SettingsService做了点简单的测试,大概是能用了

* test: 测试并修复了EntryCache和CacheStorage部分,似乎能用了

* 初步完成SastWiki.Core (#31)

* 完善EntryProvider,计划明天更改为使用Result类来向WPF项目传递数据,以避免WPF项目里try catch满天飞的情况

* push forward

* 将ISastWikiAPI的返回值包上了一层IApiResponse
这下减少了不少的try-catch,代码一下清爽了

* EntryProvider抛出异常时顺便带上ApiException

* 事实证明Refit的HttpClient连接不上服务器触发的异常并不会包含在IApiResponse中,因而就没有再包一层异常的必要了

* fix: 修改PostEntryApi与使EntryDto中的值均可为null

* fix: 修复了SettingsStorage获取文件流冲突的问题

之前SettingsFileLock锁定的位置不对,现在改正了,理应能提高稳定性

* fix:在文件被占用时不使用缓存版本

减轻因为文件被占用在Cache服务中造成的后果

* fix: 修复缓存检测逻辑

* fix: fix last commit

* fix: EntryCache的EntryMetadata部分加入lock

* feat: 开始做登录与鉴权部分

* refactor: 将Core项目DI容器初始化的内容放在Core项目里

* feat: 完成CategoryProvider和TagProvider

当你可以在本地快速完成时,为什么还需要找后端接口的麻烦呢?
LINQ真好玩😋

* feat: 注册功能

* fix: GetEntryByTags()的取交集逻辑有误

* feat: 实装DI容器的修改

* fix: 能跑了

* refactor: 整理代码

* fix: 为缓存文件引入锁,解决文件被占用的问题

* fix: 修复了锁的问题,由ReaderWriterLockSlim换为semaphoreSlim,因为传统锁按线程锁定,而await可能会改变线程ID (#32)

* feat: 刷新功能与显示标题 (#33)

* Dev entry view title converter (#36)

* feat: 使用EntryDto而不是单独拿出来的Title等数据,更MVVM

* refactor: 删除不需要的字段属性

* Feat mainwindow sidebar Treeview (#37)

* feat: 侧边栏的TreeView可以显示数据了,但是还不能跳转

* feat: 点击事件处理与跳转页面完成

* finish merge

* feat: 完成编辑提交功能

* fix: 修复提交无法获取提交后id的问题(后端背锅

* fix: 使TextBox可回车换行,并且开启自动换行

---------

Co-authored-by: Shirasagi <[email protected]>
* Feat:将深色切换可视化,初步完善设置界面

* 完善了设置中其他页面

因暂时想不出应添加什么设置,故搁置系统设置这一页面

* 修改了页面切换的方式,沿用INavigationService进行页面的切换

* 使用Frame进行Username页面导航

接下来进行MVVM化,页面优化,底层逻辑的实现

* 有两个地方没删干净

* LoginPage和RegisterPage进行了MVVM化

* 补充了记住密码

---------

Co-authored-by: LuoXiYv <[email protected]>
Co-authored-by: LuoXiYv <[email protected]>
Co-authored-by: Shirasagi <[email protected]>
* fix: Settings config save

* feat: 开始搓搜索页面

* feat: TagViewer控件

* feat; 修改样式

* 在EntryViewPage上也加入TagViewer,并使设计正常点

* 使全文匹配的标签结果在前,且标签可点击
* feat:加入登录与注册的逻辑

* feat: 记住密码功能

* 去掉一些debug用的东西
* 图片上传api已经可用了,明天搞好(因为没有后天了

* feat: 修改webview2的图片请求的Uri

* feat: 上传图片做完啦
* fix: MainWindow左侧的TreeView不会自动更新
fix: EditPage添加图片换行写成\\n了

* 加了个可以清除缓存的页面

* 使SearchPage的Listbox可滚动

* 基于IOptions的配置

* 主页
* fix: MainWindow左侧的TreeView不会自动更新
fix: EditPage添加图片换行写成\\n了

* 加了个可以清除缓存的页面

* 使SearchPage的Listbox可滚动

* 基于IOptions的配置

* 主页

* 加入几处被遗漏的try-catch捕获网络异常

* 漏了一处try-catch,并且加入了编辑后提交词条使按钮不可用的功能
* 启动时检测并创建配置文件夹

* 修复EntryCache初始化未等待CacheStorage初始化完毕导致的死循环的问题
* 实现DeleteEntry的接口,并调整了清空元数据缓存的代码的位置

* 后端的接口记错了,唉唉开改

* feat: Delete功能
@Shirasagi0012 Shirasagi0012 marked this pull request as ready for review February 25, 2024 14:46
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants