예제 #1
0
        public async Task <GadgetAnalyticsViewModel> GetGadgetAnalyticsViewModelForGadgetAsync(int gadgetId)
        {
            double averageTemperature = await GetStatusRequestAverageTemperatureAsync(gadgetId);

            Dictionary <string, KeyValuePair <double, DateTime> > gadgetExtremepoints = await _gadgetStatusRequestRepository.GetExtremepointsAsync(gadgetId);

            var gadgetAnalyticsViewModel = new GadgetAnalyticsViewModel();


            if (averageTemperature > 0.00)
            {
                gadgetAnalyticsViewModel.TemperatureAvg = $"{ GadgetHelper.RoundTemperature(averageTemperature) } °C";
            }

            if (gadgetExtremepoints.ContainsKey("max"))
            {
                gadgetAnalyticsViewModel.TemperatureMaxAndDate = FormatDateWithTimeHighValues(gadgetExtremepoints["max"]);
            }

            if (gadgetExtremepoints.ContainsKey("min"))
            {
                gadgetAnalyticsViewModel.TemperatureMinAndDate = FormatDateWithTimeHighValues(gadgetExtremepoints["min"]);
            }


            int amountOfEntries = await _gadgetStatusRequestRepository.GetAmountOfEntriesForGadget(gadgetId);

            if (amountOfEntries > 0)
            {
                gadgetAnalyticsViewModel.AmountOfEntries = amountOfEntries.ToString();
            }


            return(gadgetAnalyticsViewModel);
        }
예제 #2
0
        public void should_return_three_gadgets()
        {
            // ARRANGE
            #region Arrange
            var gadgets = GadgetHelper.CreateFourGadgets();
            _gadgetRepFake.GetAll().Returns(gadgets);
            #endregion

            // ACT
            #region Act
            var result = _sut.GetGadgets();
            #endregion

            // ASSERT
            #region Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOf <IEnumerable <Gadget> >(result);
            Assert.AreEqual(gadgets.Count(), result.Count());
            #endregion
        }
예제 #3
0
        public void should_return_data_gadget_id_four()
        {
            // ARRANGE
            #region Arrange
            var gadget = GadgetHelper.CreateGadgetFour();
            _gadgetRepFake.GetById(gadget.GadgetID).Returns(gadget);
            #endregion

            // ACT
            #region Act
            var result = _sut.GetGadget(4);
            #endregion

            // ASSERT
            #region Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOf <Gadget>(result);
            Assert.AreEqual(gadget.CategoryID, result.CategoryID);
            Assert.AreEqual(gadget.Name, result.Name);
            #endregion
        }
예제 #4
0
        private async Task ExecuteLoadItemsCommand()
        {
            IsBusy = true;

            try
            {
                Gadgets.Clear();
                var gadgets = await _gadgetDataStore.GetAllAsync(true);

                if (gadgets == null || gadgets.Count() == 0)
                {
                    return;
                }


                var unsortedGadgetList = new List <GadgetViewModel>();

                foreach (Gadget gadget in gadgets)
                {
                    GadgetStatus gadgetStatus = await _webRequestService.GetStatusAsync(gadget);

                    var statusIndicatorColor = GadgetHelper.GetStatusIndicatorColor(gadgetStatus);

                    if (gadgetStatus == null)
                    {
                        gadgetStatus = new GadgetStatus
                        {
                            temperature        = 0.00,
                            overtemperature    = false,
                            temperature_status = "undefined",
                            mac     = "",
                            voltage = 0.00
                        };
                    }

                    var viewModel = new GadgetViewModel
                    {
                        Id                   = gadget.Id,
                        DeviceId             = gadgetStatus.mac,
                        Name                 = gadget.Name,
                        Location             = gadget.Location,
                        IpAddress            = gadget.IpAddress,
                        Description          = gadget.Description,
                        IsStatusOk           = gadgetStatus.temperature_status == "Normal",
                        StatusIndicatorColor = statusIndicatorColor.ToString(),
                        TemperatureStatus    = gadgetStatus.temperature_status,
                        Temperature          = gadgetStatus.temperature,
                        TemperatureC         = $"{ gadgetStatus.temperature } °C",
                        Voltage              = gadgetStatus.voltage,
                        VoltageV             = $"{ gadgetStatus.voltage } V"
                    };

                    if (gadgetStatus.temperature_status == "undefined")
                    {
                        viewModel.TemperatureC = AppTranslations.Page_GadgetDetail_Fallback_NotAvailable;
                    }


                    unsortedGadgetList.Add(viewModel);
                }

                List <GadgetViewModel> sortedGadgetList = await GadgetHelper.SortGadgetListBySettingAsync(unsortedGadgetList);



                sortedGadgetList.ForEach(Gadgets.Add);
            }
            catch (Exception ex)
            {
                var properties = new Dictionary <string, string> {
                    { "Method", "ExecuteLoadItemsCommand" },
                    { "Event", "Could not Add GadgetViewModel" }
                };

                AppHelper.TrackError(ex, properties);
            }
            finally
            {
                IsBusy = false;
            }
        }