Table of Contents

IPublicLessonsService 接口

命名空间
ClassIsland.Shared.IPC.Abstractions.Services
程序集
ClassIsland.Shared.IPC.dll

向其它进程公开的课程服务,用于存储当前课表状态与信息。

[IpcPublic(IgnoresIpcException = true)]
public interface IPublicLessonsService

属性

CurrentClassPlan

当前加载的课表。如果当前没有课表,则为 null。

ClassPlan? CurrentClassPlan { get; set; }

属性值

ClassPlan

CurrentSelectedIndex

当前所处时间点TimeLayoutItem的索引。如无,则为 -1。

int CurrentSelectedIndex { get; set; }

属性值

int

CurrentState

当前时间点状态。

TimeState CurrentState { get; set; }

属性值

TimeState

CurrentSubject

当前所处时间点TimeLayoutItem的科目。

如果当前是课间休息,则其中 Name(科目名) 为课间名称。
如果当前课程未定义,则为 Empty
如果当前没有时间点,或没有加载课表,则为 null。

Subject? CurrentSubject { get; set; }

属性值

Subject

CurrentTimeLayoutItem

当前所处的时间点。如果当前没有时间点,则为 Empty

TimeLayoutItem CurrentTimeLayoutItem { get; set; }

属性值

TimeLayoutItem

IsClassPlanEnabled

是否启用课表。

bool IsClassPlanEnabled { get; set; }

属性值

bool

IsClassPlanLoaded

是否已加载课表。

bool IsClassPlanLoaded { get; set; }

属性值

bool

IsLessonConfirmed

是否已确定当前时间点。

bool IsLessonConfirmed { get; set; }

属性值

bool

IsTimerRunning

主计时器是否正在工作。

bool IsTimerRunning { get; }

属性值

bool

MultiWeekRotation

本周多周轮换周数。

ObservableCollection<int> MultiWeekRotation { get; set; }

属性值

ObservableCollection<int>

第 x 位数字是 y(MultiWeekRotation[x]=y)— 本周是 x 周轮换中的第 y 周。

例:
第 2 位数字是 1(MultiWeekRotation[2]=1)— 本周是 2 周轮换中的第 1 周。
第 4 位数字是 3(MultiWeekRotation[4]=3)— 本周是 4 周轮换中的第 3 周。

NextBreakingTimeLayoutItem

当前或下一个课间休息类型的时间点。如无,则为 Empty

TimeLayoutItem NextBreakingTimeLayoutItem { get; set; }

属性值

TimeLayoutItem

NextClassSubject

当前或下一节课(下一个上课类型的时间点TimeLayoutItem)的科目。如无,则为 Empty

Subject NextClassSubject { get; set; }

属性值

Subject

NextClassTimeLayoutItem

当前或下一个上课类型的时间点。如无,则为 Empty

TimeLayoutItem NextClassTimeLayoutItem { get; set; }

属性值

TimeLayoutItem

OnBreakingTimeLeftTime

距下课剩余时间。如果当前不在上课,则为 Zero

TimeSpan OnBreakingTimeLeftTime { get; set; }

属性值

TimeSpan

OnClassLeftTime

距上课剩余时间。如果当前正在上课,或没有下一节课程,则为 Zero

TimeSpan OnClassLeftTime { get; set; }

属性值

TimeSpan

方法

GetClassPlanByDate(DateTime)

根据日期获取当天的课表ClassPlan。如果那天没有课表安排,则返回 null

ClassPlan? GetClassPlanByDate(DateTime date)

参数

date DateTime

要获取课表的日期

返回

ClassPlan

获取到的课表