This commit is contained in:
Vladimir Dubovik
2025-03-13 12:26:41 +03:00
parent 5946cd3ec0
commit 8bc7425e2a
10 changed files with 126 additions and 104 deletions

View File

@ -11,8 +11,7 @@ import SwiftUICore
@MainActor
final class ScheduleViewModel: ObservableObject {
//MARK: Properties
@Published var nameGroups: [String] = []
@Published var numbersNTMLGroups: [String] = []
@Published var nameToHtml: [String : String] = [:]
@Published var classesGroups: [[ClassInfo]] = []
@Published var searchingGroup = ""
@ -44,7 +43,8 @@ final class ScheduleViewModel: ObservableObject {
// Если другая неделя, запрашиваем расписание по неделе и номеру группу(в HTML формате)
if isOtherWeek {
for groupHTML in numbersNTMLGroups {
let groupHTMLs = Array(self.nameToHtml.values)
for groupHTML in groupHTMLs {
let schedule = try await NetworkManager.shared.getScheduleForOtherWeek(self.week, groupHTML)
let table = schedule.table.table
let nameOfGroup = schedule.table.name
@ -61,10 +61,11 @@ final class ScheduleViewModel: ObservableObject {
}
}
} else {
for groupName in nameGroups {
let groupNames = Array(self.nameToHtml.keys)
for groupName in groupNames {
let schedule = try await NetworkManager.shared.getSchedule(groupName)
let numberHTML = schedule.table.group
self.numbersNTMLGroups.append(numberHTML)
self.nameToHtml[groupName] = numberHTML
let table = schedule.table.table
self.week = schedule.table.week
@ -156,33 +157,19 @@ final class ScheduleViewModel: ObservableObject {
}
}
func updateArrayOfGroups() {
self.nameGroups.removeAll()
self.numbersNTMLGroups.removeAll()
let group1 = UserDefaults.standard.string(forKey: "group")
let group2 = UserDefaults.standard.string(forKey: "group2")
let group3 = UserDefaults.standard.string(forKey: "group3")
let vpk1 = UserDefaults.standard.string(forKey: "vpk1")
let vpk2 = UserDefaults.standard.string(forKey: "vpk2")
let vpk3 = UserDefaults.standard.string(forKey: "vpk3")
if let nameGroup1 = group1, nameGroup1 != "" {
self.nameGroups.append(nameGroup1)
func removeFromSchedule(group: String) {
self.nameToHtml[group] = nil
for i in classesGroups.indices {
// Сначала находим индексы элементов для удаления
let indicesToRemove = classesGroups[i].indices.filter { j in
classesGroups[i][j].group.lowercased() == group.lowercased()
}
// Удаляем элементы в обратном порядке, чтобы индексы оставались корректными
for j in indicesToRemove.reversed() {
classesGroups[i].remove(at: j)
}
}
if let nameGroup2 = group2, nameGroup2 != "" {
self.nameGroups.append(nameGroup2)
}
if let nameGroup3 = group3, nameGroup3 != "" {
self.nameGroups.append(nameGroup3)
}
if let nameVPK1 = vpk1, nameVPK1 != "" {
self.nameGroups.append(nameVPK1)
}
if let nameVPK2 = vpk2, nameVPK2 != "" {
self.nameGroups.append(nameVPK2)
}
if let nameVPK3 = vpk3, nameVPK3 != "" {
self.nameGroups.append(nameVPK3)
}
self.nameGroups.append(self.searchingGroup)
}
}