public GetDatasetLatestVersions ( List |
||
datasetIds | List |
The list of identifiers of the datasets whose their latest versions is requested |
includeCheckouts | bool | Determines whether the checked out versions should be included in the result. |
return | List |
public List<DatasetVersion> GetDatasetLatestVersions(List<Int64> datasetIds, bool includeCheckouts = false)
{
if (includeCheckouts) // the working copy versions of checked out datasets are also included
{
var q1 = DatasetVersionRepo.Query(p =>
datasetIds.Contains(p.Dataset.Id)
&& (p.Dataset.Status == DatasetStatus.CheckedIn || p.Dataset.Status == DatasetStatus.CheckedOut)
&& (p.Status == DatasetVersionStatus.CheckedIn || p.Status == DatasetVersionStatus.CheckedOut)
);
return (q1.ToList());
}
else //just latest checked in versions or checked in datasets
{
var q1 = DatasetVersionRepo.Query(p =>
datasetIds.Contains(p.Dataset.Id)
&& (p.Dataset.Status == DatasetStatus.CheckedIn)
&& (p.Status == DatasetVersionStatus.CheckedIn)
);
return (q1.ToList());
}
// also works, but uses the time stamps instead of STATUS info
// var qu = (from dsv in DatasetVersionRepo.Get(p => datasetIds.Contains(p.Dataset.Id) && p.Dataset.Status != DatasetStatus.Deleted)
// group dsv by dsv.Dataset.Id into grp
// let maxTimestamp = grp.Max(p => p.Timestamp)
// select grp.Single(p => p.Timestamp >= maxTimestamp));
//return (qu.ToList());
}
DatasetManager::GetDatasetLatestVersions ( System.Int64 structureId, bool includeCheckouts = false ) : DatasetVersion>.Dictionary |
|
DatasetManager::GetDatasetLatestVersions ( bool includeCheckouts = false ) : List |
public ActionResult Datasets_Select() { DatasetManager datasetManager = new DatasetManager(); PermissionManager permissionManager = new PermissionManager(); SubjectManager subjectManager = new SubjectManager(); // DATA //var ids = datasetManager.GetDatasetLatestIds(); List<DatasetVersion> data = datasetManager.GetDatasetLatestVersions(); // .GetDatasetLatestVersions(ids); List<DatasetGridRowModel> datasets = new List<DatasetGridRowModel>(); data.ForEach(d => datasets.Add(DatasetGridRowModel.Convert(d, permissionManager.ExistsDataPermission(subjectManager.GetGroupByName("everyone").Id, 1, d.Id, RightType.View)))); return View(new GridModel<DatasetGridRowModel> { Data = datasets }); }