public ActionResult OnGetToggleOutletState(int id, Outlet.PowerState currentPowerState)
        {
            switch (currentPowerState)
            {
            case Outlet.PowerState.On:
                _pdu.TurnOutletOff(id);
                break;

            case Outlet.PowerState.Off:
                _pdu.TurnOutletOn(id);
                break;
            }

            var outletTableViewModel = new OutletTableViewModel();

            outletTableViewModel.Outlets            = _pdu.GetOutletsWaitForPending(true, false);
            outletTableViewModel.WebRootPath        = _environment.WebRootPath;
            outletTableViewModel.OutletConfirmation = _configuration.GetSection("OutletConfirmation").Get <string[]>();
            outletTableViewModel.Phases             = _pdu.GetPhases();

            var viewData = new ViewDataDictionary(new Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider(), new Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary())
            {
                { "OutletTableViewModel", outletTableViewModel }
            };

            viewData.Model = outletTableViewModel;

            PartialViewResult result = new PartialViewResult()
            {
                ViewName = "_OutletTable",
                ViewData = viewData,
            };

            return(result);
        }
        public void GivenOutlet5IsOff_WhenTurnOutlet5On_ThenOutlet5IsOn()
        {
            int outletId = 5;

            //Given
            Assert.IsTrue(_device.TurnOutletOff(outletId));
            var outlets = _device.GetOutletsWaitForPending();

            if (outlets == null)
            {
                Assert.Fail();
            }

            var outlet = outlets.First(o => o.Id == outletId);

            if (outlet == null)
            {
                Assert.Fail();
            }
            Assert.IsTrue(outlet.State == Outlet.PowerState.Off);

            //When
            Assert.IsTrue(_device.TurnOutletOn(outletId));

            //Then
            outlets = _device.GetOutletsWaitForPending();
            if (outlets == null)
            {
                Assert.Fail();
            }
            outlet = outlets.First(o => o.Id == outletId);
            if (outlet == null)
            {
                Assert.Fail();
            }
            Assert.IsTrue(outlet.State == Outlet.PowerState.On);
        }
Beispiel #3
0
        private Task <MethodResponse> TurnOutletOff(MethodRequest methodRequest, object userContext)
        {
            bool success          = false;
            var  payloadDefintion = new
            {
                outletId = -1
            };

            var payload = JsonConvert.DeserializeAnonymousType(methodRequest.DataAsJson, payloadDefintion);

            if (ApcAP8959EU3.OutletIdValid(payload.outletId))
            {
                success = _device.TurnOutletOff(payload.outletId);
            }
            return(methodRequest.GetMethodResponse(success));
        }
        // Turn off all devices not on the exclusion list, including the TV
        public IActionResult OnPostPowerOff()
        {
            var outlets = _apcAP8959EU3.GetOutlets();

            if (outlets != null)
            {
                foreach (var outlet in outlets.Where(o =>
                                                     !_outletConfirmation.Contains(o.Name) &&
                                                     o.State == Outlet.PowerState.On))
                {
                    _apcAP8959EU3.TurnOutletOff(outlet.Id);
                }
            }

            _sonySimpleIP.TurnOff();

            return(RedirectToPage());
        }