Init event, leaderboard and competitor in regatta factory method

This commit is contained in:
Raimund Wege committed 2016-09-15 10:20:19 +02:00
1 parent 4a7d437b02
commit cfb9e3279f
3 files changed
+13 -12

No files matched your search

@@ -86,13 +86,7 @@ class CheckInController : NSObject {
private func postCheckInSuccess(regattaData: RegattaData, completion: (withSuccess: Bool) -> Void) {
let regatta = CoreDataManager.sharedManager.fetchRegatta(regattaData) ?? CoreDataManager.sharedManager.newRegatta()
regatta.updateWirhRegattaData(regattaData)
let event = regatta.event ?? CoreDataManager.sharedManager.newEvent(regatta)
event.updateWithEventData(regattaData.eventData)
let leaderboard = regatta.leaderboard ?? CoreDataManager.sharedManager.newLeaderboard(regatta)
leaderboard.updateWithLeaderboardData(regattaData.leaderboardData)
let competitor = regatta.competitor ?? CoreDataManager.sharedManager.newCompetitor(regatta)
competitor.updateWithCompetitorData(regattaData.competitorData)
regatta.updateWithRegattaData(regattaData)
CoreDataManager.sharedManager.saveContext()
checkInDidFinish(withSuccess: true, completion: completion)
}
@@ -70,22 +70,26 @@ public class CoreDataManager: NSObject {
// MARK: - Insert
func newRegatta() -> Regatta {
return NSEntityDescription.insertNewObjectForEntityForName(Entities.Regatta.rawValue, inManagedObjectContext: managedObjectContext) as! Regatta
let regatta = NSEntityDescription.insertNewObjectForEntityForName(Entities.Regatta.rawValue, inManagedObjectContext: managedObjectContext) as! Regatta
regatta.event = newEvent(regatta)
regatta.leaderboard = newLeaderboard(regatta)
regatta.competitor = newCompetitor(regatta)
return regatta
}
func newEvent(regatta: Regatta) -> Event {
private func newEvent(regatta: Regatta) -> Event {
let event = NSEntityDescription.insertNewObjectForEntityForName(Entities.Event.rawValue, inManagedObjectContext: managedObjectContext) as! Event
event.regatta = regatta
return event
}
func newLeaderboard(regatta: Regatta) -> Leaderboard {
private func newLeaderboard(regatta: Regatta) -> Leaderboard {
let leaderboard = NSEntityDescription.insertNewObjectForEntityForName(Entities.Leaderboard.rawValue, inManagedObjectContext: managedObjectContext) as! Leaderboard
leaderboard.regatta = regatta
return leaderboard
}
func newCompetitor(regatta: Regatta) -> Competitor {
private func newCompetitor(regatta: Regatta) -> Competitor {
let competitor = NSEntityDescription.insertNewObjectForEntityForName(Entities.Competitor.rawValue, inManagedObjectContext: managedObjectContext) as! Competitor
competitor.regatta = regatta
return competitor
@@ -12,10 +12,13 @@ import CoreData
@objc(Regatta)
class Regatta: NSManagedObject {
func updateWirhRegattaData(regattaData: RegattaData) {
func updateWithRegattaData(regattaData: RegattaData) {
serverURL = regattaData.serverURL
teamImageURL = regattaData.teamImageURL
teamImageRetry = false
event.updateWithEventData(regattaData.eventData)
leaderboard.updateWithLeaderboardData(regattaData.leaderboardData)
competitor.updateWithCompetitorData(regattaData.competitorData)
}
func eventURL() -> NSURL? {