private DataTable getData(long id, long versionId = 0) { DatasetManager dm = new DatasetManager(); try { // if versionid = 0 - get latest Version // if version is not 0 // check if version is latest version if (id != 0 && (versionId == 0 || dm.GetDatasetLatestVersionId(id).Equals(versionId))) { DataTable data; data = dm.GetLatestDatasetVersionTuples(id); data.Strip(); return(data); } // if not return(getHistoryData(versionId)); } finally { dm.Dispose(); } }
public void GetDatasetVersionEffectiveDataTuples_CalledOlderVersionWithPaging_ReturnListOfAbstractTuples() { //Arrange DatasetManager datasetManager = null; int pageSize = 4; int pageNumber = 2; try { datasetManager = new DatasetManager(); var latestDatasetVersionId = datasetManager.GetDatasetLatestVersionId(datasetId); //get latest datatupleid before create a new dataset and data using (var uow = this.GetUnitOfWork()) { var latestDataTuple = uow.GetReadOnlyRepository <DataTuple>().Get().LastOrDefault(); var firstDataTuple = uow.GetReadOnlyRepository <DataTuple>().Get().Where(dt => dt.DatasetVersion.Id.Equals(latestDatasetVersionId)).FirstOrDefault(); if (latestDataTuple != null) { latestDataTupleId = latestDataTuple.Id; } if (firstDataTuple != null) { firstDataTupleId = firstDataTuple.Id; } } var dataset = datasetManager.GetDataset(datasetId); dataset = dsHelper.UpdateOneTupleForDataset(dataset, (StructuredDataStructure)dataset.DataStructure, firstDataTupleId, 1, datasetManager); datasetManager.CheckInDataset(dataset.Id, "for testing datatuples with versions", username, ViewCreationBehavior.None); dataset = dsHelper.UpdateOneTupleForDataset(dataset, (StructuredDataStructure)dataset.DataStructure, latestDataTupleId, 2, datasetManager); datasetManager.CheckInDataset(dataset.Id, "for testing datatuples with versions", username, ViewCreationBehavior.None); //Act List <DatasetVersion> datasetversions = datasetManager.GetDatasetVersions(datasetId).OrderBy(d => d.Timestamp).ToList(); var resultAll = datasetManager.GetDatasetVersionEffectiveTuples(datasetversions.ElementAt(datasetversions.Count - 2)); List <long> comapreIds = resultAll.OrderBy(dt => dt.OrderNo).Skip(pageNumber * pageSize).Take(pageSize).Select(dt => dt.Id).ToList(); var result = datasetManager.GetDatasetVersionEffectiveTuples(datasetversions.ElementAt(datasetversions.Count - 2), pageNumber, pageSize); // get datatuples from the one before the latest var resultIds = result.Select(dt => dt.Id).ToList(); //Assert Assert.That(comapreIds, Is.EquivalentTo(resultIds)); } finally { datasetManager.Dispose(); } }
/// <summary> /// This funcion finds all datasets that a performer is involved. /// </summary> /// <param name="dm">A list of all datasets</param> /// <param name="userName">The performer's username</param> /// <returns>A list of dataset IDs</returns> private List <long> FindDatasetsFromPerformerUsername(DatasetManager dm, UserManager um, string username) { List <long> datasetIds = dm.GetDatasetLatestIds(); List <long> Ids = new List <long>(); foreach (long datasetId in datasetIds) { List <string> names = FindDatasetPerformers(dm, datasetId, dm.GetDatasetLatestVersionId(datasetId)); if (names.Contains(username)) { Ids.Add(datasetId); } } return(Ids); }
/// <summary> /// /// </summary> /// <param name="datasetid"></param> /// <param name="name"></param> /// <returns></returns> public string GetInformation(long datasetid, NameAttributeValues name) { DatasetManager dm = new DatasetManager(); try { //DatasetVersion datasetVersion = dm.GetDatasetLatestVersion(datasetid); var dataset = dm.GetDataset(datasetid); if (!dm.IsDatasetCheckedIn(datasetid)) { return(string.Empty); } var versionId = dm.GetDatasetLatestVersionId(datasetid); return(GetInformationFromVersion(versionId, dataset.MetadataStructure.Id, name)); } finally { dm.Dispose(); } }
public ActionResult ShowData(long id) { DatasetManager dm = new DatasetManager(); EntityPermissionManager entityPermissionManager = new EntityPermissionManager(); try { DatasetVersion dsv; ShowDataModel model = new ShowDataModel(); string title = ""; long metadataStructureId = -1; long dataStructureId = -1; long researchPlanId = 1; XmlDocument metadata = new XmlDocument(); if (dm.IsDatasetCheckedIn(id)) { long versionId = dm.GetDatasetLatestVersionId(id); // check for zero value dsv = dm.DatasetVersionRepo.Get(versionId); // this is needed to allow dsv to access to an open session that is available via the repo metadataStructureId = dsv.Dataset.MetadataStructure.Id; //MetadataStructureManager msm = new MetadataStructureManager(); //dsv.Dataset.MetadataStructure = msm.Repo.Get(dsv.Dataset.MetadataStructure.Id); title = xmlDatasetHelper.GetInformationFromVersion(dsv.Id, NameAttributeValues.title); // this function only needs metadata and extra fields, there is no need to pass the version to it. dataStructureId = dsv.Dataset.DataStructure.Id; researchPlanId = dsv.Dataset.ResearchPlan.Id; metadata = dsv.Metadata; ViewBag.Title = PresentationModel.GetViewTitleForTenant("Show Data : " + title, this.Session.GetTenant()); } else { ModelState.AddModelError(string.Empty, "Dataset is just in processing."); } model = new ShowDataModel() { Id = id, Title = title, MetadataStructureId = metadataStructureId, DataStructureId = dataStructureId, ResearchPlanId = researchPlanId, ViewAccess = entityPermissionManager.HasEffectiveRight(HttpContext.User.Identity.Name, "Dataset", typeof(Dataset), id, RightType.Read), GrantAccess = entityPermissionManager.HasEffectiveRight(HttpContext.User.Identity.Name, "Dataset", typeof(Dataset), id, RightType.Grant) }; //set metadata in session Session["ShowDataMetadata"] = metadata; return(View(model)); } finally { dm.Dispose(); entityPermissionManager.Dispose(); } }
public ActionResult ShowPrimaryData(long datasetID, int versionId) { Session["Filter"] = null; Session["Columns"] = null; Session["DownloadFullDataset"] = false; ViewData["DownloadOptions"] = null; IOUtility iOUtility = new IOUtility(); DatasetManager dm = new DatasetManager(); DataStructureManager dsm = new DataStructureManager(); //permission download EntityPermissionManager entityPermissionManager = new EntityPermissionManager(); try { if (dm.IsDatasetCheckedIn(datasetID)) { // get latest or other datasetversion DatasetVersion dsv = dm.GetDatasetVersion(versionId); bool latestVersion = versionId == dm.GetDatasetLatestVersionId(datasetID); DataStructure ds = dsm.AllTypesDataStructureRepo.Get(dsv.Dataset.DataStructure.Id); // TODO: refactor Download Right not existing, so i set it to read bool downloadAccess = entityPermissionManager.HasEffectiveRight(HttpContext.User.Identity.Name, typeof(Dataset), datasetID, RightType.Read); bool editRights = entityPermissionManager.HasEffectiveRight(HttpContext.User.Identity.Name, typeof(Dataset), datasetID, RightType.Write); //TITLE string title = dsv.Title; if (ds.Self.GetType() == typeof(UnStructuredDataStructure)) { if (this.IsAccessible("MMM", "ShowMultimediaData", "multimediaData") && ConfigurationManager.AppSettings["useMultimediaModule"].ToLower().Equals("true")) { return(RedirectToAction("multimediaData", "ShowMultimediaData", new RouteValueDictionary { { "area", "MMM" }, { "datasetID", datasetID }, { "versionId", versionId }, { "entityType", "Publication" } })); } else { return (PartialView(ShowPrimaryDataModel.Convert(datasetID, versionId, title, ds, SearchUIHelper.GetContantDescriptorFromKey(dsv, "unstructuredData"), downloadAccess, iOUtility.GetSupportedAsciiFiles(), latestVersion, editRights))); } } } else { ModelState.AddModelError(string.Empty, "Dataset is just in processing."); } return(PartialView(null)); } catch (Exception ex) { throw ex; } finally { dm.Dispose(); dsm.Dispose(); entityPermissionManager.Dispose(); } }
//copy of BExIS.Modules.Ddm.UI.Controllers.DataController.ShowData (adapted) public ActionResult Index(long id, int version = 0) { DatasetManager dm = new DatasetManager(); EntityPermissionManager entityPermissionManager = new EntityPermissionManager(); try { DatasetVersion dsv; ShowDataModel model = new ShowDataModel(); string title = ""; long metadataStructureId = -1; long dataStructureId = -1; long researchPlanId = 1; long versionId = 0; string dataStructureType = DataStructureType.Structured.ToString(); bool downloadAccess = false; bool requestExist = false; bool requestAble = false; bool latestVersion = false; string isValid = "no"; XmlDocument metadata = new XmlDocument(); if (dm.IsDatasetCheckedIn(id)) { //get latest version if (version == 0) { versionId = dm.GetDatasetLatestVersionId(id); // check for zero value //get current version number version = dm.GetDatasetVersions(id).OrderBy(d => d.Timestamp).Count(); latestVersion = true; } // get specific version else { versionId = dm.GetDatasetVersions(id).OrderBy(d => d.Timestamp).Skip(version - 1).Take(1).Select(d => d.Id).FirstOrDefault(); latestVersion = versionId == dm.GetDatasetLatestVersionId(id); } dsv = dm.DatasetVersionRepo.Get(versionId); // this is needed to allow dsv to access to an open session that is available via the repo if (dsv.StateInfo != null) { isValid = DatasetStateInfo.Valid.ToString().Equals(dsv.StateInfo.State) ? "yes" : "no"; } metadataStructureId = dsv.Dataset.MetadataStructure.Id; //MetadataStructureManager msm = new MetadataStructureManager(); //dsv.Dataset.MetadataStructure = msm.Repo.Get(dsv.Dataset.MetadataStructure.Id); title = dsv.Title; dataStructureId = dsv.Dataset.DataStructure.Id; researchPlanId = dsv.Dataset.ResearchPlan.Id; metadata = dsv.Metadata; // check if the user has download rights downloadAccess = entityPermissionManager.HasEffectiveRight(HttpContext.User.Identity.Name, typeof(Dataset), id, RightType.Read); //// check if a reuqest of this dataset exist //if (!downloadAccess) //{ // requestExist = HasOpenRequest(id); // if (UserExist() && HasRequestMapping(id)) requestAble = true; //} dataStructureType = DataStructureType.Unstructured.ToString(); ViewBag.Title = PresentationModel.GetViewTitleForTenant("Show Data : " + title, this.Session.GetTenant()); } else { ModelState.AddModelError(string.Empty, "Publication is just in processing."); } model = new ShowDataModel() { Id = id, Version = version, VersionSelect = version, VersionId = versionId, LatestVersion = latestVersion, Title = title, MetadataStructureId = metadataStructureId, DataStructureId = dataStructureId, ResearchPlanId = researchPlanId, ViewAccess = entityPermissionManager.HasEffectiveRight(HttpContext.User.Identity.Name, typeof(Dataset), id, RightType.Read), GrantAccess = entityPermissionManager.HasEffectiveRight(HttpContext.User.Identity.Name, typeof(Dataset), id, RightType.Grant), DataStructureType = dataStructureType, DownloadAccess = downloadAccess, RequestExist = requestExist, RequestAble = requestAble }; //set metadata in session Session["ShowDataMetadata"] = metadata; ViewData["VersionSelect"] = getVersionsSelectList(id, dm); ViewData["isValid"] = isValid; return(View(model)); } finally { dm.Dispose(); entityPermissionManager.Dispose(); } }
public ActionResult LoadDataRepoRequirementView(string datarepo, long datasetid) { DataRepoRequirentModel model = new DataRepoRequirentModel(); model.DatasetId = datasetid; //get broker PublicationManager publicationManager = new PublicationManager(); // datasetversion DatasetManager dm = new DatasetManager(); try { long version = dm.GetDatasetLatestVersionId(datasetid); model.DatasetVersionId = version; if (publicationManager.BrokerRepo.Get().Any(d => d.Name.ToLower().Equals(datarepo.ToLower()))) { Broker broker = publicationManager.BrokerRepo.Get() .Where(d => d.Name.ToLower().Equals(datarepo.ToLower())) .FirstOrDefault(); Publication publication = publicationManager.PublicationRepo.Get() .Where(p => p.Broker.Id.Equals(broker.Id) && p.DatasetVersion.Id.Equals(version)) .FirstOrDefault(); if (publication != null && !String.IsNullOrEmpty(publication.FilePath) && FileHelper.FileExist(Path.Combine(AppConfiguration.DataPath, publication.FilePath))) { model.Exist = true; } else { //if convertion check ist needed //get all export attr from metadata structure List <string> exportNames = xmlDatasetHelper.GetAllTransmissionInformation(datasetid, TransmissionType.mappingFileExport, AttributeNames.name).ToList(); if (string.IsNullOrEmpty(broker.MetadataFormat) || exportNames.Contains(broker.MetadataFormat)) { model.IsMetadataConvertable = true; } // Validate model.metadataValidMessage = OutputMetadataManager.IsValideAgainstSchema(datasetid, TransmissionType.mappingFileExport, datarepo); #region primary Data if (broker.PrimaryDataFormat.ToLower().Contains("text/plain") || broker.PrimaryDataFormat.ToLower().Contains("text/csv") || broker.PrimaryDataFormat.ToLower().Contains("application/excel") || String.IsNullOrEmpty(broker.PrimaryDataFormat)) { model.IsDataConvertable = true; } #endregion } } return(PartialView("_dataRepositoryRequirementsView", model)); } catch (Exception ex) { throw ex; } finally { publicationManager.Dispose(); dm.Dispose(); } }