public void WhenReadingsExist_Refresh_ReadingsUpdated()
        {
            var ea = new EventAggregator();
            var initialResponse = new ReadingDto[]
            {
                new ReadingDto {
                    DeviceName = "unit-test", PM25 = "1", PM10 = "2"
                }
            };
            var updateResponse = new ReadingDto[]
            {
                new ReadingDto {
                    DeviceName = "unit-test", PM25 = "10", PM10 = "20"
                }
            };
            var handler = new HttpMessageHandlerBuilder()
                          .SetupGet("http://1.2.3.4:8080/v1/readings", initialResponse, updateResponse)
                          .Build();

            var target = new MetersViewModel(ea, new HttpClient(handler));

            ea.Publish(new DeviceDetectedEvent("id", IPAddress.Parse("1.2.3.4")));

            target.Refresh.Execute(null);

            var result = target.Readings.Single();

            Assert.AreEqual("id", result.ClientId);
            Assert.AreEqual("unit-test", result.DeviceName);
            Assert.AreEqual("10", result.PM25);
            Assert.AreEqual("20", result.PM10);
        }
        public void WhenReadingsExist_DeviceDetectedEventSend_ReadingsUpdated()
        {
            var ea       = new EventAggregator();
            var response = new ReadingDto[]
            {
                new ReadingDto {
                    DeviceName = "unit-test", PM25 = "1", PM10 = "2"
                }
            };
            var handler = new HttpMessageHandlerBuilder()
                          .SetupGet <ReadingDto[]>("http://1.2.3.4:8080/v1/readings", response)
                          .Build();

            var target = new MetersViewModel(ea, new HttpClient(handler));

            target.Readings.Add(new Reading()
            {
                ClientId = "existingId", DeviceName = "existing", PM25 = "10", PM10 = "20"
            });

            ea.Publish(new DeviceDetectedEvent("id", IPAddress.Parse("1.2.3.4")));

            var result = target.Readings.Last();

            Assert.AreEqual("id", result.ClientId);
            Assert.AreEqual("unit-test", result.DeviceName);
            Assert.AreEqual("1", result.PM25);
            Assert.AreEqual("2", result.PM10);
        }
        public void WhenDetectionStartedEventSend_IsLoadingSet()
        {
            var ea         = new EventAggregator();
            var httpClient = new HttpClient(new HttpMessageHandlerBuilder().Build());
            var target     = new MetersViewModel(ea, httpClient);

            ea.Publish(new DetectionStartedEvent());

            Assert.IsTrue(target.IsLoading);
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Index(string address)
        {
            List <Address> addresses = await _data.GetAddresses();

            List <Apartment> apartments = await _data.GetUnverifiedMetersByAddress(address);

            var model = new MetersViewModel
            {
                Addresses = addresses.Adapt <List <AddressViewModel> >(),
                Meters    = apartments.Adapt <List <MeterViewModel> >()
            };

            return(View(model));
        }
Exemplo n.º 5
0
        public ActionResult Index()
        {
            // instantiate the meter manager
            var meterManagerEx = initializeMeterManager();

            // build the view model
            var viewModel = new MetersViewModel();

            // get all the MeterDefinitions for the client side meters
            viewModel.ClientSideMeters = meterManagerEx.GetClientSideDefinitions();

            // get all Server Based MeterDefinitions
            viewModel.StatusPageMeters = meterManagerEx.GetServerBasedDefinitions();

            // render the view
            return(View(viewModel));
        }
        public void WhenNoReadingsExist_MultipleDeviceDetectedEventSend_ReadingsUpdated()
        {
            var ea          = new EventAggregator();
            var firstDevice = new ReadingDto[]
            {
                new ReadingDto {
                    DeviceName = "unit-test-1", PM25 = "1", PM10 = "2"
                }
            };
            var secondDevice = new ReadingDto[]
            {
                new ReadingDto {
                    DeviceName = "unit-test-2", PM25 = "10", PM10 = "20"
                }
            };
            var handler = new HttpMessageHandlerBuilder()
                          .SetupGet <ReadingDto[]>("http://1.2.3.4:8080/v1/readings", firstDevice)
                          .SetupGet <ReadingDto[]>("http://1.2.3.5:8080/v1/readings", secondDevice)
                          .Build();

            var target = new MetersViewModel(ea, new HttpClient(handler));

            ea.Publish(new DeviceDetectedEvent("id1", IPAddress.Parse("1.2.3.4")));
            ea.Publish(new DeviceDetectedEvent("id2", IPAddress.Parse("1.2.3.5")));

            var firstResult = target.Readings.First();
            var lastResult  = target.Readings.Last();

            Assert.AreEqual(2, target.Readings.Count);

            //TODO add object comparison
            Assert.AreEqual("id1", firstResult.ClientId);
            Assert.AreEqual("unit-test-1", firstResult.DeviceName);
            Assert.AreEqual("1", firstResult.PM25);
            Assert.AreEqual("2", firstResult.PM10);

            Assert.AreEqual("id2", lastResult.ClientId);
            Assert.AreEqual("unit-test-2", lastResult.DeviceName);
            Assert.AreEqual("10", lastResult.PM25);
            Assert.AreEqual("20", lastResult.PM10);
        }
Exemplo n.º 7
0
    void Awake()
    {
        _viewModel                = new MetersViewModel();
        _viewModel.DataUpdated   += _view.SetData;
        _viewModel.TitlesUpdated += _view.SetTitles;
        _isVisible                = true;
        Deactivate();

        var settingUpdates = new CompositeDisposable();

        var gameSettingUpdates = _activeGameSettings.SettingChanges.Subscribe(gameSettings => {
            UpdateSettings(gameSettings.Gameplay);
        });

        settingUpdates.Add(gameSettingUpdates);

        var languageUpdates = _activeLanguage.TableUpdates.Subscribe(languageTable => {
            SetLanguage(languageTable);
        });

        settingUpdates.Add(languageUpdates);

        _settingUpdates = settingUpdates;
    }
Exemplo n.º 8
0
 public MetersPage(MetersViewModel viewModel)
 {
     InitializeComponent();
     BindingContext = viewModel;
 }