diff --git a/src/command/LoadRidersCommand.hx b/src/command/LoadRidersCommand.hx index c746ba8..9326b9c 100644 --- a/src/command/LoadRidersCommand.hx +++ b/src/command/LoadRidersCommand.hx @@ -1,5 +1,6 @@ package command; +import openfl.utils.Object; import t9.util.ColorTraces; import openfl.Vector; import vo.RiderVO; @@ -29,27 +30,80 @@ class LoadRidersCommand implements ICommand implements IResponder { public function result(rpcEvent:Dynamic):Void { // populate the riders DP in the model locator with the JSON results from the service call - /* - var riders:Array = cast(rpcEvent, ResultEvent).result; - model.ridersListDP = new ArrayCollection(riders); + /*var riders:Array = cast(rpcEvent, ResultEvent).result; + model.ridersListDP = new ArrayCollection(riders);*/ - traceGreen("ridersListDP.length --> " + model.ridersListDP.length); - */ + //trace(model.ridersListDP.get(5).firstName); + //traceGreen("ridersListDP.length --> " + model.ridersListDP.length); - var riders:Array = cast(rpcEvent, ResultEvent).result; + var data:Array = cast(rpcEvent, ResultEvent).result; + var riders:Array = []; + + //var arr:Array = [for (n in data) cast(n, RiderVO)]; + + /*for(v in data){ + //var rider:RiderVO = new RiderVO(); + //var id:Int = Std.parseInt(); + traceCyan(v[]); + + }*/ + + var riders:Array = []; + for (i in 0...data.length) { + var r:Object = data[i]; + + var id:Int = Std.parseInt(r.id); + var name:String = r.name; + var firstName:String = r.firstName; + var age:Int = Std.parseInt(r.age); + var lastLessonDate:Int = Std.parseInt(r.lastLessonDate); + var level:Int = Std.parseInt(r.level); + var credit:Int = Std.parseInt(r.credit); + var address:String = r.address; + var notes:String = r.notes; + var ffeLicence:Bool = stringToBool(r.ffeLicence); + var ffeLicenceValidityYear:Int = Std.parseInt(r.ffeLicenceValidityYear); + var ffeLicenceNumber:String = r.ffeLicenceNumber; + var legalGuardianName:String = r.legalGuardianName; + var legalGuardianFirstName:String = r.legalGuardianFirstName; + var legalGuardianRole:String = r.legalGuardianRole; + var legalGuardianPhoneNumber:String = r.legalGuardianPhoneNumber; + var legalGuardianEmail:String = r.legalGuardianEmail; + + var rider:RiderVO = new RiderVO(id, + name, + firstName, + age, + lastLessonDate, + level, credit, + address, + notes, + ffeLicence, + ffeLicenceValidityYear, + ffeLicenceNumber, + legalGuardianName, + legalGuardianFirstName, + legalGuardianRole, + legalGuardianPhoneNumber, + legalGuardianEmail + ); + riders.push(rider); + } + model.ridersListDP = new ArrayCollection(riders); + /*for (key => value in riders){ //ConfigValues.data[key] = value; traceMagenta(key + " / " + riders[key]); }*/ - var rac:ArrayCollection = new ArrayCollection(); + /*var rac:ArrayCollection = new ArrayCollection(); for (v in riders) { - var rider:RiderVO = cast v; - rac.add(rider); + //var rider:RiderVO = cast v; + rac.add(v); } - model.ridersListDP = rac; + model.ridersListDP = rac;*/ /* var data:DynamicAccess = Json.parse(cast(rpcEvent, ResultEvent).result); @@ -64,6 +118,11 @@ class LoadRidersCommand implements ICommand implements IResponder { } + private function stringToBool(str) { + var boolValue:Bool = (str == "true") ? true : false; + return boolValue; + } + // this is called when the delegate receives a fault from the service public function fault(rpcEvent:Dynamic):Void { // store an error message in the model locator diff --git a/src/view/RidersList.hx b/src/view/RidersList.hx index 3f1f0a2..288aefd 100644 --- a/src/view/RidersList.hx +++ b/src/view/RidersList.hx @@ -40,7 +40,7 @@ class RidersList extends ListView { //var className = Type.getClassName(Type.getClass(state)); //traceRed("Current class name = " + className); - var rider:RiderVO = cast state.data; + var rider:RiderVO = cast (state.data, RiderVO); itemRenderer.text = rider.firstName; itemRenderer.secondaryText = rider.name; diff --git a/src/vo/RiderVO.hx b/src/vo/RiderVO.hx index 170ee84..f8228af 100644 --- a/src/vo/RiderVO.hx +++ b/src/vo/RiderVO.hx @@ -18,27 +18,27 @@ class RiderVO { public var legalGuardianName:String; public var legalGuardianFirstName:String; public var legalGuardianRole:String; - public var legalGuardianPhoneNumber:Int; + public var legalGuardianPhoneNumber:String; public var legalGuardianEmail:String; - public function new(pId:Int = 0, - pName:String = "", - pFirstName:String = "", - pAge:Int = 0, - pLastLessonDate:Int, - pLevel:Int = 0, - pCredit:Int = 0, - pAddress:String = "", - pNotes:String = "", - pffeLicence:Bool = false, - pffeLicenceValidityYear:Int = 0, - pffeLicenceNumber:String = "", - pLegalGuardianName:String = "", - pLegalGuardianFirstName:String = "", - pLegalGuardianRole:String = "", - pLegalGuardianPhoneNumber:Int = 0, - pLegalGuardianEmail:String = "") { + public function new(?pId:Int = 0, + ?pName:String = "", + ?pFirstName:String = "", + ?pAge:Int = 0, + ?pLastLessonDate:Int, + ?pLevel:Int = 0, + ?pCredit:Int = 0, + ?pAddress:String = "", + ?pNotes:String = "", + ?pffeLicence:Bool = false, + ?pffeLicenceValidityYear:Int = 0, + ?pffeLicenceNumber:String = "", + ?pLegalGuardianName:String = "", + ?pLegalGuardianFirstName:String = "", + ?pLegalGuardianRole:String = "", + ?pLegalGuardianPhoneNumber:String = "", + ?pLegalGuardianEmail:String = "") { id = (pId == 0) ? currentIndex++ : pId; name = pName;