private bool CheckResultType(JTokenType?expectedType, JToken result) { if (expectedType == null || result == null) { return(true); } JTokenType resultType = result.Type; switch (expectedType.Value) { case JTokenType.Integer: case JTokenType.Float: return(resultType == JTokenType.Integer || resultType == JTokenType.Float); default: return(resultType == expectedType); } }
private static JTokenType GetStringValueType(JTokenType?current) { if (current == null) { return(JTokenType.String); } switch (current.Value) { case JTokenType.Comment: case JTokenType.String: case JTokenType.Raw: return(current.Value); default: return(JTokenType.String); } }
private static JTokenType GetValueType(JTokenType?current, object value) { if (value == null) { return(JTokenType.Null); } else if (value == DBNull.Value) { return(JTokenType.Null); } else if (value is string) { return(GetStringValueType(current)); } else if (value is long || value is int || value is short || value is sbyte || value is ulong || value is uint || value is ushort || value is byte) { return(JTokenType.Integer); } else if (value is double || value is float || value is decimal) { return(JTokenType.Float); } else if (value is DateTime) { return(JTokenType.Date); } #if !PocketPC && !NET20 else if (value is DateTimeOffset) { return(JTokenType.Date); } #endif else if (value is byte[]) { return(JTokenType.Bytes); } else if (value is bool) { return(JTokenType.Boolean); } throw new ArgumentException("Could not determine JSON object type for type {0}.".FormatWith(CultureInfo.InvariantCulture, value.GetType())); }
private static JTokenType GetValueType(JTokenType?current, object value) { if (value == null || value == DBNull.Value) { return(JTokenType.Null); } if (value is string) { return(JValue.GetStringValueType(current)); } if (value is long || value is int || (value is short || value is sbyte) || (value is ulong || value is uint || (value is ushort || value is byte)) || value is Enum) { return(JTokenType.Integer); } if (value is double || value is float || value is Decimal) { return(JTokenType.Float); } if (value is DateTime) { return(JTokenType.Date); } if (value is byte[]) { return(JTokenType.Bytes); } if (value is bool) { return(JTokenType.Boolean); } if (value is Guid) { return(JTokenType.Guid); } if ((object)(value as Uri) != null) { return(JTokenType.Uri); } if (value is TimeSpan) { return(JTokenType.TimeSpan); } throw new ArgumentException("Could not determine JSON object type for type {0}.".FormatWith((IFormatProvider)CultureInfo.InvariantCulture, (object)value.GetType())); }
private static object GetJsonArray(JToken array) { JTokenType?arrayType = array.Children().FirstOrDefault()?.Type; if (arrayType == null) { return(array.Values <string>().ToList()); } object retVar = arrayType switch { JTokenType.Object => array.Values <JObject>().ToList(), JTokenType.Integer => array.Values <int>().ToList(), JTokenType.Float => array.Values <float>().ToList(), JTokenType.String => array.Values <string>().ToList(), JTokenType.Boolean => array.Values <bool>().ToList(), _ => array.Values <string>().ToList() }; return(retVar); }
private static JTokenType GetValueType(JTokenType? current, object value) { if (value == null) return JTokenType.Null; #if !(NETFX_CORE || PORTABLE40 || PORTABLE) else if (value == DBNull.Value) return JTokenType.Null; #endif else if (value is string) return GetStringValueType(current); else if (value is long || value is int || value is short || value is sbyte || value is ulong || value is uint || value is ushort || value is byte) return JTokenType.Integer; else if (value is Enum) return JTokenType.Integer; #if !(NET20 || NET35 || PORTABLE40 || PORTABLE) else if (value is BigInteger) return JTokenType.Integer; #endif else if (value is double || value is float || value is decimal) return JTokenType.Float; else if (value is DateTime) return JTokenType.Date; #if !NET20 else if (value is DateTimeOffset) return JTokenType.Date; #endif else if (value is byte[]) return JTokenType.Bytes; else if (value is bool) return JTokenType.Boolean; else if (value is Guid) return JTokenType.Guid; else if (value is Uri) return JTokenType.Uri; else if (value is TimeSpan) return JTokenType.TimeSpan; throw new ArgumentException("Could not determine JSON object type for type {0}.".FormatWith(CultureInfo.InvariantCulture, value.GetType())); }
private bool HandleValueType() { switch (_valueType) { case JTokenType.Null: SetToken(JsonToken.Null); _valueType = null; if (PeekState() == JTokenType.Property) { _stateStack.Pop(); } return(true); case JTokenType.Object: SetToken(JsonToken.StartObject); _stateStack.Push(JTokenType.Object); _valueType = null; return(true); case JTokenType.Array: SetToken(JsonToken.StartArray); _stateStack.Push(JTokenType.Array); _valueType = null; return(true); case JTokenType.Constructor: string constructorName = _reader.GetAttribute("name"); if (constructorName == null) { throw new Exception("No constructor name specified."); } SetToken(JsonToken.StartConstructor, constructorName); _stateStack.Push(JTokenType.Constructor); _valueType = null; return(true); } return(false); }
/// <summary> /// Convierte un valor de Json en un valor .Net /// </summary> private object ConvertJsonObject(JTokenType?type, JToken value) { switch (type) { case JTokenType.Integer: return((int?)value); case JTokenType.Float: return((float?)value); case JTokenType.String: return((string)value); case JTokenType.Boolean: return((bool)value); case JTokenType.Date: return((DateTime?)value); case JTokenType.Bytes: return((byte[])value); case JTokenType.Guid: return((Guid?)value); case JTokenType.Uri: return((Uri)value); case JTokenType.TimeSpan: return((TimeSpan?)value); case JTokenType.Null: return(DBNull.Value); default: return(null); } }
private static JTokenType GetStringValueType(JTokenType?current) { if (current == null) { return(JTokenType.String); } JTokenType value = current.Value; switch (value) { case JTokenType.Comment: case JTokenType.String: break; default: if (value != JTokenType.Raw) { return(JTokenType.String); } break; } return(current.Value); }
public override bool Read() { if (HandleValueType()) return true; while (_reader.Read()) { switch (_reader.NodeType) { case XmlNodeType.Element: string typeName = _reader.GetAttribute("type"); if (typeName == null) throw new Exception("No type specified."); _valueType = (JTokenType)Enum.Parse(typeof(JTokenType), typeName, true); switch (PeekState()) { case JTokenType.None: HandleValueType(); return true; case JTokenType.Object: SetToken(JsonToken.PropertyName, _reader.LocalName); _stateStack.Push(JTokenType.Property); return true; case JTokenType.Array: case JTokenType.Constructor: continue; default: throw new ArgumentOutOfRangeException(); } case XmlNodeType.EndElement: switch (_stateStack.Peek()) { case JTokenType.Object: SetToken(JsonToken.EndObject); _stateStack.Pop(); if (PeekState() == JTokenType.Property) _stateStack.Pop(); return true; case JTokenType.Array: SetToken(JsonToken.EndArray); _stateStack.Pop(); if (PeekState() == JTokenType.Property) _stateStack.Pop(); return true; case JTokenType.Constructor: SetToken(JsonToken.EndConstructor); _stateStack.Pop(); if (PeekState() == JTokenType.Property) _stateStack.Pop(); return true; } _stateStack.Pop(); if (PeekState() == JTokenType.Property) _stateStack.Pop(); break; case XmlNodeType.Text: case XmlNodeType.CDATA: switch (_valueType) { case JTokenType.Integer: SetToken(JsonToken.Integer, Convert.ToInt64(_reader.Value, CultureInfo.InvariantCulture)); break; case JTokenType.Float: SetToken(JsonToken.Float, Convert.ToDouble(_reader.Value, CultureInfo.InvariantCulture)); break; case JTokenType.String: case JTokenType.Uri: case JTokenType.TimeSpan: case JTokenType.Guid: SetToken(JsonToken.String, _reader.Value); break; case JTokenType.Boolean: SetToken(JsonToken.Boolean, Convert.ToBoolean(_reader.Value, CultureInfo.InvariantCulture)); break; case JTokenType.Date: SetToken(JsonToken.Date, Convert.ToDateTime(_reader.Value, CultureInfo.InvariantCulture)); break; case JTokenType.Bytes: SetToken(JsonToken.Bytes, Convert.FromBase64String(_reader.Value)); break; default: throw new ArgumentOutOfRangeException(); } _stateStack.Push(_valueType.Value); return true; default: throw new ArgumentOutOfRangeException(); } } return false; }
private bool HandleValueType() { switch (_valueType) { case JTokenType.Null: SetToken(JsonToken.Null); _valueType = null; if (PeekState() == JTokenType.Property) _stateStack.Pop(); return true; case JTokenType.Object: SetToken(JsonToken.StartObject); _stateStack.Push(JTokenType.Object); _valueType = null; return true; case JTokenType.Array: SetToken(JsonToken.StartArray); _stateStack.Push(JTokenType.Array); _valueType = null; return true; case JTokenType.Constructor: string constructorName = _reader.GetAttribute("name"); if (constructorName == null) throw new Exception("No constructor name specified."); SetToken(JsonToken.StartConstructor, constructorName); _stateStack.Push(JTokenType.Constructor); _valueType = null; return true; } return false; }
private static JTokenType GetValueType(JTokenType? current, object? value) { if (value == null) { return JTokenType.Null; } #if HAVE_ADO_NET else if (value == DBNull.Value) { return JTokenType.Null; } #endif else if (value is string) { return GetStringValueType(current); } else if ( value is long || value is int || value is short || value is sbyte || value is ulong || value is uint || value is ushort || value is byte ) { return JTokenType.Integer; } else if (value is Enum) { return JTokenType.Integer; } #if HAVE_BIG_INTEGER else if (value is BigInteger) { return JTokenType.Integer; } #endif else if (value is double || value is float || value is decimal) { return JTokenType.Float; } else if (value is DateTime) { return JTokenType.Date; } #if HAVE_DATE_TIME_OFFSET else if (value is DateTimeOffset) { return JTokenType.Date; } #endif else if (value is byte[]) { return JTokenType.Bytes; } else if (value is bool) { return JTokenType.Boolean; } else if (value is Guid) { return JTokenType.Guid; } else if (value is Uri) { return JTokenType.Uri; } else if (value is TimeSpan) { return JTokenType.TimeSpan; } throw new ArgumentException( "Could not determine JSON object type for type {0}.".FormatWith( CultureInfo.InvariantCulture, value.GetType() ) ); }
private EvaluationDetail <JToken> Evaluate(string featureKey, User user, JToken defaultValue, JTokenType?expectedType, EventFactory eventFactory) { if (!Initialized()) { if (_featureStore.Initialized()) { Log.Warn("Flag evaluation before client initialized; using last known values from feature store"); } else { Log.Warn("Flag evaluation before client initialized; feature store unavailable, returning default value"); return(new EvaluationDetail <JToken>(defaultValue, null, new EvaluationReason.Error(EvaluationErrorKind.CLIENT_NOT_READY))); } } FeatureFlag featureFlag = null; try { featureFlag = _featureStore.Get(VersionedDataKind.Features, featureKey); if (featureFlag == null) { Log.InfoFormat("Unknown feature flag {0}; returning default value", featureKey); _eventProcessor.SendEvent(eventFactory.NewUnknownFeatureRequestEvent(featureKey, user, defaultValue, EvaluationErrorKind.FLAG_NOT_FOUND)); return(new EvaluationDetail <JToken>(defaultValue, null, new EvaluationReason.Error(EvaluationErrorKind.FLAG_NOT_FOUND))); } if (user == null || user.Key == null) { Log.Warn("Feature flag evaluation called with null user or null user key. Returning default"); _eventProcessor.SendEvent(eventFactory.NewDefaultFeatureRequestEvent(featureFlag, user, defaultValue, EvaluationErrorKind.USER_NOT_SPECIFIED)); return(new EvaluationDetail <JToken>(defaultValue, null, new EvaluationReason.Error(EvaluationErrorKind.USER_NOT_SPECIFIED))); } FeatureFlag.EvalResult evalResult = featureFlag.Evaluate(user, _featureStore, eventFactory); if (!IsOffline()) { foreach (var prereqEvent in evalResult.PrerequisiteEvents) { _eventProcessor.SendEvent(prereqEvent); } } var detail = evalResult.Result; if (detail.VariationIndex == null) { detail = new EvaluationDetail <JToken>(defaultValue, null, detail.Reason); } if (detail.Value != null && !CheckResultType(expectedType, detail.Value)) { Log.ErrorFormat("Expected type: {0} but got {1} when evaluating FeatureFlag: {2}. Returning default", expectedType, detail.Value.GetType(), featureKey); _eventProcessor.SendEvent(eventFactory.NewDefaultFeatureRequestEvent(featureFlag, user, defaultValue, EvaluationErrorKind.WRONG_TYPE)); return(new EvaluationDetail <JToken>(defaultValue, null, new EvaluationReason.Error(EvaluationErrorKind.WRONG_TYPE))); } _eventProcessor.SendEvent(eventFactory.NewFeatureRequestEvent(featureFlag, user, detail, defaultValue)); return(detail); } catch (Exception e) { Log.ErrorFormat("Encountered exception in LaunchDarkly client: {0} when evaluating feature key: {1} for user key: {2}", Util.ExceptionMessage(e), featureKey, user.Key); Log.Debug(e.ToString(), e); var detail = new EvaluationDetail <JToken>(defaultValue, null, new EvaluationReason.Error(EvaluationErrorKind.EXCEPTION)); if (featureFlag == null) { _eventProcessor.SendEvent(eventFactory.NewUnknownFeatureRequestEvent(featureKey, user, defaultValue, EvaluationErrorKind.EXCEPTION)); } else { _eventProcessor.SendEvent(eventFactory.NewFeatureRequestEvent(featureFlag, user, detail, defaultValue)); } return(detail); } }
private static JTokenType \u202D(JTokenType?_param0) { // ISSUE: unable to decompile the method. }
private static JTokenType GetValueType(JTokenType?current, object value) { if (value == null) { return(JTokenType.Null); } #if !(DOTNET || PORTABLE40 || (UNITY_WSA || UNITY_WINRT)) else if (value == DBNull.Value) { return(JTokenType.Null); } #endif else if (value is string) { return(GetStringValueType(current)); } else if (value is long || value is int || value is short || value is sbyte || value is ulong || value is uint || value is ushort || value is byte) { return(JTokenType.Integer); } else if (value is Enum) { return(JTokenType.Integer); } #if !(NET20 || NET35 || PORTABLE40 || (UNITY_WSA || UNITY_WINRT)) else if (value is BigInteger) { return(JTokenType.Integer); } #endif else if (value is double || value is float || value is decimal) { return(JTokenType.Float); } else if (value is DateTime) { return(JTokenType.Date); } #if !NET20 else if (value is DateTimeOffset) { return(JTokenType.Date); } #endif else if (value is byte[]) { return(JTokenType.Bytes); } else if (value is bool) { return(JTokenType.Boolean); } else if (value is Guid) { return(JTokenType.Guid); } else if (value is Uri) { return(JTokenType.Uri); } else if (value is TimeSpan) { return(JTokenType.TimeSpan); } throw new ArgumentException("Could not determine JSON object type for type {0}.".FormatWith(CultureInfo.InvariantCulture, value.GetType())); }
public override bool Read() { if (HandleValueType()) { return(true); } while (_reader.Read()) { switch (_reader.NodeType) { case XmlNodeType.Element: string typeName = _reader.GetAttribute("type"); if (typeName == null) { throw new Exception("No type specified."); } _valueType = (JTokenType)Enum.Parse(typeof(JTokenType), typeName, true); switch (PeekState()) { case JTokenType.None: HandleValueType(); return(true); case JTokenType.Object: SetToken(JsonToken.PropertyName, _reader.LocalName); _stateStack.Push(JTokenType.Property); return(true); case JTokenType.Array: case JTokenType.Constructor: continue; default: throw new ArgumentOutOfRangeException(); } case XmlNodeType.EndElement: switch (_stateStack.Peek()) { case JTokenType.Object: SetToken(JsonToken.EndObject); _stateStack.Pop(); if (PeekState() == JTokenType.Property) { _stateStack.Pop(); } return(true); case JTokenType.Array: SetToken(JsonToken.EndArray); _stateStack.Pop(); if (PeekState() == JTokenType.Property) { _stateStack.Pop(); } return(true); case JTokenType.Constructor: SetToken(JsonToken.EndConstructor); _stateStack.Pop(); if (PeekState() == JTokenType.Property) { _stateStack.Pop(); } return(true); } _stateStack.Pop(); if (PeekState() == JTokenType.Property) { _stateStack.Pop(); } break; case XmlNodeType.Text: case XmlNodeType.CDATA: switch (_valueType) { case JTokenType.Integer: SetToken(JsonToken.Integer, Convert.ToInt64(_reader.Value, CultureInfo.InvariantCulture)); break; case JTokenType.Float: SetToken(JsonToken.Float, Convert.ToDouble(_reader.Value, CultureInfo.InvariantCulture)); break; case JTokenType.String: case JTokenType.Uri: case JTokenType.TimeSpan: case JTokenType.Guid: SetToken(JsonToken.String, _reader.Value); break; case JTokenType.Boolean: SetToken(JsonToken.Boolean, Convert.ToBoolean(_reader.Value, CultureInfo.InvariantCulture)); break; case JTokenType.Date: SetToken(JsonToken.Date, Convert.ToDateTime(_reader.Value, CultureInfo.InvariantCulture)); break; case JTokenType.Bytes: SetToken(JsonToken.Bytes, Convert.FromBase64String(_reader.Value)); break; default: throw new ArgumentOutOfRangeException(); } _stateStack.Push(_valueType.Value); return(true); default: throw new ArgumentOutOfRangeException(); } } return(false); }
private static JTokenType GetValueType(JTokenType?current, object value) { switch (value) { case (null): return(JTokenType.Null); break; } if (value == DBNull.Value) { return(JTokenType.Null); } if (value is string) { return(GetStringValueType(current)); } if ((((value is long) || (value is int)) || ((value is short) || (value is sbyte))) || (((value is ulong) || (value is uint)) || ((value is ushort) || (value is byte)))) { return(JTokenType.Integer); } if (value is Enum) { return(JTokenType.Integer); } if (value is BigInteger) { return(JTokenType.Integer); } if (((value is double) || (value is float)) || (value is decimal)) { return(JTokenType.Float); } if (value is DateTime) { return(JTokenType.Date); } if (value is DateTimeOffset) { return(JTokenType.Date); } if (value is byte[]) { return(JTokenType.Bytes); } if (value is bool) { return(JTokenType.Boolean); } if (value is Guid) { return(JTokenType.Guid); } if (value is Uri) { return(JTokenType.Uri); } if (!(value is TimeSpan)) { throw new ArgumentException("Could not determine JSON object type for type {0}.".FormatWith(CultureInfo.InvariantCulture, value.GetType())); } return(JTokenType.TimeSpan); }
private JToken Evaluate(string featureKey, User user, JToken defaultValue, JTokenType?expectedType) { if (!Initialized()) { Log.Warn("LaunchDarkly client has not yet been initialized. Returning default"); return(defaultValue); } if (user == null || user.Key == null) { Log.Warn("Feature flag evaluation called with null user or null user key. Returning default"); sendFlagRequestEvent(featureKey, user, defaultValue, defaultValue, null); return(defaultValue); } try { var featureFlag = _featureStore.Get(VersionedDataKind.Features, featureKey); if (featureFlag == null) { Log.InfoFormat("Unknown feature flag {0}; returning default value", featureKey); sendFlagRequestEvent(featureKey, user, defaultValue, defaultValue, null); return(defaultValue); } FeatureFlag.EvalResult evalResult = featureFlag.Evaluate(user, _featureStore, _configuration); if (!IsOffline()) { foreach (var prereqEvent in evalResult.PrerequisiteEvents) { _eventStore.Add(prereqEvent); } } if (evalResult.Result != null) { if (expectedType != null && !evalResult.Result.Type.Equals(expectedType)) { Log.ErrorFormat("Expected type: {0} but got {1} when evaluating FeatureFlag: {2}. Returning default", expectedType, evalResult.GetType(), featureKey); sendFlagRequestEvent(featureKey, user, defaultValue, defaultValue, featureFlag.Version); return(defaultValue); } sendFlagRequestEvent(featureKey, user, evalResult.Result, defaultValue, featureFlag.Version); return(evalResult.Result); } } catch (Exception e) { Log.ErrorFormat("Encountered exception in LaunchDarkly client: {0} when evaluating feature key: {1} for user key: {2}", e, Util.ExceptionMessage(e), featureKey, user.Key); Log.Debug("{0}", e); } sendFlagRequestEvent(featureKey, user, defaultValue, defaultValue, null); return(defaultValue); }
private static JTokenType \u200E(JTokenType?_param0, object _param1) { // ISSUE: unable to decompile the method. }