Example #1
0
        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();
            }
        }
Example #2
0
        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();
            }
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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();
            }
        }
Example #5
0
        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();
            }
        }
Example #8
0
        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();
            }
        }