import UIKit import Foundation import GeneralUtils class VcListPerson: UIViewController, IVCLoadDataTableViewUIThread { @IBOutlet weak var vTopLogo: VTopLogo! @IBOutlet weak var tableView: UITableViewLoadDataFromUIThread! @IBOutlet weak var tvMax: UILabel! @IBOutlet weak var tvCurrent: UILabel! @IBOutlet weak var tvRemaining: UILabel! static func openController(_ viewController: UIViewController) { let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) let vcOpen = storyboard.instantiateViewController(withIdentifier: "VcListPerson") as! VcListPerson viewController.present(vcOpen, animated: true, completion: nil) } override func viewDidLoad() { super.viewDidLoad() vTopLogo.leftBtnClick = { self.dismiss(animated: true, completion: nil) } tableView.emptyText = LocalizedString("list_empty") tableView.initAndLoadData(self) } @IBAction func btnAddClick(_ sender: Any) { VCAddPerson.openController(self, tableView: self.tableView) } func loadDataOnUI(complete: @escaping ([Any]?) -> ()) { NetWorkUtils.excuteHttpGet(urlStr: Constants.PathManager.ROOT_SERVER + "api/worker/get_by_user_add/" + getIDWork(), complete: { (response, errorText) in guard let response = response else { CommonUtils.excuteOnMainThread({ complete(nil) }) return false; } let json = JSON.parse(response); if let isSuccess = json["iSuccess"].bool, isSuccess{ let arrayValue = json["data"].arrayValue; var listPerson = [Person]() for item in arrayValue { if let rawString = item.rawString(), let person = Mapper().map(JSONString: rawString) { listPerson.append(person); } } CommonUtils.excuteOnMainThread({ complete(listPerson) }) return true; } else { CommonUtils.excuteOnMainThread({ complete(nil) }) return false; } }); } func jsonToString(_ json: Any?) -> String? { do { let data1 = try JSONSerialization.data(withJSONObject: json, options: JSONSerialization.WritingOptions.prettyPrinted) // first of all convert json to the data let convertedString = String(data: data1, encoding: String.Encoding.utf8) // the data will be converted to the string return convertedString; } catch let myJSONError { return nil; } } func getAllCell() -> [BaseCell] { var baseCells: [BaseCell] = [BaseCell](); baseCells.append(BaseCell(type: 0, identifier: "CellPerson")) return baseCells } func getTypeOfData(baseobj: Any) -> Int { return 0 } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { } override var prefersStatusBarHidden: Bool { return true } }