BExIS.Dlm.Services.Data.DatasetManager.GetDatasetLatestMetadataVersions C# (CSharp) Метод

GetDatasetLatestMetadataVersions() публичный Метод

Returns the metadata of the latest versions of all datasets associated to a data structure, alongside with their identifiers including/ excluding the checked out versions.
public GetDatasetLatestMetadataVersions ( System.Int64 structureId, bool includeCheckouts = false ) : XmlDocument>.Dictionary
structureId System.Int64 The data structure that its associated datasets are searched.
includeCheckouts bool Determines whether the checked out versions should be included in the result.
Результат XmlDocument>.Dictionary
        public Dictionary<Int64, XmlDocument> GetDatasetLatestMetadataVersions(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, XmlDocument>(p.Dataset.Id, p.Metadata));
                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.Dataset.Status == DatasetStatus.CheckedOut) // include checked in (latest) versions of currently checked out datasets
                        && (p.Status == DatasetVersionStatus.CheckedIn)
                    ).Select(p => new KeyValuePair<Int64, XmlDocument>(p.Dataset.Id, p.Metadata));
                return (q1.ToList().ToDictionary(kvp => kvp.Key, kvp => kvp.Value));
            }

            //// 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());
        }

Same methods

DatasetManager::GetDatasetLatestMetadataVersions ( bool includeCheckouts = false ) : XmlDocument>.Dictionary

Usage Example

Пример #1
0
        public List<ListViewItem> LoadDatasetVersionViewList( DataStructureType dataStructureType)
        {
            PermissionManager permissionManager = new PermissionManager();
                SubjectManager subjectManager = new SubjectManager();

                // add security
                ICollection<long> datasetIDs = permissionManager.GetAllDataIds(subjectManager.GetUserByName(GetUsernameOrDefault()).Id, 1, RightType.Update).ToList();

                DataStructureManager dataStructureManager = new DataStructureManager();
                DatasetManager dm = new DatasetManager();

                Dictionary<long, XmlDocument> dmtemp = new Dictionary<long, XmlDocument>();
                dmtemp = dm.GetDatasetLatestMetadataVersions();

                List<ListViewItem> temp = new List<ListViewItem>();

                if (dataStructureType.Equals(DataStructureType.Structured))
                {
                    List<StructuredDataStructure> list = dataStructureManager.StructuredDataStructureRepo.Get().ToList();

                    foreach (StructuredDataStructure sds in list)
                    {
                        sds.Materialize();

                        foreach (Dataset d in sds.Datasets)
                        {
                            if (dm.IsDatasetCheckedIn(d.Id))
                            {
                                if (datasetIDs.Contains(d.Id))
                                {
                                    temp.Add(new ListViewItem(d.Id,
                                        XmlDatasetHelper.GetInformation(dm.GetDatasetLatestVersion(d),
                                            NameAttributeValues.title)));
                                }
                            }
                        }
                    }

                }
                else
                {
                    List<UnStructuredDataStructure> list = dataStructureManager.UnStructuredDataStructureRepo.Get().ToList();

                    foreach (UnStructuredDataStructure sds in list)
                    {
                        foreach (Dataset d in sds.Datasets)
                        {
                            if (datasetIDs.Contains(d.Id))
                            {
                                if (dm.IsDatasetCheckedIn(d.Id))
                                {
                                    DatasetVersion datasetVersion = dm.GetDatasetLatestVersion(d);
                                    temp.Add(new ListViewItem(d.Id,
                                        XmlDatasetHelper.GetInformation(datasetVersion, NameAttributeValues.title)));
                                }
                            }
                        }
                    }
                }

               return temp.OrderBy(p => p.Title).ToList();
        }
All Usage Examples Of BExIS.Dlm.Services.Data.DatasetManager::GetDatasetLatestMetadataVersions