private void _ValidateOrderOptions(ObjectIndexMetadata[] indexes, OrderOptions order) { if (null != order && null != order.Indexes) { if (!_ValidateIndexNames(indexes, order.Indexes)) { throw new ArgumentException("Invalid index name supplied in OrderOptions."); } } }
public IEnumerable<IDataRecord> Iterate(string objectFullName, string constraint, uint limit, OrderOptions order, string[] iterateIndexes, ObjectIndexMetadata[] indexes) { _ValidateOrderOptions(indexes, order); if (null != iterateIndexes && 0 == iterateIndexes.Length) { _ValidateIndexNames(indexes, iterateIndexes); } return _indexer.Iterate(objectFullName, constraint, limit, order, iterateIndexes, indexes); }
private bool _ValidateIndexNames(ObjectIndexMetadata[] indexes, string[] checkNames) { bool returnValue = true; if (null != checkNames) { var namesLen = checkNames.Length; int indexesLen = 0; if (null != indexes) { indexesLen = indexes.Length; } for (int i = 0; namesLen > i; i++) { var name = checkNames[i]; if (!ObjectNameValidator.IsValidIndexName(name)) { returnValue = false; break; } // All objects have a built int ID index, which is not part of its declared metadata indexes. if (ObjectIndexProvider.IDColumn.Equals(name, StringComparison.OrdinalIgnoreCase)) { continue; } if (null != indexes) { bool foundName = false; for (int j = 0; indexesLen > j; j++) { if (name.Equals(indexes[i].Name)) { foundName = true; } } // we did not find the index name if (!foundName) { returnValue = false; break; } } } } return returnValue; }
public IEnumerable<IDataRecord> Iterate(string objectFullName, ObjectIndexMetadata[] indexes) { return _indexer.Iterate(objectFullName, indexes); }
public int[] Find(string objectFullName, string constraint, uint limit, OrderOptions order, ObjectIndexMetadata[] indexes) { int[] returnValue = null; if (null != _cache) { var parameters = new object[5 + ((null == indexes) ? 0 : indexes.Length)]; parameters[0] = objectFullName; parameters[1] = constraint; parameters[2] = limit; parameters[3] = order; parameters[4] = "F"; if (null != indexes) { for (int i = 0; indexes.Length > i; i++) { parameters[i + 5] = indexes[i]; } } returnValue = _cache.Get(parameters); if (null == returnValue) { _ValidateOrderOptions(indexes, order); returnValue = _indexer.Find(objectFullName, constraint, limit, order, indexes); _cache.Set(returnValue, parameters); } } else { returnValue = _indexer.Find(objectFullName, constraint, limit, order, indexes); } return returnValue; }
public int[] Find(string objectFullName, string constraint, ObjectIndexMetadata[] indexes) { return Find(objectFullName, constraint, 0, null, indexes); }
public bool Exists(string objectFullName, string constraint, ObjectIndexMetadata[] indexes) { return _indexer.Exists(objectFullName, constraint, indexes); }
public int Count(string objectFullName, string constraint, ObjectIndexMetadata[] indexes) { int returnValue = 0; if (null != _cache) { var parameters = new object[3 + ((null == indexes) ? 0 : indexes.Length)]; parameters[0] = objectFullName; parameters[1] = constraint; parameters[2] = "C"; if (null != indexes) { for (int i = 0; indexes.Length > i; i++) { parameters[i + 3] = indexes[i]; } } int[] cacheValue = _cache.Get(parameters); if (cacheValue != null && cacheValue.Length == 1) { returnValue = cacheValue[0]; } else { returnValue = _indexer.Count(objectFullName, constraint, indexes); _cache.Set(new int[] { returnValue }, parameters); } } else { returnValue = _indexer.Count(objectFullName, constraint, indexes); } return returnValue; }