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); }
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()); }