private void StoreValues(ref string jsonRaw) { try { List <TValue> result; if (_collectionSettings.DeserialzeFunc == null) { result = JsonConvert.DeserializeObject <List <TValue> >(jsonRaw); } else { result = _collectionSettings.DeserialzeFunc(jsonRaw); } InnerValues.Clear(); foreach (var item in result) { InnerValues.TryAdd(_collectionSettings.LocateKey(item), item); } } catch (JsonReaderException ex) { Trace.WriteLine($"Error Deserializing {_collectionSettings.LoadType} {_collectionSettings.GetCurrentSource}, {ex.ToString()}"); InnerValues.Clear(); } }
public ModifiableValueSystem() { if (!typeof(E).IsEnum) { throw new ArgumentException(typeof(E).Name + " is not a Enum type!"); } BasicValue = new InnerValues(); ModifiedValue = new InnerValues(); }
public bool Unset(ushort tokenId) { //return Attributes.Remove(tokenId); int index = InnerKeys.IndexOf(tokenId); if (index >= 0) { InnerKeys.RemoveAt(index); InnerValues.RemoveAt(index); return(true); } return(false); }
public virtual void CalculateModifiedValue() { InnerValues addition = new InnerValues(); InnerValues multiplier = new InnerValues(); InnerValues fixedValue = new InnerValues(); var eValues = Enum.GetValues(typeof(E)); for (int i = 0; i < eValues.Length; i++) { addition[(E)eValues.GetValue(i)] = 0; multiplier[(E)eValues.GetValue(i)] = 1; fixedValue[(E)eValues.GetValue(i)] = float.NaN; ModifiedValue[(E)eValues.GetValue(i)] = BasicValue[(E)eValues.GetValue(i)]; } for (int i = 0; i < modifiers.Count; i++) { switch (modifiers[i].modificationType) { case ModificationType.Add: addition[modifiers[i].propertyType] += modifiers[i].value_1; break; case ModificationType.Mul_Add: multiplier[modifiers[i].propertyType] += modifiers[i].value_1; break; case ModificationType.Set: fixedValue[modifiers[i].propertyType] = modifiers[i].value_1; break; } } for (int i = 0; i < eValues.Length; i++) { if (!float.IsNaN(fixedValue[(E)eValues.GetValue(i)])) { ModifiedValue[(E)eValues.GetValue(i)] = fixedValue[(E)eValues.GetValue(i)]; continue; } ModifiedValue[(E)eValues.GetValue(i)] = BasicValue[(E)eValues.GetValue(i)] * multiplier[(E)eValues.GetValue(i)]; ModifiedValue[(E)eValues.GetValue(i)] += addition[(E)eValues.GetValue(i)]; } }
public void SetBoolean(ushort tokenId) { //Attributes[tokenId] = null; int index = InnerKeys.IndexOf(tokenId); if (index < 0) { index = InnerKeys.Count; InnerKeys.Add(tokenId); InnerValues.Add(null); } else { InnerValues[index] = null; } }
/// <summary> /// Used by DomElement to (finally) set the ID value /// </summary> /// <param name="tokenId"></param> /// <param name="value"></param> internal void SetRaw(ushort tokenId, string value) { if (value == null) { Unset(tokenId); } else { //Attributes[tokenId] = value; int index = InnerKeys.IndexOf(tokenId); if (index < 0) { index = InnerKeys.Count; InnerKeys.Add(tokenId); InnerValues.Add(value); } else { InnerValues[index] = value; } } }
private byte GetByteValue(string optRef) { byte ret = 0; string[] tokens = optRef.Split('.'); int refLevel = 0; if (tokens[0] == ParamDefinition.Name) { refLevel++; } ParamValue p = InnerValues.FirstOrDefault(x => x.ParamDefinition.Name == tokens[refLevel]); if (p != null) { if (tokens.Length > refLevel) { refLevel++; if (p.ParamDefinition.Mode == ParamModes.Property) { ParamValue s = p.InnerValues.FirstOrDefault(x => x.ParamDefinition.Name == tokens[refLevel]); if (s != null) { ret = s.ByteValueList[0]; } } else { ret = p.ByteValueList[0]; } } else { ret = p.ByteValueList[0]; } } return(ret); }
public override void Refresh() { if (!_refreshing) { lock (_refreshLock) { _refreshing = true; try { var values = _loadValues(_contextStarter).ToList(); InnerValues.Clear(); foreach (var value in values) { InnerValues.TryAdd(value.Key, value.Value); } Loaded = true; } finally { _refreshing = false; } } } }
public void Clear() { //Attributes.Clear(); InnerKeys.Clear(); InnerValues.Clear(); }