private ShowPublishDataModel getShowPublishDataModel(long datasetId, long datasetVersionId = -1) { PublicationManager publicationManager = new PublicationManager(); DatasetManager datasetManager = new DatasetManager(); EntityPermissionManager entityPermissionManager = new EntityPermissionManager(); ShowPublishDataModel model = new ShowPublishDataModel(); try { Dataset dataset = datasetManager.GetDataset(datasetId); List <Broker> Brokers = GetBrokers(dataset.MetadataStructure.Id, publicationManager); model.Brokers = Brokers.Select(b => b.Name).ToList(); model.DatasetId = datasetId; //Todo Download Rigths -> currently set read rigths for this case model.DownloadRights = entityPermissionManager.HasEffectiveRight(HttpContext.User.Identity.Name, "Dataset", typeof(Dataset), datasetId, RightType.Read); model.EditRights = entityPermissionManager.HasEffectiveRight(HttpContext.User.Identity.Name, "Dataset", typeof(Dataset), datasetId, RightType.Write); List <long> versions = new List <long>(); if (datasetVersionId == -1) { DatasetVersion datasetVersion = datasetManager.GetDatasetLatestVersion(datasetId); datasetVersionId = datasetVersion.Id; versions = datasetManager.GetDatasetVersions(datasetId).Select(d => d.Id).ToList(); if (datasetVersion.StateInfo != null) { model.MetadataIsValid = DatasetStateInfo.Valid.ToString().Equals(datasetVersion.StateInfo.State) ? true : false; } } //todo check if datasetversion id is correct List <Publication> publications = publicationManager.PublicationRepo.Get().Where(p => versions.Contains(p.DatasetVersion.Id)).ToList(); foreach (var pub in publications) { Broker broker = publicationManager.BrokerRepo.Get(pub.Broker.Id); Repository repo = null; if (pub.Repository != null) { repo = publicationManager.RepositoryRepo.Get(pub.Repository.Id); } string dataRepoName = repo == null ? "" : repo.Name; List <string> repos = GetRepos(dataset.MetadataStructure.Id, broker.Id, publicationManager).Select(r => r.Name).ToList(); model.Publications.Add(new PublicationModel() { Broker = new BrokerModel(broker.Name, repos, broker.Link), DataRepo = dataRepoName, DatasetVersionId = pub.DatasetVersion.Id, CreationDate = pub.Timestamp, ExternalLink = pub.ExternalLink, FilePath = pub.FilePath, Status = pub.Status, }); } return(model); } finally { publicationManager.Dispose(); datasetManager.Dispose(); entityPermissionManager.Dispose(); } }
public ActionResult getPublishDataPartialView(long datasetId, long datasetVersionId = -1) { ShowPublishDataModel model = getShowPublishDataModel(datasetId, datasetVersionId); return(PartialView("_showPublishDataView", model)); }