internal virtual object ComposeParameter(object value) { if (_queryBase != null) { return(_queryBase.ComposeParameter(value)); } if (_connector == null || !_connector.CanParameterizeQueries) { if (value is string s) { return($"'{s.EscapeGremlinString()}'"); } if (value is DateTime dt) { return(dt.Ticks.ToString(CultureInfo.InvariantCulture)); } return(value?.ToString().ToLower()); } string v; lock (Parameters) { v = $"__p{Parameters.Count}"; Parameters.Add(v, value); } return(v); }
internal virtual object ComposeParameter(object value) { if (_queryBase != null) { return(_queryBase.ComposeParameter(value)); } if (_connector == null || !_connector.CanParameterizeQueries) { if (value is string s) { return($"'{s.EscapeGremlinString()}'"); } if (value is EpochDateTime epoch) { return(epoch.Epoch.ToString(CultureInfo.InvariantCulture)); } if (value is DateTime dt) { return(dt.Ticks.ToString(CultureInfo.InvariantCulture)); } return(value?.ToString().ToLower()); } string v; if (value is decimal o) { if (o >= int.MaxValue) { return(o); } } if (value is long l) { if (l >= int.MaxValue) { return(l); } } lock (Parameters) { v = $"__p{Parameters.Count}"; if (value is EpochDateTime epoch) { Parameters.Add(v, epoch.Epoch); } else { Parameters.Add(v, value); } } return(v); }
public static GremlinQuery By(this GremlinQuery queryBase, string name, OrderingTypes ordering) { return(new ComposedGremlinQuery(queryBase, $".by({queryBase.ComposeParameter(name)},{ordering.ToString().ToLower()})")); }
public static GremlinQuery Store(this GremlinQuery queryBase, string value) { return(new ComposedGremlinQuery(queryBase, $".store({queryBase.ComposeParameter(value)})")); }
public static GremlinQuery V(this GremlinQuery queryBase, string id) { return(new ComposedGremlinQuery(queryBase, $".V({queryBase.ComposeParameter(id)})")); }
public static GremlinQuery Tail(this GremlinQuery queryBase, int last) { return(new ComposedGremlinQuery(queryBase, $"tail({queryBase.ComposeParameter(last)})")); }
public static GremlinQuery Times(this GremlinQuery queryBase, int times) { return(new ComposedGremlinQuery(queryBase, $"times({queryBase.ComposeParameter(times)})")); }
public static GremlinQuery AddV(this GremlinQuery queryBase, string label) { return(new ComposedGremlinQuery(queryBase, $"addV({queryBase.ComposeParameter(label)})")); }
public static GremlinQuery Select(this GremlinQuery queryBase, params string[] items) { return(new ComposedGremlinQuery(queryBase, $".select({string.Join(",", items.Select(s => $"{queryBase.ComposeParameter(s)}"))})")); }
public static GremlinQuery Has(this GremlinQuery queryBase, string label, string key, Func <PredicateGremlinQuery, GremlinQuery> expression) { return(new ComposedGremlinQuery(queryBase, $"has({queryBase.ComposeParameter(label)},{queryBase.ComposeParameter(key)},{expression.Invoke(new PredicateGremlinQuery(queryBase))})")); }
public static GremlinQuery HasNot(this GremlinQuery queryBase, string key) { return(new ComposedGremlinQuery(queryBase, $"hasNot({queryBase.ComposeParameter(key)})")); }
/// <summary> /// It is possible to filter scalar values using is()-step (filter). /// </summary> /// <param name="queryBase">the base query to append the step to</param> /// <param name="value">the filter value</param> /// <returns></returns> public static GremlinQuery Is(this GremlinQuery queryBase, int value) { return(new ComposedGremlinQuery(queryBase, $".is({queryBase.ComposeParameter(value)})")); }
public static GremlinQuery ValueMap(this GremlinQuery queryBase, bool inclueAll) { return(new ComposedGremlinQuery(queryBase, $".valueMap({queryBase.ComposeParameter(inclueAll)})")); }
public static GremlinQuery Constant(this GremlinQuery queryBase, bool value) { return(new ComposedGremlinQuery(queryBase, $".constant({queryBase.ComposeParameter(value)})")); }
public static GremlinQuery By(this GremlinQuery queryBase, string name) { return(new ComposedGremlinQuery(queryBase, $".by({queryBase.ComposeParameter(name)})")); }
public static GremlinQuery Sample(this GremlinQuery queryBase, int startVertex) { return(new ComposedGremlinQuery(queryBase, $".sample({queryBase.ComposeParameter(startVertex)})")); }
public static GremlinQuery Has(this GremlinQuery queryBase, string key, EpochDateTime value) { return(new ComposedGremlinQuery(queryBase, $"has({queryBase.ComposeParameter(key)},{queryBase.ComposeParameter(value)})")); }
public static GremlinQuery Select(this GremlinQuery queryBase, SelectTypes selectType, params string[] items) { if (items.ContainsElements()) { return(new ComposedGremlinQuery(queryBase, $".select({selectType.ToString().ToLower()},{string.Join(",", items.Select(s => $"{queryBase.ComposeParameter(s)}"))})")); } return(new ComposedGremlinQuery(queryBase, $".select({selectType.ToString().ToLower()})")); }
public static GremlinQuery Has(this GremlinQuery queryBase, string label, string key, string value) { return(new ComposedGremlinQuery(queryBase, $"has({queryBase.ComposeParameter(label)},{queryBase.ComposeParameter(key)},{queryBase.ComposeParameter(value)})")); }
private static GremlinQuery Params(this GremlinQuery queryBase, string property, string name, float p2) { return(new ComposedGremlinQuery(queryBase, $"{property}('{name}',{queryBase.ComposeParameter(p2)})")); }
internal static GremlinQuery Params(this GremlinQuery queryBase, string name, params bool[] values) { return(new ComposedGremlinQuery(queryBase, $".{name}({string.Join(",", values.Select(s => queryBase.ComposeParameter(s)))})")); }
public static GremlinQuery Option(this GremlinQuery queryBase, decimal value, Func <GremlinQuery, GremlinQuery> expression) { return(new LambdaComposedGremlinQuery(queryBase, $"option({queryBase.ComposeParameter(value)},{{0}})", expression)); }
public static GremlinQuery Project(this GremlinQuery queryBase, params string[] values) { return(new ComposedGremlinQuery(queryBase, $".project({string.Join(",", values.Select(s => $"{queryBase.ComposeParameter(s)}"))})")); }
public static GremlinQuery Coin(this GremlinQuery queryBase, double bias) { return(new ComposedGremlinQuery(queryBase, $"coin({queryBase.ComposeParameter(bias)})")); }
public static GremlinQuery V(this GremlinQuery queryBase, string id, string partitionKey) { return(new ComposedGremlinQuery(queryBase, $".V([{queryBase.ComposeParameter(partitionKey)},{queryBase.ComposeParameter(id)}])")); }