Example #1
0
        public IEnumerator QueryForBuildingByName(string buildingName, System.Action <Building> callBack)
        {
            //Get Buildings
            BuildingTransferCollection buildingCollection = null;

            yield return(StartCoroutine(GetBuildingsByStreetName(buildingName, (BuildingTransferCollection b) => {
                buildingCollection = b;
            })));

            Building buildingGo = null;

            if (buildingCollection == null)
            {
                UIManager.Instance.QueryError();
            }
            else if (buildingCollection != null && buildingCollection.buildings.Length > 0)
            {
                buildingGo = Building.CreateFromTransfer(buildingCollection.buildings [0]);

                //Get Floors for every building
                foreach (BuildingTransfer building in buildingCollection.buildings)
                {
                    FloorTransferCollection tempftc = null;
                    yield return(StartCoroutine(GetFloorsByBuildingId(building.id, (FloorTransferCollection ftc) => {
                        tempftc = ftc;
                    })));

                    foreach (FloorTransfer floor in tempftc.floors)
                    {
                        //Get sensors per floor
                        SensorTransferCollection tempSTC = null;
                        yield return(StartCoroutine(GetSensorByFloorId(floor.id, (SensorTransferCollection stc) => {
                            tempSTC = stc;
                        })));

                        PolygonQueryTransfer tempPQT = null;
                        yield return(StartCoroutine(GetPolygonByFloorId(floor.id, (PolygonQueryTransfer pqt) => {
                            tempPQT = pqt;
                        })));

                        //Merge the floor,sensor and polygon transfer object into the Building obj.
                        Floor tempFloor = Floor.CreateFromTransfer(floor);
                        tempFloor.ImportSensors(tempSTC);
                        tempFloor.ImportPolygons(tempPQT);
                        buildingGo.ImportFloor(tempFloor);
                    }
                }
            }
            callBack(buildingGo);
        }
Example #2
0
        private IEnumerator GetFloorsByBuildingId(int buildingId, System.Action <FloorTransferCollection> callBack)
        {
            string url = string.Format(APIUrls.FLOOR_BY_BUILDING_ID, buildingId);
            WWW    www = new WWW(url, null, headers);

            yield return(www);

            FloorTransferCollection result = null;

            if (string.IsNullOrEmpty(www.error))
            {
                string response = www.text;
                result = JsonUtility.FromJson <FloorTransferCollection> (RequestUtils.ArrayFormatter(ArrayFormatterType.floors, response));
            }
            callBack(result);
        }