public void Calculate() { ElapsedMS = Math.Round((EndTimeStamp.ToDateTime() - StartTimeStamp.ToDateTime()).TotalMilliseconds, 3); if (ElapsedMS > 1) { MessagesPerSecond = (MessagesProcessed / ElapsedMS) * 1000.0; } if (MessagesProcessed > 0) { AverageProcessingMS = Math.Round(ProcessingMS / MessagesProcessed, 3); } }
/// <summary> /// Calculates the values relative to the dataset /// </summary> public void CalculateDataSetValues() { if (Sensors.Count > 0 && Sensors[0] != null && Sensors[0].CurrentState != null) { var intervalMap = new Dictionary <int, int>(); var prevDate = DateTime.MinValue; var currentHighest = new KeyValuePair <int, int>(); foreach (var date in Sensors[0].CurrentState.Values.Keys) { var interval = (int)(date - prevDate).TotalMinutes; if (intervalMap.ContainsKey(interval)) { intervalMap[interval]++; } else { intervalMap.Add(interval, 1); } prevDate = date; } foreach (var pair in intervalMap) { if (pair.Value > currentHighest.Value) { currentHighest = pair; } } _dataInterval = currentHighest.Key; } foreach (Sensor sensor in _sensors) { //Update the actual data point count. if (sensor.CurrentState != null) { _actualDataPointCount = Math.Max(sensor.CurrentState.Values.Count, _actualDataPointCount); } //Set the start and end time dynamically if (sensor.CurrentState != null && sensor.CurrentState.Values.Count > 0) { var timesArray = new DateTime[sensor.CurrentState.Values.Count]; sensor.CurrentState.Values.Keys.CopyTo(timesArray, 0); var timesList = new List <DateTime>(timesArray); timesList.Sort(); if (_startTimeStamp == DateTime.MinValue || timesList[0] < _startTimeStamp) { _startTimeStamp = timesList[0]; } if (_startTimeStamp == DateTime.MinValue || timesList[timesList.Count - 1] > _endTimeStamp) { _endTimeStamp = timesList[timesList.Count - 1]; } } } if (_sensors.Count > 0) { _expectedDataPointCount = (int)Math.Floor(EndTimeStamp.Subtract(StartTimeStamp).TotalMinutes / DataInterval) + 1; } }
private async void GotoParkingReserved() { Mvx.Resolve <IMvxMessenger>().Publish( new AlertMessage(this, "Confirm", string.Format("Your payment card will be charged {0} €", string.Format("{0:0.0}", Cost)), "Cancel", () => { }, new string[] { "OK" }, async() => { if (BaseView != null && BaseView.CheckInternetConnection()) { Mvx.Resolve <IMvxMessenger>().Publish(new ProgressMessage(this, true)); var result1 = await mApiService.CreateBooking(Mvx.Resolve <ICacheService>().CurrentUser.UserId, ParkingId.ToString(), StartTimeStamp, EndTimeStamp, Vehicle.PlateNumber); if (result1 != null && result1.Response != null) { // Mvx.Resolve<IMvxMessenger>().Publish(new ToastMessage(this, result.Response.Result + "\n" + result.Response.BookingId)); //Mvx.Resolve<IMvxMessenger>().Publish(new ToastMessage(this, result.Response.Result.Equals("success") ? result.Response.Result : string.Format("{0}: {1}", result.Response.Result, result.Response.ErrorCode))); if (result1.Response.Status.Equals("success")) { BookingId = long.Parse(result1.Response.BookingId); var result = await mApiService.PayBooking(mCacheService.CurrentUser.UserId, ParkingId.ToString(), result1.Response.BookingId); if (result != null) { //Mvx.Resolve<IMvxMessenger>().Publish(new ToastMessage(this, result.Result + "\nRemaining credits : " + result.RemainingCredits)); //Mvx.Resolve<IMvxMessenger>().Publish(new ToastMessage(this, result.Response.Result.Equals("success") ? "Success" : "Error")); if (result.Response != null && result.Response.Status.Equals("success")) { Mvx.Resolve <IMvxMessenger>().Publish(new ToastMessage(this, result.Response.Status)); NeedRelease = true; if (mCacheService.SearchMode == SearchMode.Now) { //TODO : mCacheService.CurrentReservation = ?????? Parking parking = new Parking() { ParkingId = ParkingId.ToString(), Location = result.Response.Location, Latitude = result.Response.Latitude, Longitude = result.Response.Longitude }; Reservation reservation = new Reservation() { BookingId = BookingId.ToString(), Cost = Cost.ToString(), StartTimestamp = StartTimeStamp.ToString(), EndTimestamp = EndTimeStamp.ToString(), Parking = parking, PlateNumber = Vehicle.PlateNumber, VehicleType = Vehicle.Type, }; mCacheService.CurrentReservation = reservation; //mCacheService.CurrentUser.RemainingCredits = (double.Parse(mCacheService.CurrentUser.RemainingCredits, CultureInfo.InvariantCulture) - Cost).ToString(); //mCacheService.CurrentUser.RemainingCredits = result.Response.RemainingCredits; ShowViewModel <ParkingReservedViewModel>(new { status = ParkingStatus.Rented }); } else { ShowViewModel <MenuViewModel>(presentationFlag: PresentationBundleFlagKeys.Menu); } } else if (result.ApiError.Error != null && result.ApiError.Error.Equals("cardTrouble")) { Mvx.Resolve <IMvxMessenger>().Publish(new ToastMessage(this, "Please add a credit card in the Wallet section!")); } else { Mvx.Resolve <IMvxMessenger>().Publish(new AlertMessage(this, string.Empty, string.Format("{0}: {1}", result.Response.Status, result.Response.ErrorCode), "Ok", null)); } } else { //Close(this); Mvx.Resolve <IMvxMessenger>().Publish(new ToastMessage(this, "Error occur!")); } } else { Mvx.Resolve <IMvxMessenger>().Publish(new AlertMessage(this, string.Empty, string.Format("{0}: {1}", result1.Response.Status, result1.Response.ErrorCode), "Ok", null)); } } Mvx.Resolve <IMvxMessenger>().Publish(new ProgressMessage(this, false)); } else { Mvx.Resolve <IMvxMessenger>().Publish(new ToastMessage(this, SharedTextSource.GetText("TurnOnInternetText"))); } })); }