Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.20 KB | None | 0 0
  1. //
  2. // Zone.swift
  3. // Plati
  4. //
  5. // Created by Domagoj Kopić on 31/03/2017.
  6. // Copyright © 2017 Domagoj Kopić. All rights reserved.
  7. //
  8.  
  9. import Foundation
  10. import Firebase
  11. import SwiftyJSON
  12.  
  13. let baseUnitCol = "baseUnit"
  14. let colorCol = "color"
  15. let maxParkingCol = "maxParkingTime"
  16. let nameCol = "name"
  17. let parkingTime1Col = "parkingTime1"
  18. let parkingTime2Col = "parkingTime2"
  19. let parkingTime3Col = "parkingTime3"
  20. let priceCol = "price"
  21. let smsCol = "smsCode"
  22. let streetsCol = "streets"
  23. let areaCol = "area"
  24.  
  25. class Zone {
  26. var baseUnit: Int?
  27. var color: String?
  28. var maxParkingTime: Int?
  29. var name: String?
  30. var parkingTime1: String?
  31. var parkingTime2: String?
  32. var parkingTime3: String?
  33. var price: Double?
  34. var smsCode: String?
  35. var streets: String?
  36. var areaList: [Area]
  37.  
  38. init(snapshot: FIRDataSnapshot) {
  39. let value = snapshot.value as! [String: AnyObject]
  40.  
  41. if let u = value[baseUnitCol] as? Int {
  42. baseUnit = u
  43. }
  44.  
  45. if let c = value[colorCol] as? String {
  46. color = c
  47. }
  48.  
  49. if let m = value[maxParkingCol] as? Int {
  50. maxParkingTime = m
  51. }
  52.  
  53. if let n = value[nameCol] as? String {
  54. name = n
  55. }
  56.  
  57. if let p = value[priceCol] as? Double {
  58. price = p
  59. }
  60.  
  61. if let s = value[smsCol] as? String {
  62. smsCode = s
  63. }
  64.  
  65. if let s = value[streetsCol] as? String {
  66. streets = s
  67. }
  68.  
  69. areaList = [Area]()
  70.  
  71. if snapshot.hasChild(areaCol) {
  72. let areaListSnapshot = snapshot.childSnapshot(forPath: areaCol)
  73.  
  74. for item in areaListSnapshot.children {
  75. areaList.append(Area(snapshot: item as! FIRDataSnapshot))
  76. }
  77. }
  78.  
  79. if snapshot.hasChild("details") {
  80. let detailsSnapshot = snapshot.childSnapshot(forPath: "details")
  81. let formatter = DateFormatter()
  82. formatter.dateFormat = "d.M."
  83.  
  84. for item in detailsSnapshot.children {
  85. let snapshot = item as! FIRDataSnapshot
  86. let value = snapshot.value as! [String: AnyObject]
  87.  
  88. let start = value["dateStart"] as! String
  89. let end = value["dateEnd"] as! String
  90. var dateStart = formatter.date(from: start)
  91. var dateEnd = formatter.date(from: end)
  92.  
  93. let calendar = Calendar.current
  94. var startComponents = DateComponents()
  95. let date = Date()
  96.  
  97. startComponents.year = date.getYear()
  98. startComponents.day = dateStart!.getDayOfMonth()
  99. startComponents.month = dateStart!.getMonth()
  100. dateStart = calendar.date(from: startComponents)
  101.  
  102. var endComponents = DateComponents()
  103. endComponents.year = date.getYear()
  104. endComponents.day = dateEnd!.getDayOfMonth()
  105. endComponents.month = dateEnd!.getMonth()
  106. dateEnd = calendar.date(from: endComponents)
  107.  
  108. if dateStart! > dateEnd! {
  109. let temp = dateStart
  110. dateStart = dateEnd
  111. dateEnd = temp
  112. endComponents.year = date.getYear() - 1
  113. dateStart = calendar.date(from: endComponents)
  114. }
  115.  
  116. if date >= dateStart! && date <= dateEnd! {
  117. setParkingTime(value)
  118. }
  119. }
  120. }
  121. else {
  122. setParkingTime(value)
  123. }
  124. }
  125.  
  126. func setParkingTime(_ value: [String: Any]) {
  127. parkingTime1 = value[parkingTime1Col] as? String
  128. parkingTime2 = value[parkingTime2Col] as? String
  129. parkingTime3 = value[parkingTime3Col] as? String
  130. }
  131.  
  132. init(dict: [String: Any]) {
  133. baseUnit = dict[baseUnitCol] as? Int
  134. color = dict[colorCol] as? String
  135. maxParkingTime = dict[maxParkingCol] as? Int
  136. name = dict[nameCol] as? String
  137. parkingTime1 = dict[parkingTime1Col] as? String
  138. parkingTime2 = dict[parkingTime2Col] as? String
  139. parkingTime3 = dict[parkingTime3Col] as? String
  140. price = dict[priceCol] as? Double
  141. smsCode = dict[smsCol] as? String
  142. streets = dict[streetsCol] as? String
  143. areaList = [Area]()
  144. }
  145.  
  146. func toDict() -> [String: Any]! {
  147. var dict = [String: Any]()
  148. dict[baseUnitCol] = baseUnit
  149. dict[colorCol] = color
  150. dict[maxParkingCol] = maxParkingTime
  151. dict[nameCol] = name
  152. dict[parkingTime1Col] = parkingTime1
  153. dict[parkingTime2Col] = parkingTime2
  154. dict[parkingTime3Col] = parkingTime3
  155. dict[priceCol] = price
  156. dict[smsCol] = smsCode
  157. dict[streetsCol] = streets
  158.  
  159. return dict
  160. }
  161.  
  162. func toJsonString() -> String {
  163. let json = JSON(toDict())
  164. return json.rawString()!
  165. }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement