public void switchState(Parkingspot spot) { ParkingspotStatus newstatus = Invert(spot.Status); string lpid = null; if (newstatus == ParkingspotStatus.TAKEN) { lpid = licenseplateIds[random.Next(licenseplateIds.Count)]; } IoTRequest request = createChangeRequest(spot, lpid, newstatus); SendStateChange(channel, request, spot); spot.Status = newstatus; spot.LicensePlateId = lpid; }
private IoTRequest createChangeRequest(Parkingspot parkingspot, string lcid, ParkingspotStatus newstate) { IoTStateChangedDTO.IoTChangedState state = newstate == ParkingspotStatus.FREE ? IoTStateChangedDTO.IoTChangedState.LEFT : IoTStateChangedDTO.IoTChangedState.ARRIVED; return(new IoTRequest { stateChangedDTO = new IoTStateChangedDTO { guid = parkingspot.Guid, id = parkingspot.ID, licensePlateId = lcid, state = state } }); }
private ParkingspotStatus Invert(ParkingspotStatus status) { return((ParkingspotStatus)(1 - status)); }