2 // KenzoMarkCommand.swift
5 // Created by Hori,Masaki on 2017/01/12.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 final class KenzoMarkCommand: JSONCommand {
13 struct KenzoDockInfo {
23 override func execute() {
25 let store = LocalDataStore.oneTimeEditor()
27 self.executeInContext(localStore: store)
31 private func executeInContext(localStore: LocalDataStore) {
33 guard let kdockId = parameter["api_kdock_id"].int else {
35 Logger.shared.log("api_kdock_id is wrong")
40 let store = ServerDataStore.default
41 guard let kenzoDock = store.sync(execute: { store.kenzoDock(by: kdockId) }) else {
43 Logger.shared.log("KenzoDock is not found")
47 let kenzoDockInfo = store.sync {
48 KenzoDockInfo(dockId: kenzoDock.id,
49 shipId: kenzoDock.created_ship_id,
50 fuel: kenzoDock.item1,
51 bull: kenzoDock.item2,
52 steel: kenzoDock.item3,
53 bauxite: kenzoDock.item4,
54 kaihatusizai: kenzoDock.item5)
56 guard let flagShip = store.sync(execute: { store.masterShip(by: kenzoDock.created_ship_id) }) else {
58 Logger.shared.log("MasterShip is not found")
63 guard let new = localStore.createKenzoHistory() else {
65 Logger.shared.log("Can not create KenzoHistory")
70 new.name = store.sync { flagShip.name }
71 new.sTypeId = store.sync { flagShip.stype.id }
72 new.fuel = kenzoDockInfo.fuel
73 new.bull = kenzoDockInfo.bull
74 new.steel = kenzoDockInfo.steel
75 new.bauxite = kenzoDockInfo.bauxite
76 new.kaihatusizai = kenzoDockInfo.kaihatusizai
78 (new.flagShipLv, new.flagShipName, new.commanderLv) = markedValues(docInfo: kenzoDockInfo, in: localStore)
81 private func markedValues(docInfo: KenzoDockInfo, in store: LocalDataStore) -> (Int, String, Int) {
83 if let kenzoMark = store.kenzoMark(docInfo: docInfo) {
85 return (kenzoMark.flagShipLv, kenzoMark.flagShipName, kenzoMark.commanderLv)