Commit
This commit is contained in:
@ -20,11 +20,16 @@ final class ClassModel: NSManagedObject, Identifiable {
|
||||
@NSManaged var important: Bool
|
||||
@NSManaged var online: String
|
||||
|
||||
static var dateNow: Date = .now
|
||||
|
||||
// Здесь мы выполняем дополнительную инициализацию, назначая значения по умолчанию
|
||||
override func awakeFromInsert() {
|
||||
super.awakeFromInsert()
|
||||
|
||||
let calendar = Calendar.current
|
||||
let moscowTimeZone = TimeZone(identifier: "Europe/Moscow")!
|
||||
var calendar = Calendar.current
|
||||
calendar.timeZone = moscowTimeZone
|
||||
let startTime = Date()
|
||||
let endTime = calendar.date(byAdding: .hour, value: 1, to: Date.init())
|
||||
|
||||
setPrimitiveValue("", forKey: "auditory")
|
||||
@ -34,19 +39,20 @@ final class ClassModel: NSManagedObject, Identifiable {
|
||||
setPrimitiveValue("Нет", forKey: "notification")
|
||||
setPrimitiveValue(false, forKey: "important")
|
||||
setPrimitiveValue("Оффлайн", forKey: "online")
|
||||
setPrimitiveValue(Date.init(), forKey: "day")
|
||||
setPrimitiveValue(Date.init(), forKey: "starttime")
|
||||
setPrimitiveValue(startTime, forKey: "day")
|
||||
setPrimitiveValue(startTime, forKey: "starttime")
|
||||
setPrimitiveValue(endTime, forKey: "endtime")
|
||||
}
|
||||
}
|
||||
|
||||
// Расширение для загрузки данных из памяти
|
||||
extension ClassModel {
|
||||
// Получаем все данные из памяти
|
||||
private static var classesFetchRequest: NSFetchRequest<ClassModel> {
|
||||
NSFetchRequest(entityName: "ClassModel")
|
||||
}
|
||||
|
||||
// Получаем все данные из памяти
|
||||
// Получаем все данные и сортируем их по дню
|
||||
static func all() -> NSFetchRequest<ClassModel> {
|
||||
let request: NSFetchRequest<ClassModel> = classesFetchRequest
|
||||
request.sortDescriptors = [
|
||||
@ -55,3 +61,29 @@ extension ClassModel {
|
||||
return request
|
||||
}
|
||||
}
|
||||
|
||||
extension ClassModel {
|
||||
@discardableResult
|
||||
static func makePreview(count: Int, in context: NSManagedObjectContext) -> [ClassModel] {
|
||||
var classes = [ClassModel]()
|
||||
for i in 0..<count {
|
||||
let _class = ClassModel(context: context)
|
||||
_class.subject = "Предмет \(i)"
|
||||
_class.auditory = "Аудитория \(i)"
|
||||
_class.professor = "Преподаватель \(i)"
|
||||
_class.day = Calendar.current.date(byAdding: .day, value: i, to: .now) ?? .now
|
||||
_class.starttime = Date()
|
||||
_class.endtime = Calendar.current.date(byAdding: .hour, value: i, to: .now) ?? .now
|
||||
classes.append(_class)
|
||||
}
|
||||
return classes
|
||||
}
|
||||
|
||||
static func preview(context: NSManagedObjectContext = ClassProvider.shared.viewContext) -> ClassModel {
|
||||
return makePreview(count: 1, in: context)[0]
|
||||
}
|
||||
|
||||
static func empty(context: NSManagedObjectContext = ClassProvider.shared.viewContext) -> ClassModel {
|
||||
return ClassModel(context: context)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user