BExIS.Dlm.Services.Data.DatasetManager.getDatasetVersionEffectiveTupleIds C# (CSharp) Method

getDatasetVersionEffectiveTupleIds() private method

private getDatasetVersionEffectiveTupleIds ( DatasetVersion datasetVersion ) : List
datasetVersion BExIS.Dlm.Entities.Data.DatasetVersion
return List
        private List<Int64> getDatasetVersionEffectiveTupleIds(DatasetVersion datasetVersion)
        {
            List<Int64> tuples = new List<Int64>();
            Dataset dataset = datasetVersion.Dataset;
            if (dataset.Status == DatasetStatus.Deleted)
                throw new Exception(string.Format("Provided dataset version {0} belongs to deleted dataset {1}.", datasetVersion.Id, dataset.Id));
            Int64 latestVersionId = dataset.Versions.OrderByDescending(t => t.Timestamp).Where(p => p.Timestamp <= dataset.LastCheckIOTimestamp).First().Id; // no need to replace it with the STATUS version
            if (datasetVersion.Id > latestVersionId)
                throw new Exception(string.Format("Invalid version id. The dataset version id {0} is greater than the latest version number!", datasetVersion.Id));

            if (latestVersionId == datasetVersion.Id && dataset.Status == DatasetStatus.CheckedOut) // its a request for the working copy
            {
                tuples = getWorkingCopyTupleIds(datasetVersion);
            }
            else if (latestVersionId == datasetVersion.Id && dataset.Status == DatasetStatus.CheckedIn) // its a request for the latest checked in version that should be served from the Tuples table
            {
                tuples = getPrimaryTupleIds(datasetVersion);
            }
            else
            {
                throw new NotSupportedException(string.Format("Invalid version id. The dataset version id {0} is not referring to the latest or working versions. This function is able to access historical versions, use GetDatasetVersionEffectiveTuples function instead!", datasetVersion.Id));
            }
            return (tuples);
        }