internal static string GetQuerySource(DocumentConventions conventions, Type type, IndexSourceType sourceType) { var collectionName = conventions.GetCollectionName(type); string source; switch (sourceType) { case IndexSourceType.Documents: source = "docs"; break; case IndexSourceType.Counters: source = "counters"; break; case IndexSourceType.TimeSeries: source = "timeSeries"; break; default: throw new NotSupportedException($"Not supported index source type '{sourceType}'."); } if (StringExtensions.IsIdentifier(collectionName)) { return($"{source}.{collectionName}"); } return($"{source}[@\"{collectionName.Replace("\"", "\"\"")}\"]"); }
protected MapIndexBase(IndexType type, IndexSourceType sourceType, T definition) : base(type, sourceType, definition) { }
internal static string GetQuerySource(DocumentConventions conventions, Type type, IndexSourceType sourceType) { var collectionName = conventions.GetCollectionName(type); string source; switch (sourceType) { case IndexSourceType.Documents: source = "docs"; break; case IndexSourceType.Counters: source = "counters"; break; case IndexSourceType.TimeSeries: source = "timeSeries"; break; default: throw new NotSupportedException($"Not supported index source type '{sourceType}'."); } if (StringExtensions.IsIdentifier(collectionName)) { return($"{source}.{collectionName}"); } var builder = new StringBuilder($"{source}[@\""); StringExtensions.EscapeString(builder, collectionName); return(builder.Append("\"]").ToString()); }