public decimal CalculatePrice(string parkingCNPJ, TimeSpan startTime, TimeSpan endTime) { if (startTime > endTime) { throw new ArgumentException("startTime cannot be greater than endtime"); } Parking parking = Parkings.Find(parkingCNPJ); if (parking == null) { throw new ArgumentException("No parking with the provided CNPJ"); } Price price = parking.Prices.SingleOrDefault(p => p.StartTime <= startTime && p.EndTime >= endTime && !p.IsDefault); if (price == null) { price = parking.Prices.SingleOrDefault(p => p.IsDefault); if (price == null) { price = new Price { Value = 3.00m }; } } decimal priceValue = price.Value * Convert.ToDecimal((endTime - startTime).TotalHours); return(priceValue); }
public void callParkingAPI() { var response = new HttpClient().GetStringAsync(_parkUrl).Result; //var jsonResponse = await response; parkings = JsonConvert.DeserializeObject <Parkings>(response); }
public async void GetMyOwnParking() { if (BaseView != null && BaseView.CheckInternetConnection()) { Mvx.Resolve <IMvxMessenger>().Publish(new ProgressMessage(this, true)); var results = await mApiService.OwnerParkings(Mvx.Resolve <ICacheService>().CurrentUser.UserId); if (results != null && results.Response.Count != 0) { Parkings.Clear(); foreach (var item in results.Response) { Parkings.Add(new OwnerParkingItemViewModel(mCacheService, this) { Parking = item, }); } } Mvx.Resolve <IMvxMessenger>().Publish(new ProgressMessage(this, false)); } else { Mvx.Resolve <IMvxMessenger>().Publish(new ToastMessage(this, SharedTextSource.GetText("TurnOnInternetText"))); } }
public void Navigate(string page) { switch (page) { case "Parkings": var parkings = new Parkings(); ApplicationHelper.NavigationService.Navigate(parkings); break; case "Parking": var parking = new Parking(); ApplicationHelper.NavigationService.Navigate(parking); break; case "Home": var home = new Home(); ApplicationHelper.NavigationService.Navigate(home); break; case "Reserveren": var reserveren = new Reserveren(); ApplicationHelper.NavigationService.Navigate(reserveren); break; case "Statistiek": var statistiek = new Statistiek(); ApplicationHelper.NavigationService.Navigate(statistiek); break; default: break; } }
IEnumerator StartShow(WWW www) { yield return(www); // check for errors if (www.error == null) { Debug.Log("WWW Ok!: " + www.text); // JsonUtility can't parse top-level arrays. // Need to have a wrapper class string json = "{\"parkings\": " + www.text + "}"; Parkings parkingsInfo = Parkings.CreateFromJSON(json); ParkingInfo[] parkings = parkingsInfo.parkings; // The app is only for one node atm... // Therefore, only look at first node SensorInfo[] sensors = parkings[lotNumber].sensors; GameObject sensorObject; foreach (SensorInfo sensor in sensors) { sensorNumber = sensor.id + 4 * (sensor.node - 1); sensorObject = GameObject.Find("Sensor " + sensorNumber.ToString()); sensorObject.GetComponent <MeshRenderer>().enabled = true; } } else { Debug.Log("WWW Error: " + www.error); } }
private void ClearRoutes(bool clearParcing = true) { _routesModel = new RoutesModel(); DispatherThreadRun(delegate { Route.Clear(); WarningRoute.Clear(); ErrorRoute.Clear(); if (clearParcing) { Parkings.Clear(); } }); }
IEnumerator WaitForRequest(WWW www) { yield return(www); // check for errors if (www.error == null) { Debug.Log("WWW Ok!: " + www.text); // JsonUtility can't parse top-level arrays. // Need to have a wrapper class string json = "{\"parkings\": " + www.text + "}"; Parkings parkingsInfo = Parkings.CreateFromJSON(json); ParkingInfo[] parkings = parkingsInfo.parkings; // The app is only for one node atm... // Therefore, only look at first node SensorInfo[] sensors = parkings[lotNumber].sensors; free = 0; parkingSpaces = 0; GameObject sensorObject; foreach (SensorInfo sensor in sensors) { sensorNumber = sensor.id + 4 * (sensor.node - 1); sensorObject = GameObject.Find("Sensor " + sensorNumber.ToString()); ChangeColor(sensorObject, sensor.occupied, sensor.faulty); if (!sensor.occupied) { free++; } parkingSpaces++; // Save statuses } uiText.text = "Free spaces [ " + free.ToString() + "/" + parkingSpaces.ToString() + " ]"; } else { Debug.Log("WWW Error: " + www.error); } }
public void Calc() { Places = Parkings.Sum(p => p.Places); InvalidPlaces = Parkings.Sum(p => p.InvalidPlaces); }
IEnumerator WaitForRequest(WWW www) { yield return(www); // check for errors if (www.error == null) { thisThing.gameObject.SetActive(true); errorCanvas.gameObject.SetActive(false); Debug.Log("WWW Ok!: " + www.text); StartCoroutine(gpsServices()); // JsonUtility can't parse top-level arrays. // Need to have a wrapper class string json = "{\"parkings\": " + www.text + "}"; Parkings Parkings = Parkings.CreateFromJSON(json); parkLat = Parkings.parkings[0].lat; parkLong = Parkings.parkings[0].lng; // The app is only for one node atm... // Therefore, only look at first node SensorInfo[] sensors = Parkings.parkings[0].sensors; Debug.Log( sensors[0] + "," + sensors[1] + "," + sensors[2] + "," + sensors[3] ); int free; for (int i = 0; i < distVec.Length; i++) { Button button = buttonArr[i]; button.transform.position = new Vector3(screenWidth / 2, (5 - i) * (screenHeight - 250) / 6 + (screenHeight - 250) / 12, 0); free = 0; for (int p = 0; p < Parkings.parkings[i].sensors.Length; p++) { if (!Parkings.parkings[i].sensors[p].occupied) { free++; } } button.GetComponentInChildren <Text>().text = "Parking at " + Parkings.parkings[i].name + ", Distance: " + (int)distVec[i] + "m, Free: [" + free + "/" + Parkings.parkings[i].sensors.Length + "]"; AddListener(button, Parkings.parkings[i].name, parkingIndex[i]); button.gameObject.SetActive(true); } for (int i = distVec.Length; i < buttonArr.Length; i++) { Button button = buttonArr[i]; button.GetComponentInChildren <Text>().text = "Test button nr " + ((i - distVec.Length) + 1); button.gameObject.SetActive(true); } } else { Debug.Log("WWW Error: " + www.error); thisThing.gameObject.SetActive(false); errorCanvas.gameObject.SetActive(true); } }