Esempio n. 1
0
        public ActionResult SheetSelectMetaData(int index)
        {
            MetadataStructureManager msm = new MetadataStructureManager();

            try
            {
                TaskManager = (EasyUploadTaskManager)Session["TaskManager"];

                //set current stepinfo based on index
                if (TaskManager != null)
                {
                    TaskManager.SetCurrent(index);

                    // remove if existing
                    TaskManager.RemoveExecutedStep(TaskManager.Current());
                }

                SelectMetaDataModel model = new SelectMetaDataModel();

                //Load available metadata structures
                IEnumerable <MetadataStructure> metadataStructureList = msm.Repo.Get();

                foreach (MetadataStructure metadataStructure in metadataStructureList)
                {
                    if (xmlDatasetHelper.IsActive(metadataStructure.Id) &&
                        xmlDatasetHelper.HasEntityType(metadataStructure.Id, "bexis.dlm.entities.data.dataset"))
                    {
                        model.AvailableMetadata.Add(new Tuple <long, string>(metadataStructure.Id, metadataStructure.Name));
                    }
                }
                //Sort the metadata structures
                model.AvailableMetadata.Sort((md1, md2) => md1.Item1.CompareTo(md2.Item1));

                //If there's already a selected Metadata schema, load its id into the model
                if (TaskManager.Bus.ContainsKey(EasyUploadTaskManager.SCHEMA))
                {
                    model.SelectedMetaDataId = Convert.ToInt64(TaskManager.Bus[EasyUploadTaskManager.SCHEMA]);
                }

                //if the title was changed at some point during the upload, load the title into the model
                if (TaskManager.Bus.ContainsKey(EasyUploadTaskManager.DESCRIPTIONTITLE))
                {
                    model.DescriptionTitle = Convert.ToString(TaskManager.Bus[EasyUploadTaskManager.DESCRIPTIONTITLE]);
                }
                //if it wasn't changed yet, the default title is the filename
                else
                {
                    model.DescriptionTitle = Convert.ToString(TaskManager.Bus[EasyUploadTaskManager.FILENAME]);
                }

                model.StepInfo = TaskManager.Current();

                return(PartialView(model));
            }
            finally
            {
                msm.Dispose();
            }
        }
Esempio n. 2
0
        public List <ListItem> GetMetadataStructureList()
        {
            MetadataStructureManager metadataStructureManager = new MetadataStructureManager();
            XmlDatasetHelper         xmlDatasetHelper         = new XmlDatasetHelper();

            try
            {
                IEnumerable <MetadataStructure> metadataStructureList = metadataStructureManager.Repo.Get();

                List <ListItem> temp = new List <ListItem>();

                foreach (MetadataStructure metadataStructure in metadataStructureList)
                {
                    if (xmlDatasetHelper.IsActive(metadataStructure.Id) &&
                        xmlDatasetHelper.HasEntityType(metadataStructure.Id, "BExIS.Emm.Entities.Event.Event"))
                    {
                        string title = metadataStructure.Name;

                        temp.Add(new ListItem(metadataStructure.Id, title));
                    }
                }

                return(temp.OrderBy(p => p.Name).ToList());
            }
            finally
            {
                metadataStructureManager.Dispose();
            }
        }
Esempio n. 3
0
        public List <ListViewItem> LoadMetadataStructureViewList()
        {
            MetadataStructureManager metadataStructureManager = new MetadataStructureManager();

            try
            {
                IEnumerable <MetadataStructure> metadataStructureList = metadataStructureManager.Repo.Get();

                List <ListViewItem> temp = new List <ListViewItem>();

                foreach (MetadataStructure metadataStructure in metadataStructureList)
                {
                    if (xmlDatasetHelper.IsActive(metadataStructure.Id) &&
                        xmlDatasetHelper.HasEntityType(metadataStructure.Id, "bexis.dlm.entities.data.dataset"))
                    {
                        string title = metadataStructure.Name;

                        temp.Add(new ListViewItem(metadataStructure.Id, title, metadataStructure.Description));
                    }
                }

                return(temp.OrderBy(p => p.Title).ToList());
            }
            finally
            {
                metadataStructureManager.Dispose();
            }
        }
        // GET: CreatePublication
        public ActionResult Index()
        {
            string mulitbleMetadataStructure = Helper.Settings.get("MultibleMetadataStructures").ToString();

            if (mulitbleMetadataStructure == "true")
            {
                SetupModel model = new SetupModel();

                using (MetadataStructureManager metadataStructureManager = new MetadataStructureManager())
                {
                    IEnumerable <MetadataStructure> metadataStructureList = metadataStructureManager.Repo.Get();

                    foreach (MetadataStructure metadataStructure in metadataStructureList)
                    {
                        if (xmlDatasetHelper.IsActive(metadataStructure.Id) &&
                            HasEntityTypeName(metadataStructure, "Publication"))
                        {
                            string title = metadataStructure.Name;

                            model.MetadataStructureList.Add(new ViewSelectItem(metadataStructure.Id, title));
                        }
                    }

                    model.MetadataStructureList.OrderBy(p => p.Title);
                }

                return(View("ChooseMetadataStructure", model));
            }
            else
            {
                using (var metadataStructureManager = new MetadataStructureManager())
                    using (var entityManager = new EntityManager())
                        using (var researchPlanManager = new ResearchPlanManager())
                        {
                            //get metadatastruture
                            var metadataStructureName = Helper.Settings.get("DefaultMetadataStructure");

                            var md = metadataStructureManager.Repo.Get(a => a.Name == metadataStructureName.ToString()).FirstOrDefault();

                            //get entitytype
                            var entityType = entityManager.FindByName("Publication");

                            if (md != null)
                            {
                                CreateTaskmanager taskManager = new CreateTaskmanager();
                                taskManager.AddToBus(CreateTaskmanager.METADATASTRUCTURE_ID, md.Id);

                                taskManager.AddToBus(CreateTaskmanager.SAVE_WITH_ERRORS, true);
                                taskManager.AddToBus(CreateTaskmanager.NO_IMPORT_ACTION, true);

                                taskManager.AddToBus(CreateTaskmanager.INFO_ON_TOP_TITLE, "Create Publication");
                                taskManager.AddToBus(CreateTaskmanager.INFO_ON_TOP_DESCRIPTION, "<p>Here you can enter metadata for your new dataset. The form varies according to the metadata structure you selected in the first step. Mandatory fields are indicated with an red asterisk. You can add, remove, or re - order elements(e.g.multiple Creators) using the buttons at the right.</p>");


                                // get existing researchPlan
                                string       researchPlanName = "Research plan";
                                ResearchPlan researchPlan     = researchPlanManager.Repo.Get(r => researchPlanName.Equals(r.Title)).FirstOrDefault();
                                taskManager.AddToBus(CreateTaskmanager.RESEARCHPLAN_ID, researchPlan.Id);

                                //create unstructured datastructure
                                DataStructure dataStructure = CreateDataStructure("Publication") as UnStructuredDataStructure;
                                taskManager.AddToBus(CreateTaskmanager.DATASTRUCTURE_ID, dataStructure.Id);

                                HttpContext.Session["CreateDatasetTaskmanager"] = taskManager;
                                setAdditionalFunctions();

                                var view = this.Render("DCM", "Form", "StartMetadataEditor", new RouteValueDictionary()
                                {
                                });

                                return(Content(view.ToHtmlString(), "text/html"));
                            }

                            else
                            {
                                return(Content("Metadata structure not exsits"));
                            }
                        }
            }
        }
Esempio n. 5
0
        private MetadataStructureModel convertToMetadataStructureModel(MetadataStructure metadataStructure, MetadataStructureManager metadataStructureManager)
        {
            MetadataStructureModel metadataStructureModel = new MetadataStructureModel();

            metadataStructureModel.Id   = metadataStructure.Id;
            metadataStructureModel.Name = metadataStructure.Name;

            try
            {
                metadataStructureModel.MetadataNodes = GetAllXPath(metadataStructure.Id);

                //get all informaions from xml
                metadataStructureModel.EntityClasses = GetEntityModelList();
                string EntityClassName = xmlDatasetHelper.GetEntityNameFromMetadatStructure(metadataStructure.Id, metadataStructureManager);

                var entityModel =
                    metadataStructureModel.EntityClasses.Where(e => e.Name.Equals(EntityClassName))
                    .FirstOrDefault();
                if (entityModel != null)
                {
                    metadataStructureModel.Entity = entityModel;
                }

                string xpath = xmlDatasetHelper.GetInformationPath(metadataStructure.Id, NameAttributeValues.title);

                var searchMetadataNode =
                    metadataStructureModel.MetadataNodes.Where(e => e.XPath.Equals(xpath)).FirstOrDefault();
                if (searchMetadataNode != null)
                {
                    metadataStructureModel.TitleNode =
                        searchMetadataNode.DisplayName;
                }

                xpath = xmlDatasetHelper.GetInformationPath(metadataStructure.Id,
                                                            NameAttributeValues.description);

                //check if xsd exist
                string schemapath = Path.Combine(AppConfiguration.GetModuleWorkspacePath("DCM"), "Metadata",
                                                 metadataStructure.Name);

                if (Directory.Exists(schemapath) && Directory.GetFiles(schemapath).Length > 0)
                {
                    metadataStructureModel.HasSchema = true;
                }

                var firstOrDefault =
                    metadataStructureModel.MetadataNodes.Where(e => e.XPath.Equals(xpath)).FirstOrDefault();
                if (firstOrDefault != null)
                {
                    metadataStructureModel.DescriptionNode =
                        firstOrDefault.DisplayName;
                }

                metadataStructureModel.MetadataNodes = GetAllXPath(metadataStructureModel.Id);

                metadataStructureModel.Active = xmlDatasetHelper.IsActive(metadataStructure.Id);
            }
            catch (Exception exception)
            {
                metadataStructureModel      = new MetadataStructureModel();
                metadataStructureModel.Id   = metadataStructure.Id;
                metadataStructureModel.Name = metadataStructure.Name;
            }

            return(metadataStructureModel);
        }