public (string queryString, IDictionary <string, object> parameters) Serialize(IParameterCache parameterCache) { var builder = new StringBuilder(); var dict = new Dictionary <string, object>(); builder.Append(this._name); builder.Append("("); for (var i = 0; i < this._arguments.Length; i++) { var parameter = this._arguments[i]; if (i != 0) { builder.Append(", "); } if (parameter is IGremlinSerializable serializable) { builder.Append(serializable.Serialize(parameterCache).queryString); } else { var parameterName = parameterCache.Cache(parameter); dict[parameterName] = parameter; builder.Append(parameterName); } } builder.Append(")"); return(builder.ToString(), dict); }
public (string queryString, IDictionary <string, object> parameters) Serialize(IParameterCache parameterCache) { var parameters = new Dictionary <string, object>(); var builder = new StringBuilder(this.TraversalSourceName); foreach (var step in this.Steps) { if (step is IGremlinSerializable serializableStep) { var(innerQueryString, innerParameters) = serializableStep.Serialize(parameterCache); builder.Append('.'); builder.Append(innerQueryString); foreach (var kvp in innerParameters) { parameters[kvp.Key] = kvp.Value; } } else { throw new ArgumentException("Query contains non-serializable step. Please call RewriteSteps on the query first."); } } return(builder.ToString(), parameters); }
public ViewModelParameterSetter(IParameterResolver parameterResolver, IParameterCache parameterCache) { _parameterResolver = parameterResolver ?? throw new ArgumentNullException(nameof(parameterResolver)); _parameterCache = parameterCache ?? throw new ArgumentNullException(nameof(parameterCache)); }
public abstract (string queryString, IDictionary <string, object> parameters) Serialize(IParameterCache parameterCache);
public (string queryString, IDictionary <string, object> parameters) Serialize(IParameterCache parameterCache) { var parameters = new Dictionary <string, object>(); var builder = new StringBuilder(); var appendComma = false; builder.Append(this.Name); builder.Append("("); foreach (var parameter in this.Parameters) { if (appendComma) { builder.Append(", "); } else { appendComma = true; } if (parameter is IGremlinSerializable serializable) { var(innerQueryString, innerParameters) = serializable.Serialize(parameterCache); builder.Append(innerQueryString); foreach (var kvp in innerParameters) { parameters[kvp.Key] = kvp.Value; } } else { var newParameterName = parameterCache.Cache(parameter); parameters[newParameterName] = parameter; builder.Append(newParameterName); } } builder.Append(")"); return(builder.ToString(), parameters); }
public (string queryString, IDictionary <string, object> parameters) Serialize(IParameterCache parameterCache) { return(this._value, ImmutableDictionary <string, object> .Empty); }