Example #1
0
        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);
            }
        }
Example #2
0
        /// <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;
            }
        }
Example #3
0
        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")));
                }
            }));
        }