public Dictionary<Int64, DatasetVersion> GetDatasetLatestVersions(Int64 structureId, bool includeCheckouts = false)
{
if (includeCheckouts) // the working copy versions of checked out datasets are also included
{
var q1 = DatasetVersionRepo.Query(p =>
(p.Dataset.DataStructure.Id == structureId)
&& (p.Dataset.Status == DatasetStatus.CheckedIn || p.Dataset.Status == DatasetStatus.CheckedOut)
&& (p.Status == DatasetVersionStatus.CheckedIn || p.Status == DatasetVersionStatus.CheckedOut)
).Select(p => new KeyValuePair<Int64, DatasetVersion>(p.Dataset.Id, p));
return (q1.ToList().ToDictionary(kvp => kvp.Key, kvp => kvp.Value));
}
else //just latest checked in versions or checked in datasets
{
var q1 = DatasetVersionRepo.Query(p =>
(p.Dataset.DataStructure.Id == structureId)
&& (p.Dataset.Status == DatasetStatus.CheckedIn)
&& (p.Status == DatasetVersionStatus.CheckedIn)
).Select(p => new KeyValuePair<Int64, DatasetVersion>(p.Dataset.Id, p));
return (q1.ToList().ToDictionary(kvp => kvp.Key, kvp => kvp.Value));
}
}