mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-25 21:43:49 +00:00
Init event, leaderboard and competitor in regatta factory method
This commit is contained in:
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? {
|
||||
|
||||
Reference in new issue
Block a user