Rev 23 | Rev 25 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
//// NotificationListViewModel.swift// twogetskills//// Created by Efrain Yanez Recanatini on 7/31/22.//import Foundationimport SwiftUIstruct UserNotificationGroupModel :Identifiable {var id : String = UUID().uuidStringvar label : String = ""var notifications = [UserNotificationModel]()}class NotificationListViewModel: ObservableObject{@Published public var groups = [UserNotificationGroupModel]()private let appData = AppData.sharedInstanceinit() {fetchAll()}func fetchAll(){let now = Date()let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: now)!let dateFormatter = DateFormatter()dateFormatter.dateFormat = Constants.FORMAT_DATE_YMDlet sToday = dateFormatter.string(from: now)let sYesterday = dateFormatter.string(from: yesterday)let showFormatter = DateFormatter()showFormatter.dateFormat = Constants.FORMAT_DATE_DMYgroups.removeAll()var userNotificationGroupModel : UserNotificationGroupModellet userNotificationDao = UserNotificationDao.sharedInstancelet dates = userNotificationDao.selectAllDistinctDateByUserUuid(userUuid: appData.userUuid)var i : Int = 0var d : Datevar sDate : Stringwhile i < dates.count {sDate = dates[i]userNotificationGroupModel = UserNotificationGroupModel()switch sDate{case sToday :userNotificationGroupModel.label = Config.LANG_COMMON_TODAYbreakcase sYesterday :userNotificationGroupModel.label = Config.LANG_COMMON_YESTERDAYbreakdefault :d = dateFormatter.date(from: sDate) ?? Date()userNotificationGroupModel.label = showFormatter.string(from: d)break}userNotificationGroupModel.notifications = userNotificationDao.selectAllByUserUuidAndDate(userUuid: appData.userUuid, date: sDate)groups.append(userNotificationGroupModel)i += 1}}public func removeItem(id: Int) {let userNotificationDao = UserNotificationDao.sharedInstanceuserNotificationDao.remove(id: id)var i : Int = 0while i < groups.count {groups[i].notifications.remove(at: groups[i].notifications.firstIndex(where: { $0.id == id })!)i += 1}i = groups.count - 1while i > 0 {if groups[i].notifications.count == 0 {groups.remove(at: i)}i -= 1}}}