Пример #1
0
        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();
            }
        }
Пример #2
0
        public ActionResult getPublishDataPartialView(long datasetId, long datasetVersionId = -1)
        {
            ShowPublishDataModel model = getShowPublishDataModel(datasetId, datasetVersionId);

            return(PartialView("_showPublishDataView", model));
        }