diff --git a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.pbxproj b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.pbxproj index 78d1b2dac3c5231ca23ada70463e24a74874c7af..f936104f7cb6eb770606536cb3fd8e4efdb55e0d 100644 --- a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.pbxproj +++ b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.pbxproj @@ -8,14 +8,13 @@ /* Begin PBXBuildFile section */ 4D2793F621AC706D008917B9 /* Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D2793F521AC706D008917B9 /* Event.swift */; }; - 4D2793FF21AC7126008917B9 /* EventsTable.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4D2793FE21AC7126008917B9 /* EventsTable.storyboard */; }; - 4D27940121AC7197008917B9 /* EventsTableTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27940021AC7197008917B9 /* EventsTableTableViewController.swift */; }; 4D27940321AC71DA008917B9 /* ListViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27940221AC71DA008917B9 /* ListViewDataSource.swift */; }; 4D27942621ACE6C5008917B9 /* SQLite.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D27941721ACE690008917B9 /* SQLite.framework */; }; 4D27942721ACE6C5008917B9 /* SQLite.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4D27941721ACE690008917B9 /* SQLite.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4D27942C21ACEFCD008917B9 /* SQLite_Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27942B21ACEFCD008917B9 /* SQLite_Example.swift */; }; 4D27942F21ADEC2E008917B9 /* EventSingleDayCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27942E21ADEC2E008917B9 /* EventSingleDayCell.swift */; }; 4D27B29321B7201C001BE911 /* ViewEventViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27B29221B7201C001BE911 /* ViewEventViewController.swift */; }; + 4D27B29C21B98A34001BE911 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D27B29B21B98A34001BE911 /* DatabaseManager.swift */; }; 4D618EBF21AB6E0F006814C0 /* ScheduleControllerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D618EBE21AB6E0F006814C0 /* ScheduleControllerViewController.swift */; }; 4D618EC121AB7707006814C0 /* DatePopupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D618EC021AB7707006814C0 /* DatePopupViewController.swift */; }; 4D618EC321AB77DE006814C0 /* AddEventViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D618EC221AB77DE006814C0 /* AddEventViewController.swift */; }; @@ -104,13 +103,12 @@ /* Begin PBXFileReference section */ 4D2793F521AC706D008917B9 /* Event.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Event.swift; sourceTree = "<group>"; }; - 4D2793FE21AC7126008917B9 /* EventsTable.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = EventsTable.storyboard; sourceTree = "<group>"; }; - 4D27940021AC7197008917B9 /* EventsTableTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventsTableTableViewController.swift; sourceTree = "<group>"; }; 4D27940221AC71DA008917B9 /* ListViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListViewDataSource.swift; sourceTree = "<group>"; }; 4D27940521ACE68F008917B9 /* SQLite.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SQLite.xcodeproj; path = "../../../../../../Downloads/SQLite.swift-master/SQLite.xcodeproj"; sourceTree = "<group>"; }; 4D27942B21ACEFCD008917B9 /* SQLite_Example.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SQLite_Example.swift; sourceTree = "<group>"; }; 4D27942E21ADEC2E008917B9 /* EventSingleDayCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventSingleDayCell.swift; sourceTree = "<group>"; }; 4D27B29221B7201C001BE911 /* ViewEventViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewEventViewController.swift; sourceTree = "<group>"; }; + 4D27B29B21B98A34001BE911 /* DatabaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = "<group>"; }; 4D618EBE21AB6E0F006814C0 /* ScheduleControllerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduleControllerViewController.swift; sourceTree = "<group>"; }; 4D618EC021AB7707006814C0 /* DatePopupViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePopupViewController.swift; sourceTree = "<group>"; }; 4D618EC221AB77DE006814C0 /* AddEventViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddEventViewController.swift; sourceTree = "<group>"; }; @@ -189,6 +187,7 @@ 4DECCE1821A8C71E006CA671 /* Info.plist */, 4D618EC721AB828C006814C0 /* EventsController.storyboard */, 4D618EBE21AB6E0F006814C0 /* ScheduleControllerViewController.swift */, + 4D27B29B21B98A34001BE911 /* DatabaseManager.swift */, 4D618EC221AB77DE006814C0 /* AddEventViewController.swift */, 4D27B29221B7201C001BE911 /* ViewEventViewController.swift */, 4D27942E21ADEC2E008917B9 /* EventSingleDayCell.swift */, @@ -197,8 +196,6 @@ 4D2793F521AC706D008917B9 /* Event.swift */, 4DF5C27421ABA62D00DF3B9B /* NotificationNameExtention.swift */, 4D27940221AC71DA008917B9 /* ListViewDataSource.swift */, - 4D2793FE21AC7126008917B9 /* EventsTable.storyboard */, - 4D27940021AC7197008917B9 /* EventsTableTableViewController.swift */, ); path = MoreFreeTime; sourceTree = "<group>"; @@ -321,7 +318,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4D2793FF21AC7126008917B9 /* EventsTable.storyboard in Resources */, 4D618EC921AB828C006814C0 /* EventsController.storyboard in Resources */, 4DECCE1721A8C71E006CA671 /* LaunchScreen.storyboard in Resources */, 4D618EC621AB820C006814C0 /* DatePopup.storyboard in Resources */, @@ -343,9 +339,9 @@ 4DF5C27521ABA62D00DF3B9B /* NotificationNameExtention.swift in Sources */, 4D27B29321B7201C001BE911 /* ViewEventViewController.swift in Sources */, 4D27940321AC71DA008917B9 /* ListViewDataSource.swift in Sources */, - 4D27940121AC7197008917B9 /* EventsTableTableViewController.swift in Sources */, 4D618EC121AB7707006814C0 /* DatePopupViewController.swift in Sources */, 4D618EBF21AB6E0F006814C0 /* ScheduleControllerViewController.swift in Sources */, + 4D27B29C21B98A34001BE911 /* DatabaseManager.swift in Sources */, 4D27942F21ADEC2E008917B9 /* EventSingleDayCell.swift in Sources */, 4D2793F621AC706D008917B9 /* Event.swift in Sources */, 4DECCE0D21A8C71B006CA671 /* AppDelegate.swift in Sources */, diff --git a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcuserdata/diesel.xcuserdatad/UserInterfaceState.xcuserstate b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcuserdata/diesel.xcuserdatad/UserInterfaceState.xcuserstate index 6dae29041ff9d253b5e4b75d0ca32c788ad5fad3..f4650eab8f9e975ba6b4d680f226af63695307e5 100644 Binary files a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcuserdata/diesel.xcuserdatad/UserInterfaceState.xcuserstate and b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/project.xcworkspace/xcuserdata/diesel.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index b68497989d2024759b64d5fbc2d355d1615e0fe5..ea56f32cce28567aa615c511daa68711f1459bd5 100644 --- a/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Project/MoreFreeTime/MoreFreeTime.xcodeproj/xcuserdata/diesel.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -10,29 +10,13 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "MoreFreeTime/ScheduleControllerViewController.swift" - timestampString = "565652210.07946" + timestampString = "565808666.457788" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "173" - endingLineNumber = "173" - landmarkName = "deleteEvent()" - landmarkType = "7"> - </BreakpointContent> - </BreakpointProxy> - <BreakpointProxy - BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> - <BreakpointContent - shouldBeEnabled = "No" - ignoreCount = "0" - continueAfterRunningActions = "No" - filePath = "MoreFreeTime/ScheduleControllerViewController.swift" - timestampString = "565652210.079531" - startingColumnNumber = "9223372036854775807" - endingColumnNumber = "9223372036854775807" - startingLineNumber = "261" - endingLineNumber = "261" - landmarkName = "unknown" - landmarkType = "0"> + startingLineNumber = "171" + endingLineNumber = "171" + landmarkName = "ScheduleControllerViewController" + landmarkType = "21"> </BreakpointContent> </BreakpointProxy> <BreakpointProxy @@ -42,12 +26,12 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "MoreFreeTime/ScheduleControllerViewController.swift" - timestampString = "565652210.079582" + timestampString = "565808666.458284" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "254" - endingLineNumber = "254" - landmarkName = "longPress(_:)" + startingLineNumber = "164" + endingLineNumber = "164" + landmarkName = "tableView(_:didSelectRowAt:)" landmarkType = "7"> </BreakpointContent> </BreakpointProxy> @@ -58,13 +42,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "MoreFreeTime/ScheduleControllerViewController.swift" - timestampString = "565652210.079627" + timestampString = "565808666.4586149" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "262" - endingLineNumber = "262" - landmarkName = "ScheduleControllerViewController" - landmarkType = "21"> + startingLineNumber = "172" + endingLineNumber = "172"> </BreakpointContent> </BreakpointProxy> <BreakpointProxy diff --git a/Project/MoreFreeTime/MoreFreeTime/DatabaseManager.swift b/Project/MoreFreeTime/MoreFreeTime/DatabaseManager.swift new file mode 100644 index 0000000000000000000000000000000000000000..1d25e1ec5ec890454e40512f4c28128bd2450c80 --- /dev/null +++ b/Project/MoreFreeTime/MoreFreeTime/DatabaseManager.swift @@ -0,0 +1,119 @@ +// +// DatabaseManager.swift +// MoreFreeTime +// +// Created by Dylan Zeller on 12/6/18. +// Copyright © 2018 Dylan Zeller. All rights reserved. +// + +import Foundation +import SQLite +class DatabaseManager { + var database : Connection! + final var databaseName : String = "MoreFreeTime" + final var databaseExt : String = "sqlite3" + + let eventsTable = Table("events") + let id = Expression<Int>("id") + let eventTitle = Expression<String>("title") + let eventStartDate = Expression<String>("startDate") + let eventStartTime = Expression<String>("startTime") + let eventEndDate = Expression<String>("endDate") + let eventEndTime = Expression<String>("endTime") + let eventLocation = Expression<String>("location") + let eventDescription = Expression<String?>("description") + + init() { + do { + let docDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) + let fileUrl = docDirectory.appendingPathComponent(databaseName).appendingPathExtension(databaseExt) + let database = try Connection(fileUrl.path) + self.database = database + } catch { + print(error) + } + createTable() + } + + func createTable() { + let createTable = self.eventsTable.create { (table) in + table.column(self.id, primaryKey: true) + table.column(self.eventTitle) + table.column(self.eventStartDate) + table.column(self.eventStartTime) + table.column(self.eventEndDate) + table.column(self.eventEndTime) + table.column(self.eventLocation) + table.column(self.eventDescription) + } + do { + try self.database.run(createTable) + } catch { + print(error) + } + } + + func deleteTable() { + let deleteTable = self.eventsTable.delete() + do { + try self.database.run(deleteTable) + } catch { + print(error) + } + } + + func deleteEvent(id : Int) { + let event = self.eventsTable.filter(self.id == id) + let deleteEvent = event.delete() + do { + try self.database.run(deleteEvent) + } catch { + print(error) + } } + + func insertEvent(e : Event) { + let insertEvent = self.eventsTable.insert(self.eventTitle <- e.title, self.eventStartDate <- e.startDate, self.eventStartTime <- e.startTime, self.eventEndDate <- e.endDate, self.eventEndTime <- e.endTime, self.eventLocation <- e.location, self.eventDescription <- e.description) + do { + try self.database.run(insertEvent) + } catch { + print(error) + } + } + + func updateEvent(e : Event) { + let event = self.eventsTable.filter(self.id == e.id) + let updateEvent = event.update(self.eventTitle <- e.title, self.eventStartDate <- e.startDate, self.eventStartTime <- e.startTime, self.eventEndDate <- e.endDate, self.eventEndTime <- e.endTime, self.eventLocation <- e.location, self.eventDescription <- e.description) + do { + try self.database.run(updateEvent) + } catch { + print(error) + } + } + + func fetchEvents(currentShortDate : String) -> [Event] { + var todaysEvents : [Event] = [] + do { + let dbEvents = try self.database.prepare(eventsTable) + for dbEvent in dbEvents { + if dbEvent[self.eventStartDate].isEqual(currentShortDate) { + let event = Event(title: dbEvent[self.eventTitle], startDate: dbEvent[self.eventStartDate], startTime: dbEvent[self.eventStartTime], endDate: dbEvent[self.eventEndDate], endTime: dbEvent[self.eventEndTime], location: dbEvent[self.eventLocation], description: dbEvent[self.eventDescription]!, id: dbEvent[self.id]) + todaysEvents.append(event) + } + } + } catch { + print(error) + } + return todaysEvents + } + + func listAllEvents() { + do { + let events = try self.database.prepare(eventsTable) + for event in events { + print("eventId: \(event[self.id]), title: \(event[self.eventTitle]), startDate: \(event[self.eventStartDate]), startTime: \(event[self.eventStartTime]), endDate: \(event[self.eventEndDate]), endTime: \(event[self.eventEndTime]),location: \(event[self.eventLocation]), description: \(event[self.eventDescription]!),") + } + } catch { + print(error) + } + } +} diff --git a/Project/MoreFreeTime/MoreFreeTime/EventsTable.storyboard b/Project/MoreFreeTime/MoreFreeTime/EventsTable.storyboard deleted file mode 100644 index 020fbdbcb933c666c80d5439bc3a2f2d693174d5..0000000000000000000000000000000000000000 --- a/Project/MoreFreeTime/MoreFreeTime/EventsTable.storyboard +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="KDj-af-CHj"> - <device id="retina4_7" orientation="portrait"> - <adaptation id="fullscreen"/> - </device> - <dependencies> - <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/> - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> - </dependencies> - <scenes> - <!--Table View Controller--> - <scene sceneID="4aD-pt-cCU"> - <objects> - <tableViewController id="KDj-af-CHj" sceneMemberID="viewController"> - <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="FKk-cx-bsw"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> - <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> - <prototypes> - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="vC3-UJ-Lb8"> - <rect key="frame" x="0.0" y="55.5" width="375" height="44"/> - <autoresizingMask key="autoresizingMask"/> - <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="vC3-UJ-Lb8" id="1Jo-eW-uRU"> - <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/> - <autoresizingMask key="autoresizingMask"/> - </tableViewCellContentView> - </tableViewCell> - </prototypes> - <connections> - <outlet property="dataSource" destination="KDj-af-CHj" id="2qQ-4L-wnG"/> - <outlet property="delegate" destination="KDj-af-CHj" id="VY4-Tu-Va7"/> - </connections> - </tableView> - </tableViewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="2II-wF-FQL" userLabel="First Responder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="-201" y="145"/> - </scene> - </scenes> -</document> diff --git a/Project/MoreFreeTime/MoreFreeTime/ScheduleControllerViewController.swift b/Project/MoreFreeTime/MoreFreeTime/ScheduleControllerViewController.swift index 4885b5017b30b5a4338f702e77454c70232186c0..ac81aa8947fe37c8f90b8b09523ad9e3de712687 100644 --- a/Project/MoreFreeTime/MoreFreeTime/ScheduleControllerViewController.swift +++ b/Project/MoreFreeTime/MoreFreeTime/ScheduleControllerViewController.swift @@ -10,20 +10,8 @@ import UIKit import SQLite class ScheduleControllerViewController: UIViewController/*, UITableViewDelegate, UITableViewDataSource*/ { - var database : Connection! - - let eventsTable = Table("events") - let id = Expression<Int>("id") - let eventTitle = Expression<String>("title") - let eventStartDate = Expression<String>("startDate") - let eventStartTime = Expression<String>("startTime") - let eventEndDate = Expression<String>("endDate") - let eventEndTime = Expression<String>("endTime") - let eventLocation = Expression<String>("location") - let eventDescription = Expression<String?>("description") + var database : DatabaseManager! - - @IBOutlet weak var tableView: UITableView! @IBOutlet weak var dateLabel: UILabel! @@ -33,7 +21,6 @@ class ScheduleControllerViewController: UIViewController/*, UITableViewDelegate, var deleteEventObserver : NSObjectProtocol? var currentDate : Date = Date() - var currentShortDate : String? var newEvent : Event? var events : [Event] = [] @@ -54,20 +41,10 @@ class ScheduleControllerViewController: UIViewController/*, UITableViewDelegate, override func viewDidLoad() { super.viewDidLoad() // This will open and set the global database - do { - let docDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) - let fileUrl = docDirectory.appendingPathComponent("testing1").appendingPathExtension("sqlite3") - let database = try Connection(fileUrl.path) - self.database = database - } catch { - print(error) - } + database = DatabaseManager() addObservers() - //deleteTable() - createTable() - currentShortDate = formattedShortDate dateLabel.text = formattedDate tableView.delegate = self @@ -85,7 +62,6 @@ class ScheduleControllerViewController: UIViewController/*, UITableViewDelegate, (notification) in let dateVc = notification.object as! DatePopupViewController self.currentDate = dateVc.date self.dateLabel.text = dateVc.formattedDateLong - self.currentShortDate = dateVc.formattedDate self.getTodaysEvents() } newEventObserver = NotificationCenter.default.addObserver(forName: .saveNewEvent, object: nil, queue: OperationQueue.main) { @@ -102,23 +78,10 @@ class ScheduleControllerViewController: UIViewController/*, UITableViewDelegate, (notification) in let deleteEventId = notification.object as! Int self.deleteEvent(id : deleteEventId) } - print("added observer") } func getTodaysEvents() { - var todaysEvents : [Event] = [] - do { - let dbEvents = try self.database.prepare(eventsTable) - for dbEvent in dbEvents { - if dbEvent[self.eventStartDate].isEqual(currentShortDate) { - let event = Event(title: dbEvent[self.eventTitle], startDate: dbEvent[self.eventStartDate], startTime: dbEvent[self.eventStartTime], endDate: dbEvent[self.eventEndDate], endTime: dbEvent[self.eventEndTime], location: dbEvent[self.eventLocation], description: dbEvent[self.eventDescription]!, id: dbEvent[self.id]) - todaysEvents.append(event) - } - } - } catch { - print(error) - } - self.events = todaysEvents + self.events = database.fetchEvents(currentShortDate: formattedShortDate) self.sortEvents() self.tableView.reloadData() } @@ -127,74 +90,21 @@ class ScheduleControllerViewController: UIViewController/*, UITableViewDelegate, events = events.sorted(by: { $0 < $1 }) } - func createTable() { - let createTable = self.eventsTable.create { (table) in - table.column(self.id, primaryKey: true) - table.column(self.eventTitle) - table.column(self.eventStartDate) - table.column(self.eventStartTime) - table.column(self.eventEndDate) - table.column(self.eventEndTime) - table.column(self.eventLocation) - table.column(self.eventDescription) - } - - do { - try self.database.run(createTable) - print("Created Table") - } catch { - print(error) - } - } - - func deleteTable() { - let deleteTable = self.eventsTable.delete() - do { - try self.database.run(deleteTable) - } catch { - print(error) - } - } - func deleteEvent(id : Int) { - let event = self.eventsTable.filter(self.id == id) - let deleteEvent = event.delete() - do { - try self.database.run(deleteEvent) - } catch { - print(error) - } + database.deleteEvent(id: id) + self.getTodaysEvents() } func insertEvent(e : Event) { - let insertEvent = self.eventsTable.insert(self.eventTitle <- e.title, self.eventStartDate <- e.startDate, self.eventStartTime <- e.startTime, self.eventEndDate <- e.endDate, self.eventEndTime <- e.endTime, self.eventLocation <- e.location, self.eventDescription <- e.description) - do { - try self.database.run(insertEvent) - print("Inserted Event") - } catch { - print("Error") - } + database.insertEvent(e: e) } func updateEvent(e : Event) { - let event = self.eventsTable.filter(self.id == e.id) - let updateEvent = event.update(self.eventTitle <- e.title, self.eventStartDate <- e.startDate, self.eventStartTime <- e.startTime, self.eventEndDate <- e.endDate, self.eventEndTime <- e.endTime, self.eventLocation <- e.location, self.eventDescription <- e.description) - do { - try self.database.run(updateEvent) - } catch { - print(error) - } + database.updateEvent(e: e) } func listEvents() { - do { - let events = try self.database.prepare(eventsTable) - for event in events { - print("eventId: \(event[self.id]), title: \(event[self.eventTitle]), startDate: \(event[self.eventStartDate]), startTime: \(event[self.eventStartTime]), endDate: \(event[self.eventEndDate]), endTime: \(event[self.eventEndTime]),location: \(event[self.eventLocation]), description: \(event[self.eventDescription]!),") - } - } catch { - print(error) - } + let allEventsString = database.listAllEvents() } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { @@ -213,7 +123,6 @@ class ScheduleControllerViewController: UIViewController/*, UITableViewDelegate, } if let newEventObserver = newEventObserver { NotificationCenter.default.removeObserver(newEventObserver) - print("Event Observer Deallocated") } }