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

GetDatasetLatestIds() public method

Returns the list of identifiers of all the matching datasets. If includeCheckouts is false, just the datasets having the latest version checked-in are included , otherwise the datasets with versions either checked-in or checked-out will be included.
public GetDatasetLatestIds ( bool includeCheckouts = false ) : List
includeCheckouts bool Determines whether the checked out versions should be included in the result.
return List
        public List<Int64> GetDatasetLatestIds(bool includeCheckouts = false)
        {
            if (includeCheckouts) // the datasets that their latest version is checked-in or checked-out
            {
                var q1 = DatasetVersionRepo.Query(p =>
                        (p.Dataset.Status == DatasetStatus.CheckedIn || p.Dataset.Status == DatasetStatus.CheckedOut)
                        && (p.Status == DatasetVersionStatus.CheckedIn || p.Status == DatasetVersionStatus.CheckedOut)
                    )
                    .Select(p => p.Dataset.Id)
                    .OrderBy(p=>p)
                    .Distinct();
                return (q1.ToList());
            }
            else //just the datasets that their latest version is checked-in
            {
                var q1 = DatasetVersionRepo.Query(p =>
                        (p.Dataset.Status == DatasetStatus.CheckedIn || p.Dataset.Status == DatasetStatus.CheckedOut) // include checked in (latest) versions of currently checked out datasets
                        && (p.Status == DatasetVersionStatus.CheckedIn)
                    )
                    .Select(p => p.Dataset.Id)
                    .OrderBy(p => p)
                    .Distinct();
                return (q1.ToList());
            }

            //// it works using the timestamp technique
            //var qu = (from dsv in DatasetVersionRepo.Get(p => 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).Metadata);

            //return (qu.ToList());
        }

Usage Example

示例#1
0
        /// <summary>
        /// Show all Datasetids with export functions
        /// </summary>
        /// <returns></returns>
        // GET: api/Export
        public IEnumerable<long> Get()
        {
            DatasetManager dm = new DatasetManager();
            var datasetIds = dm.GetDatasetLatestIds();

            return datasetIds;
        }
All Usage Examples Of BExIS.Dlm.Services.Data.DatasetManager::GetDatasetLatestIds