public override void HandleRequest(HttpListenerContext context) { var q = context.Request.QueryString; try { var fids = getIntArgArray(q.Get(KEY_FIXTURE_ID)); var portStr = getIntArgArray(q.Get(KEY_PORT)); var addr = q.Get(KEY_ADDRESS); var increment = bool.Parse(q.Get(KEY_INCREMENT)); var utilEnabled = bool.Parse(q.Get(KEY_UTIL_ENABLED)); if (fids == null || portStr == null || addr == null) { throw new ArgumentNullException("Some of fixture edit properties was null"); } var port = new Port() { Net = portStr[0], SubNet = portStr[1], Universe = portStr[2] }; var address = new Address() { DmxAddress = int.Parse(addr), Port = port.Clone() }; var utilAddress = new Address() { Port = port.Clone(), DmxAddress = int.Parse(q.Get(KEY_UTIL_ADDRESS)) }; var fixtures = StateManager.Instance.State.GetFixtures(fids); FixtureAddressSetter.SetDmxAddressFor(fixtures, address, increment); FixtureAddressSetter.SetUtilAddressFor(fixtures, utilAddress, increment); SetInfoMessage( "Address for fixtures: " + Fixture.GetFixtureListNameString(fixtures) + "is set to => " + "address: " + address.ToString() + "util address: " + utilAddress.ToString(), IS_PART_OF_STATE, Talker.Talk.GetSource()); string state = StateManager.Instance.GetStateSerialized(); WriteResponse(context, RestConst.RESPONSE_OK, RestConst.CONTENT_TEXT_JSON, state); } catch (Exception e) { SetErrorMessage(e.ToString(), IS_NOT_PART_OF_STATE, Talker.Talk.GetSource()); WriteErrorMessage(context, e); } }
public override void HandleRequest(HttpListenerContext context) { var q = context.Request.QueryString; List <Fixture> fixtures = new List <Fixture>(); try { string name = q.Get(KEY_FIX_NAME); int dmxAddress = int.Parse(q.Get(KEY_ADDRESS)); bool dmxUtilsEnabled = bool.Parse(q.Get(KEY_UTILS_ENABLED)); var port = getPortFromArgs(q.Get(KEY_PORT)); Address address = new Address() { DmxAddress = int.Parse(q.Get(KEY_ADDRESS)), Port = port.Clone() }; var utilsEnabled = bool.Parse(q.Get(KEY_UTILS_ENABLED)); var utilAddress = new Address() { DmxAddress = int.Parse(q.Get(KEY_UTIL_ADDRESS)), Port = port.Clone() }; bool increment = bool.Parse(q.Get(KEY_INCREMENT)); //validate pixel and mode values var modes = GetFixtureModes(q.Get(KEY_MODES)); var pp = q.Get(KEY_PATCH_TYPE); ValidateModeValues(modes, getPixelPatch(pp)); // create fixtures for (int i = 0; i < int.Parse(q.Get(KEY_COUNT)); i++) { var fix = new Fixture(modes, getPixelPatch(pp)); fix.Name = name + " " + i; fix.UtilAddress = utilAddress.Clone(); fix.IsDmxUtilsEnabled = dmxUtilsEnabled; fixtures.Add(fix); } FixtureAddressSetter.SetDmxAddressFor(fixtures, address, increment); var dmxUtils = fixtures[0].DmxUtils; StateManager.Instance.State.FixturePool.AddRange(fixtures); SetMessage( "Fixtures created: " + Fixture.GetFixtureInfoStr(fixtures) + ".", LogLevel.INFO, IS_PART_OF_STATE, Talker.Talk.GetSource() ); string state = StateManager.Instance.GetStateSerialized(); WriteResponse(context, RestConst.RESPONSE_OK, RestConst.CONTENT_TEXT_JSON, state); } catch (ArgumentException e) { SetErrorMessage(e.ToString(), IS_NOT_PART_OF_STATE, Talker.Talk.GetSource()); WriteErrorMessage(context, e); } }