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> TurnOutletOn(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.TurnOutletOn(payload.outletId); } return(methodRequest.GetMethodResponse(success)); }