예제 #1
0
        public async Task <GetDockingStationOutputDTO> GetDockingStationQueryAsync()
        {
            LoginDetails details = new RhodeITDB().GetUserDetails();
            GetDockingStationFunction getDockingStationFunction = new GetDockingStationFunction
            {
                Gas         = Variables.gas,
                FromAddress = details.Ethereum_Address
            };
            GetDockingStationOutputDTO stationDetails = await ContractHandler.QueryDeserializingToObjectAsync <GetDockingStationFunction, GetDockingStationOutputDTO>(getDockingStationFunction, null).ConfigureAwait(false);

            return(stationDetails);
        }
예제 #2
0
        public async Task <ObservableCollection <DockingStaion> > GetDockingStations()
        {
            ObservableCollection <DockingStaion> temp = new ObservableCollection <DockingStaion>();
            List <string> keys = await GetRegisteredDockingStationKeysQueryAsync().ConfigureAwait(false);

            foreach (string key in keys)
            {
                GetDockingStationOutputDTO dockingStationDetails = await GetDockingStationQueryAsync(key).ConfigureAwait(false);

                ObservableCollection <Bicycle> availableBicycles = await GetAvailableBicyclesFromDockingStationAsync(key).ConfigureAwait(false);

                DockingStaion dockingStation = new DockingStaion {
                    DockingStationInformation = new VenueLocation {
                        Name = dockingStationDetails.ReturnValue1, Latitude = double.Parse(dockingStationDetails.ReturnValue2, System.Globalization.CultureInfo.InvariantCulture), Longitude = double.Parse(dockingStationDetails.ReturnValue3, System.Globalization.CultureInfo.InvariantCulture)
                    }
                };
                foreach (Bicycle bicycle in availableBicycles)
                {
                    dockingStation.AvailableBicycles.Add(bicycle);
                }
                temp.Add(dockingStation);
            }
            return(temp);
        }