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

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

Returns the metadata of the latest versions of the dataset .
public GetDatasetLatestMetadataVersion ( System.Int64 datasetId, bool includeCheckouts = false ) : XmlDocument
datasetId System.Int64 The dataset whose latest metadata version is returned.
includeCheckouts bool Determines whether the method should return the metadata if the dataset is checked-out.
Результат System.Xml.XmlDocument
        public XmlDocument GetDatasetLatestMetadataVersion(Int64 datasetId, bool includeCheckouts = false)
        {
            if (includeCheckouts) // the working copy version of checked out dataset is also included
            {
                var q1 = DatasetVersionRepo.Query(p =>
                                (p.Dataset.Status == DatasetStatus.CheckedIn || p.Dataset.Status == DatasetStatus.CheckedOut)
                            && (p.Status == DatasetVersionStatus.CheckedIn || p.Status == DatasetVersionStatus.CheckedOut)
                            && (p.Dataset.Id == datasetId)
                        ).Select(p => p.Metadata);
                return (q1.FirstOrDefault());
            }
            else //just latest checked in version of the checked in dataset
            {
                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)
                            && (p.Dataset.Id == datasetId)
                        ).Select(p => p.Metadata);
                return (q1.FirstOrDefault());
            }

            //// 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
        public ActionResult Cancel()
        {
            //public ActionResult LoadMetadata(long datasetId, bool locked = false, bool created = false, bool fromEditMode = false, bool resetTaskManager = false, XmlDocument newMetadata = null)

            TaskManager = (CreateTaskmanager)Session["CreateDatasetTaskmanager"];
            if (TaskManager != null)
            {
                DatasetManager dm = new DatasetManager();
                long datasetid = -1;
                bool resetTaskManager = true;
                XmlDocument metadata = null;
                bool editmode = false;
                bool created = false;

                if (TaskManager.Bus.ContainsKey(CreateTaskmanager.ENTITY_ID))
                {
                    datasetid = Convert.ToInt64(TaskManager.Bus[CreateTaskmanager.ENTITY_ID]);
                }

                if (datasetid > -1 && dm.IsDatasetCheckedIn(datasetid))
                {
                    metadata = dm.GetDatasetLatestMetadataVersion(datasetid);
                    editmode = true;
                    created = true;
                }

                return RedirectToAction("LoadMetadata", "Form", new { area = "DCM", entityId = datasetid, created = created, locked = true, fromEditMode = editmode, resetTaskManager = resetTaskManager, newMetadata = metadata });
            }

            return RedirectToAction("StartMetadataEditor", "Form");
        }
All Usage Examples Of BExIS.Dlm.Services.Data.DatasetManager::GetDatasetLatestMetadataVersion