protected void DeleteAdvancedPin(string context, string name, sAdvancedPin pin) { lock (_lock) { Hashtable ht = StoredConfiguration; Hashtable psets = (Hashtable)ht[_SCONFIG_PINS_NAME]; Hashtable cont = new Hashtable(); if (psets.ContainsKey(context)) { cont = (Hashtable)psets[context]; psets.Remove(context); if (cont.ContainsKey(name)) { Hashtable pset = (Hashtable)cont[name]; cont.Remove(name); ArrayList pins = (ArrayList)pset[_PIN_SET_NAME_FIELD_ID]; pins.Remove(pin.ToString()); pset.Remove(_PIN_SET_NAME_FIELD_ID); pset.Add(_PIN_SET_NAME_FIELD_ID, pins); cont.Add(name, pset); } psets.Add(context, cont); ht.Remove(_SCONFIG_PINS_NAME); ht.Add(_SCONFIG_PINS_NAME, psets); StoredConfiguration = ht; } } }
protected void UpdateAdvancedPinset(string context, string name,string newName, sAdvancedPin[] pins) { lock (_lock) { Hashtable ht = StoredConfiguration; Hashtable psets = (Hashtable)ht[_SCONFIG_PINS_NAME]; Hashtable cont = new Hashtable(); if (psets.ContainsKey(context)) { cont = (Hashtable)psets[context]; psets.Remove(context); } if (cont.ContainsKey(name)) cont.Remove(name); Hashtable pset = new Hashtable(); pset.Add(_PINSET_ADVANCED_FIELD_ID, true); ArrayList apins = new ArrayList(); foreach (sAdvancedPin pin in pins) apins.Add(pin.ToString()); pset.Add(_PINSET_PINS_FIELD_ID, apins); cont.Add(newName, pset); psets.Add(context, cont); ht.Remove(_SCONFIG_PINS_NAME); ht.Add(_SCONFIG_PINS_NAME, psets); StoredConfiguration = ht; } }