Skip to content

Commit

Permalink
3.2.7 加入不能用的导入 CSES 档案功能
Browse files Browse the repository at this point in the history
  • Loading branch information
STBBRD committed Feb 6, 2025
1 parent 2e14238 commit 8ed0b08
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 9 deletions.
62 changes: 57 additions & 5 deletions ZongziTEK_Blackboard_Sticker/Classes/Timetable.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
using Newtonsoft.Json;
using CsesSharp;
using CsesSharp.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ZongziTEK_Blackboard_Sticker
{
Expand Down Expand Up @@ -36,13 +34,60 @@ public string ToCurriculums(List<Lesson> list)
return curriculums;
}

public void Sort(Timetable timetable)
public static void Sort(Timetable timetable)
{
foreach (List<Lesson> day in new[] { timetable.Monday, timetable.Tuesday, timetable.Wednesday, timetable.Thursday, timetable.Friday, timetable.Saturday, timetable.Sunday, timetable.Temp })
{
day.Sort((x, y) => x.StartTime.CompareTo(y.StartTime));
}
}

public static Timetable ConvertFromCses(string csesText)
{
Timetable timetable = new Timetable();
Profile profile = CsesLoader.LoadFromYamlString(csesText);

if (profile != null)
{
foreach (Schedule schedule in profile.Schedules)
{
List<Lesson> targetDay = new();
switch (schedule.EnableDay)
{
case DayOfWeek.Monday:
targetDay = timetable.Monday;
break;
case DayOfWeek.Tuesday:
targetDay = timetable.Tuesday;
break;
case DayOfWeek.Wednesday:
targetDay = timetable.Wednesday;
break;
case DayOfWeek.Thursday:
targetDay = timetable.Thursday;
break;
case DayOfWeek.Friday:
targetDay = timetable.Friday;
break;
case DayOfWeek.Saturday:
targetDay = timetable.Saturday;
break;
case DayOfWeek.Sunday:
targetDay = timetable.Sunday;
break;
}

targetDay.Clear();
foreach (ClassInfo classInfo in schedule.Classes)
{
targetDay.Add(Lesson.ConvertFromCsesClass(classInfo));
}
}
Sort(timetable);
}

return timetable;
}
}

public class Lesson
Expand All @@ -61,5 +106,12 @@ public Lesson(string subject, TimeSpan startTime, TimeSpan endTime, bool isSplit
IsSplitBelow = isSplitBelow;
IsStrongClassOverNotificationEnabled = isStrongClassOverNotificationEnabled;
}

public static Lesson ConvertFromCsesClass(ClassInfo classInfo)
{
if (classInfo == null) return new("", new(), new(), false, false);
Lesson lesson = new(classInfo.Subject, classInfo.StartTime, classInfo.EndTime, false, false);
return lesson;
}
}
}
4 changes: 2 additions & 2 deletions ZongziTEK_Blackboard_Sticker/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,5 @@
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.2.6.1")]
[assembly: AssemblyFileVersion("3.2.6.1")]
[assembly: AssemblyVersion("3.2.7.0")]
[assembly: AssemblyFileVersion("3.2.7.0")]
9 changes: 8 additions & 1 deletion ZongziTEK_Blackboard_Sticker/TimetableEditor.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,15 @@
<Button Name="ButtonExport" BorderThickness="0" Background="#00000000" Width="32" Height="32" Padding="0" Click="ButtonExport_Click">
<ui:FontIcon Icon="{x:Static ui:FluentSystemIcons.ArrowExportRtl_20_Regular}"/>
</Button>
<Button Name="ButtonImport" BorderThickness="0" Background="#00000000" Width="32" Height="32" Padding="0" Click="ButtonImport_Click">
<Button Name="ButtonImport" BorderThickness="0" Background="#00000000" Width="32" Height="32" Padding="0">
<ui:FontIcon Icon="{x:Static ui:FluentSystemIcons.ArrowImport_20_Regular}"/>

<ui:FlyoutService.Flyout>
<ui:MenuFlyout>
<MenuItem Click="MenuItemImportFromTimetable_Click" Header="导入黑板贴课程表"/>
<MenuItem Click="MenuItemImportFromCses_Click" Header="导入 CSES 档案" IsEnabled="False"/>
</ui:MenuFlyout>
</ui:FlyoutService.Flyout>
</Button>
</ikw:SimpleStackPanel>
<Button Style="{StaticResource AccentButtonStyle}" Height="32" HorizontalAlignment="Right" Click="ButtonSave_Click">
Expand Down
32 changes: 31 additions & 1 deletion ZongziTEK_Blackboard_Sticker/TimetableEditor.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ private void ButtonExport_Click(object sender, RoutedEventArgs e)
}
}

private void ButtonImport_Click(object sender, RoutedEventArgs e)
private void MenuItemImportFromTimetable_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new()
{
Expand Down Expand Up @@ -446,6 +446,36 @@ private void ButtonImport_Click(object sender, RoutedEventArgs e)
}
}
}

private void MenuItemImportFromCses_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new()
{
Title = "导入课程表",
FileName = "Timetable.yaml",
Filter = "CSES 档案文件 (*.yaml)|*.yaml|所有文件 (*.*)|*.*"
};

if (openFileDialog.ShowDialog() == true)
{
if (File.Exists(openFileDialog.FileName))
{
try
{
if (MessageBox.Show("这里原有的课程将被覆盖", "确定要导入吗?", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
string text = File.ReadAllText(openFileDialog.FileName);
Timetable = Timetable.ConvertFromCses(text);
LoadTimetable();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
#endregion
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,9 @@
<PackageReference Include="Autoupdater.NET.Official">
<Version>1.9.1</Version>
</PackageReference>
<PackageReference Include="CsesSharp">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="EdgeTTS_dotNET_Framework">
<Version>1.1.2</Version>
</PackageReference>
Expand Down

0 comments on commit 8ed0b08

Please sign in to comment.