public static Boolean IsUnique(long datasetId, List<long> primaryKeys)
{
Hashtable hashtable = new Hashtable();
// load data
DatasetManager datasetManager = new DatasetManager();
Dataset dataset = datasetManager.GetDataset(datasetId);
DatasetVersion datasetVersion;
List<long> dataTupleIds = new List<long>();
if (datasetManager.IsDatasetCheckedIn(datasetId))
{
datasetVersion = datasetManager.GetDatasetLatestVersion(datasetId);
#region load all datatuples first
int size = 10000;
int counter = 0;
IEnumerable<AbstractTuple> dataTuples;
do
{
dataTuples = datasetManager.GetDatasetVersionEffectiveTuples(datasetVersion,counter,size);
//byte[] pKey;
string pKey;
foreach (DataTuple dt in dataTuples)
{
//pKey = getPrimaryKeysAsByteArray(dt, primaryKeys);
pKey = getPrimaryKeysAsString(dt, primaryKeys);
if (pKey.Count() > 0)
{
try
{
//Debug.WriteLine(pKey +" : " +Utility.ComputeKey(pKey));
hashtable.Add(pKey, "");
//hashtable.Add(pKey, 0);
}
catch
{
return false;
}
}
}
counter++;
}
while (dataTuples.Count() >= (size * counter));
#endregion
}
else
{
throw new Exception("Dataset is not checked in.");
}
return true;
}