private void addSelectedDatasetToBus(long datasetId) { DatasetManager datasetManager = new DatasetManager(); try { TaskManager = (TaskManager)Session["TaskManager"]; if (datasetManager.GetDatasetVersionEffectiveTupleCount(datasetManager.GetDatasetLatestVersion(datasetId)) > 0) { TaskManager.AddToBus("DatasetStatus", "edit"); } else { TaskManager.AddToBus("DatasetStatus", "new"); } DatasetVersion datasetVersion = datasetManager.GetDatasetLatestVersion(datasetId); TaskManager.AddToBus(TaskManager.DATASET_ID, datasetId); //Add Metadata to Bus //TITLE TaskManager.AddToBus(TaskManager.DATASET_TITLE, xmlDatasetHelper.GetInformationFromVersion(datasetVersion.Id, NameAttributeValues.title)); ResearchPlanManager rpm = new ResearchPlanManager(); ResearchPlan rp = rpm.Repo.Get(datasetVersion.Dataset.ResearchPlan.Id); TaskManager.AddToBus(TaskManager.RESEARCHPLAN_ID, rp.Id); TaskManager.AddToBus(TaskManager.RESEARCHPLAN_TITLE, rp.Title); } finally { datasetManager.Dispose(); } }
private void addSelectedDatasetToBus(long datasetId) { using (DatasetManager datasetManager = new DatasetManager()) using (ResearchPlanManager rpm = new ResearchPlanManager()) { TaskManager = (TaskManager)Session["TaskManager"]; if (datasetManager.GetDatasetVersionEffectiveTupleCount(datasetManager.GetDatasetLatestVersion(datasetId)) > 0) { TaskManager.AddToBus("DatasetStatus", "edit"); } else { TaskManager.AddToBus("DatasetStatus", "new"); } DatasetVersion datasetVersion = datasetManager.GetDatasetLatestVersion(datasetId); TaskManager.AddToBus(TaskManager.DATASET_ID, datasetId); //Add Metadata to Bus //TITLE TaskManager.AddToBus(TaskManager.DATASET_TITLE, datasetVersion.Title); ResearchPlan rp = rpm.Repo.Get(datasetVersion.Dataset.ResearchPlan.Id); TaskManager.AddToBus(TaskManager.RESEARCHPLAN_ID, rp.Id); TaskManager.AddToBus(TaskManager.RESEARCHPLAN_TITLE, rp.Title); } }
public ActionResult LoadMetaDataForm(SetupModel model) { if (model.SelectedMetadataStructureId == -1) { ModelState.AddModelError("SelectedMetadataStructureId", "Please select a metadata structure."); } if (ModelState.IsValid) { using (var metadataStructureManager = new MetadataStructureManager()) using (var entityManager = new EntityManager()) using (var researchPlanManager = new ResearchPlanManager()) { var md = metadataStructureManager.Repo.Get(a => a.Id == model.SelectedMetadataStructureId).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, "Edit 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")); } } } else { return(Content("Metadata structure not exsits")); } }
public ActionResult CreateTestDatasets(int n) { DatasetManager datasetManager = new DatasetManager(); DataStructureManager dataStructureManager = new DataStructureManager(); MetadataStructureManager metadataStructureManager = new MetadataStructureManager(); ResearchPlanManager researchPlanManager = new ResearchPlanManager(); try { var structure = dataStructureManager.UnStructuredDataStructureRepo.Get(1); var metadatastructure = metadataStructureManager.Repo.Get(1); var researchplan = researchPlanManager.Repo.Get(1); var xmlDatasetHelper = new XmlDatasetHelper(); var xmlMetadatWriter = new XmlMetadataWriter(XmlNodeMode.xPath); var metadataXml = xmlMetadatWriter.CreateMetadataXml(metadatastructure.Id); for (int i = 0; i < n; i++) { var dataset = datasetManager.CreateEmptyDataset(structure, researchplan, metadatastructure); if (datasetManager.IsDatasetCheckedOutFor(dataset.Id, "test") || datasetManager.CheckOutDataset(dataset.Id, "test")) { DatasetVersion workingCopy = datasetManager.GetDatasetWorkingCopy(dataset.Id); datasetManager.EditDatasetVersion(workingCopy, null, null, null); datasetManager.CheckInDataset(dataset.Id, "", "test", ViewCreationBehavior.None); workingCopy.Metadata = Xml.Helpers.XmlWriter.ToXmlDocument(metadataXml); string xpath = xmlDatasetHelper.GetInformationPath(metadatastructure.Id, NameAttributeValues.title); workingCopy.Metadata.SelectSingleNode(xpath).InnerText = i.ToString(); workingCopy.Title = i.ToString(); datasetManager.EditDatasetVersion(workingCopy, null, null, null); datasetManager.CheckInDataset(dataset.Id, "", "test", ViewCreationBehavior.None); } } } catch (Exception ex) { throw ex; } finally { datasetManager.Dispose(); dataStructureManager.Dispose(); metadataStructureManager.Dispose(); researchPlanManager.Dispose(); } return(View("Index")); }
public ResearchPlan CreateResearchPlan() { ResearchPlanManager researchPlanManager = new ResearchPlanManager(); try { return(researchPlanManager.Create("ResearchPlan_UT", "Researchplan for unit tests.")); } finally { researchPlanManager.Dispose(); } }
public void PurgeAllResearchPlans() { var manager = new ResearchPlanManager(); try { var plans = manager.Repo.Query().ToList(); manager.Delete(plans); } finally { manager.Dispose(); } }
public List <ListViewItem> LoadResearchPlanViewList() { ResearchPlanManager rpm = new ResearchPlanManager(); List <ListViewItem> temp = new List <ListViewItem>(); foreach (ResearchPlan researchPlan in rpm.Repo.Get()) { string title = researchPlan.Title; temp.Add(new ListViewItem(researchPlan.Id, title)); } return(temp.OrderBy(p => p.Title).ToList()); }
public void CreateDatasetVersionTest() { long numberOfTuples = 1000; var dm = new DatasetManager(); var rsm = new ResearchPlanManager(); var mdm = new MetadataStructureManager(); try { var dsHelper = new DatasetHelper(); StructuredDataStructure dataStructure = dsHelper.CreateADataStructure(); dataStructure.Should().NotBeNull("Failed to meet a precondition: a data strcuture is required."); var rp = dsHelper.CreateResearchPlan(); rp.Should().NotBeNull("Failed to meet a precondition: a research plan is required."); var mds = mdm.Repo.Query().First(); mds.Should().NotBeNull("Failed to meet a precondition: a metadata strcuture is required."); Dataset dataset = dm.CreateEmptyDataset(dataStructure, rp, mds); dataset = dsHelper.GenerateTuplesForDataset(dataset, dataStructure, numberOfTuples, "Javad"); dataset.Should().NotBeNull("The dataset tuple generation has failed!"); dm.CheckInDataset(dataset.Id, "for testing purposes 2", "Javad", ViewCreationBehavior.None); //dm.SyncView(ds.Id, ViewCreationBehavior.Create); //dm.SyncView(ds.Id, ViewCreationBehavior.Refresh); dm.SyncView(dataset.Id, ViewCreationBehavior.Create | ViewCreationBehavior.Refresh); dataset.Id.Should().BeGreaterThan(0, "Dataset was not persisted."); dataset.LastCheckIOTimestamp.Should().NotBeAfter(DateTime.UtcNow, "The dataset's timestamp is wrong."); dataset.DataStructure.Should().NotBeNull("Dataset must have a data structure."); dataset.Status.Should().Be(DatasetStatus.CheckedIn, "Dataset must be in the CheckedIn status."); dm.GetDatasetLatestVersionEffectiveTupleCount(dataset.Id).Should().Be(numberOfTuples); dm.DatasetVersionRepo.Evict(); dm.DataTupleRepo.Evict(); dm.DatasetRepo.Evict(); dm.PurgeDataset(dataset.Id, true); dsHelper.PurgeAllDataStructures(); } finally { dm.Dispose(); rsm.Dispose(); mdm.Dispose(); } }
public void OneTimeSetUp() { helper = new TestSetupHelper(WebApiConfig.Register, false); var dm = new DatasetManager(); var rsm = new ResearchPlanManager(); var mdm = new MetadataStructureManager(); dsHelper = new DatasetHelper(); try { dsHelper.PurgeAllDatasets(); dsHelper.PurgeAllDataStructures(); dsHelper.PurgeAllResearchPlans(); // generate Data numberOfTuples = 50000; StructuredDataStructure dataStructure = dsHelper.CreateADataStructure(); dataStructure.Should().NotBeNull("Failed to meet a precondition: a data strcuture is required."); var rp = dsHelper.CreateResearchPlan(); rp.Should().NotBeNull("Failed to meet a precondition: a research plan is required."); var mds = mdm.Repo.Query().First(); mds.Should().NotBeNull("Failed to meet a precondition: a metadata strcuture is required."); Dataset dataset = dm.CreateEmptyDataset(dataStructure, rp, mds); datasetId = dataset.Id; // add datatuples dataset = dsHelper.GenerateTuplesForDataset(dataset, dataStructure, numberOfTuples, username); dm.CheckInDataset(dataset.Id, "for testing datatuples with versions", username); } finally { dm.CheckInDataset(datasetId, "for testing datatuples with versions", username, ViewCreationBehavior.None); } }
private static void createResearchPlan() { //ResearchPlan ResearchPlanManager rpm = null; try { rpm = new ResearchPlanManager(); ResearchPlan researchPlan = rpm.Repo.Get(r => r.Title.Equals("Research plan")).FirstOrDefault(); if (researchPlan == null) { rpm.Create("Research plan", ""); } } finally { rpm.Dispose(); } }
public void DeleteDatasetTest() { var dm = new DatasetManager(); var rsm = new ResearchPlanManager(); var mdm = new MetadataStructureManager(); try { var dsHelper = new DatasetHelper(); StructuredDataStructure dataStructure = dsHelper.CreateADataStructure(); dataStructure.Should().NotBeNull("Failed to meet a precondition: a data strcuture is required."); var rp = dsHelper.CreateResearchPlan(); rp.Should().NotBeNull("Failed to meet a precondition: a research plan is required."); var mds = mdm.Repo.Query().First(); mds.Should().NotBeNull("Failed to meet a precondition: a metadata strcuture is required."); Dataset dataset = dm.CreateEmptyDataset(dataStructure, rp, mds); dm.DeleteDataset(dataset.Id, "Javad", false); dataset.Should().NotBeNull(); dataset.Id.Should().BeGreaterThan(0, "Dataset is not persisted."); dataset.LastCheckIOTimestamp.Should().NotBeAfter(DateTime.UtcNow, "The dataset's timestamp is wrong."); dataset.DataStructure.Should().NotBeNull("Dataset must have a data structure."); dataset.Status.Should().Be(DatasetStatus.Deleted, "Dataset must be in Deleted status."); dm.PurgeDataset(dataset.Id); dsHelper.PurgeAllDataStructures(); } finally { dm.Dispose(); rsm.Dispose(); mdm.Dispose(); } }
public void GenerateSeedData() { ResearchPlanManager researchPlanManager = new ResearchPlanManager(); DataStructureManager dataStructureManager = new DataStructureManager(); UnitManager unitManager = new UnitManager(); EntityManager entityManager = new EntityManager(); FeatureManager featureManager = new FeatureManager(); OperationManager operationManager = new OperationManager(); try { #region create none researchPlan if (!researchPlanManager.Repo.Get().Any(r => r.Title.Equals("none"))) { researchPlanManager.Create("none", "If no research plan is used."); } #endregion #region create none structure if (!dataStructureManager.AllTypesDataStructureRepo.Get().Any(d => d.Name.Equals("none"))) { dataStructureManager.CreateUnStructuredDataStructure("none", "If no data strutcure is used."); } #endregion #region create none unit Dimension dimension = null; if (!unitManager.DimensionRepo.Get().Any(d => d.Name.ToLower().Equals("none"))) { dimension = unitManager.Create("none", "none", "If no unit is used."); // the null dimension should be replaced bz a proper valid one. Javad 11.06 } else { dimension = unitManager.DimensionRepo.Get().Where(d => d.Name.ToLower().Equals("none")).FirstOrDefault(); } if (!unitManager.Repo.Get().Any(u => u.Name.ToLower().Equals("none"))) { unitManager.Create("none", "none", "If no unit is used.", dimension, MeasurementSystem.Unknown); } #endregion #region create entities // Entities Entity entity = entityManager.Entities.Where(e => e.Name.ToUpperInvariant() == "Dataset".ToUpperInvariant()).FirstOrDefault(); if (entity == null) { entity = new Entity(); entity.Name = "Dataset"; entity.EntityType = typeof(Dataset); entity.EntityStoreType = typeof(Xml.Helpers.DatasetStore); entity.UseMetadata = true; entity.Securable = true; entityManager.Create(entity); } #endregion #region SECURITY //workflows = größere sachen, vielen operation //operations = einzelne actions //1.controller-> 1.Operation Feature DataCollectionFeature = featureManager.FeatureRepository.Get().FirstOrDefault(f => f.Name.Equals("Data Collection")); if (DataCollectionFeature == null) { DataCollectionFeature = featureManager.Create("Data Collection", "Data Collection"); } Feature DatasetCreationFeature = featureManager.FeatureRepository.Get().FirstOrDefault(f => f.Name.Equals("Data Creation")); if (DatasetCreationFeature == null) { DatasetCreationFeature = featureManager.Create("Data Creation", "Data Creation", DataCollectionFeature); } Feature DatasetUploadFeature = featureManager.FeatureRepository.Get().FirstOrDefault(f => f.Name.Equals("Dataset Upload")); if (DatasetUploadFeature == null) { DatasetUploadFeature = featureManager.Create("Dataset Upload", "Dataset Upload", DataCollectionFeature); } Feature MetadataManagementFeature = featureManager.FeatureRepository.Get().FirstOrDefault(f => f.Name.Equals("Metadata Management")); if (MetadataManagementFeature == null) { MetadataManagementFeature = featureManager.Create("Metadata Management", "Metadata Management", DataCollectionFeature); } #region Help Workflow operationManager.Create("DCM", "Help", "*"); #endregion #region Create Dataset Workflow operationManager.Create("DCM", "CreateDataset", "*", DatasetCreationFeature); operationManager.Create("DCM", "Form", "*"); #endregion #region Update Dataset Workflow operationManager.Create("DCM", "Push", "*", DatasetUploadFeature); operationManager.Create("DCM", "Submit", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitDefinePrimaryKey", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitGetFileInformation", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitSelectAFile", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitSpecifyDataset", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitSummary", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitValidation", "*", DatasetUploadFeature); #endregion #region Easy Upload operationManager.Create("DCM", "EasyUpload", "*", DatasetUploadFeature); operationManager.Create("DCM", "EasyUploadSelectAFile", "*", DatasetUploadFeature); operationManager.Create("DCM", "EasyUploadSelectAreas", "*", DatasetUploadFeature); operationManager.Create("DCM", "EasyUploadSheetDataStructure", "*", DatasetUploadFeature); operationManager.Create("DCM", "EasyUploadSheetSelectMetaData", "*", DatasetUploadFeature); operationManager.Create("DCM", "EasyUploadSummary", "*", DatasetUploadFeature); operationManager.Create("DCM", "EasyUploadVerification", "*", DatasetUploadFeature); #endregion #region Metadata Managment Workflow operationManager.Create("DCM", "ImportMetadataStructure", "*", MetadataManagementFeature); operationManager.Create("DCM", "ImportMetadataStructureReadSource", "*", MetadataManagementFeature); operationManager.Create("DCM", "ImportMetadataStructureSelectAFile", "*", MetadataManagementFeature); operationManager.Create("DCM", "ImportMetadataStructureSetParameters", "*", MetadataManagementFeature); operationManager.Create("DCM", "ImportMetadataStructureSummary", "*", MetadataManagementFeature); operationManager.Create("DCM", "ManageMetadataStructure", "*", MetadataManagementFeature); operationManager.Create("DCM", "SubmitSpecifyDataset", "*", MetadataManagementFeature); #endregion #region public available operationManager.Create("DCM", "Form", "*"); #endregion #endregion #region Add Metadata MetadataStructureManager metadataStructureManager = new MetadataStructureManager(); if (!metadataStructureManager.Repo.Get().Any(m => m.Name.Equals("Basic ABCD"))) { string titleXPath = "Metadata/Metadata/MetadataType/Description/DescriptionType/Representation/MetadataDescriptionRepr/Title/TitleType"; string descriptionXpath = "Metadata/Metadata/MetadataType/Description/DescriptionType/Representation/MetadataDescriptionRepr/Details/DetailsType"; ImportSchema("Basic ABCD", "ABCD_2.06.XSD", "DataSet", entity.Name, entity.EntityType.FullName, titleXPath, descriptionXpath); } //if (!metadataStructureManager.Repo.Get().Any(m => m.Name.Equals("Full ABCD"))) //{ // string titleXPath = // "Metadata/Metadata/MetadataType/Description/DescriptionType/Representation/MetadataDescriptionRepr/Title/TitleType"; // string descriptionXpath = // "Metadata/Metadata/MetadataType/Description/DescriptionType/Representation/MetadataDescriptionRepr/Details/DetailsType"; // ImportSchema("Full ABCD", "ABCD_2.06.XSD", "DataSet", entity.Name, entity.EntityType.FullName, // titleXPath, descriptionXpath); //} if (!metadataStructureManager.Repo.Get().Any(m => m.Name.Equals("GBIF"))) { string titleXPath = "Metadata/Basic/BasicType/title/titleType"; string descriptionXpath = "Metadata/abstract/abstractType/para/paraType"; ImportSchema("GBIF", "eml.xsd", "Dataset", entity.Name, entity.EntityType.FullName, titleXPath, descriptionXpath); } //if (!metadataStructureManager.Repo.Get().Any(m => m.Name.Equals("Basic Eml"))) // ImportSchema("Basic Eml", "eml-dataset.xsd", entity.Name, entity.Name, entity.EntityType.FullName); #endregion } catch (Exception ex) { throw ex; } finally { researchPlanManager.Dispose(); dataStructureManager.Dispose(); unitManager.Dispose(); entityManager.Dispose(); featureManager.Dispose(); operationManager.Dispose(); } }
public HttpResponseMessage Post([FromBody] PostApiDatasetModel dataset) { var request = Request.CreateResponse(); User user = null; string error = ""; long datasetId = 0; long researchPlanId = 1; using (DatasetManager datasetManager = new DatasetManager()) using (DataStructureManager dataStructureManager = new DataStructureManager()) using (ResearchPlanManager researchPlanManager = new ResearchPlanManager()) using (UserManager userManager = new UserManager()) using (EntityPermissionManager entityPermissionManager = new EntityPermissionManager()) using (MetadataStructureManager metadataStructureManager = new MetadataStructureManager()) { try { #region security string token = this.Request.Headers.Authorization?.Parameter; if (String.IsNullOrEmpty(token)) { request.Content = new StringContent("Bearer token not exist."); return(request); } user = userManager.Users.Where(u => u.Token.Equals(token)).FirstOrDefault(); if (user == null) { request.Content = new StringContent("Token is not valid."); return(request); } #endregion security #region incomming values check // check incomming values if (dataset.Title == null) { error += "title not existing."; } if (dataset.Description == null) { error += "description not existing."; } if (dataset.MetadataStructureId == 0) { error += "metadata structure id should not be null. "; } if (dataset.DataStructureId == 0) { error += "datastructure id should not be null. "; } if (!string.IsNullOrEmpty(error)) { request.Content = new StringContent(error); return(request); } #endregion incomming values check #region create dataset DataStructure dataStructure = dataStructureManager.StructuredDataStructureRepo.Get(dataset.DataStructureId); //if datastructure is not a structured one if (dataStructure == null) { dataStructure = dataStructureManager.UnStructuredDataStructureRepo.Get(dataset.DataStructureId); } if (dataStructure == null) { request.Content = new StringContent("A data structure with id " + dataset.DataStructureId + "does not exist."); return(request); } ResearchPlan rp = researchPlanManager.Repo.Get(researchPlanId); if (rp == null) { request.Content = new StringContent("A research plan with id " + researchPlanId + "does not exist."); return(request); } MetadataStructure metadataStructure = metadataStructureManager.Repo.Get(dataset.MetadataStructureId); if (metadataStructure == null) { request.Content = new StringContent("A metadata structure with id " + dataset.MetadataStructureId + "does not exist."); return(request); } var newDataset = datasetManager.CreateEmptyDataset(dataStructure, rp, metadataStructure); datasetId = newDataset.Id; // add security entityPermissionManager.Create <User>(user.UserName, "Dataset", typeof(Dataset), newDataset.Id, Enum.GetValues(typeof(RightType)).Cast <RightType>().ToList()); //add title and description to the metadata if (datasetManager.IsDatasetCheckedOutFor(datasetId, user.UserName) || datasetManager.CheckOutDataset(datasetId, user.UserName)) { DatasetVersion workingCopy = datasetManager.GetDatasetWorkingCopy(datasetId); XmlMetadataWriter xmlMetadataWriter = new XmlMetadataWriter(XmlNodeMode.xPath); XDocument xdoc = xmlMetadataWriter.CreateMetadataXml(dataset.MetadataStructureId); workingCopy.Metadata = XmlUtility.ToXmlDocument(xdoc); XmlDatasetHelper xmlDatasetHelper = new XmlDatasetHelper(); workingCopy.Metadata = xmlDatasetHelper.SetInformation(workingCopy, workingCopy.Metadata, NameAttributeValues.title, dataset.Title); workingCopy.Title = dataset.Title; workingCopy.Metadata = xmlDatasetHelper.SetInformation(workingCopy, workingCopy.Metadata, NameAttributeValues.description, dataset.Description); workingCopy.Description = dataset.Description; ////set modification workingCopy.ModificationInfo = new EntityAuditInfo() { Performer = user.UserName, Comment = "Metadata", ActionType = AuditActionType.Create }; datasetManager.EditDatasetVersion(workingCopy, null, null, null); datasetManager.CheckInDataset(datasetId, "Title and description were added to the dataset via the api.", user.UserName, ViewCreationBehavior.None); } request.Content = new StringContent("the dataset " + dataset.Title + "(" + datasetId + ") was successfully created."); return(request); #endregion create dataset } catch (Exception ex) { request.Content = new StringContent(ex.Message); return(request); } } }
public void ProjectExpressionTest() { var dsHelper = new DatasetHelper(); StructuredDataStructure dataStructure = dsHelper.CreateADataStructure(); dataStructure.Should().NotBeNull("Failed to meet a precondition: a data strcuture is required."); string var1Name = "var" + dataStructure.Variables.First().Id; string var3Name = "var" + dataStructure.Variables.Skip(2).First().Id; //create prjection expression ProjectionExpression projectionExpression = new ProjectionExpression(); projectionExpression.Items.Add(new ProjectionItemExpression() { FieldName = var1Name }); projectionExpression.Items.Add(new ProjectionItemExpression() { FieldName = var3Name }); // create a dataset and test the filter, sorting, and projectgion long numberOfTuples = 10; var dm = new DatasetManager(); var rsm = new ResearchPlanManager(); var mdm = new MetadataStructureManager(); try { dataStructure.Should().NotBeNull("Failed to meet a precondition: a data strcuture is required."); var rp = dsHelper.CreateResearchPlan(); rp.Should().NotBeNull("Failed to meet a precondition: a research plan is required."); var mds = mdm.Repo.Query().First(); mds.Should().NotBeNull("Failed to meet a precondition: a metadata strcuture is required."); Dataset dataset = dm.CreateEmptyDataset(dataStructure, rp, mds); dataset = dsHelper.GenerateTuplesForDataset(dataset, dataStructure, numberOfTuples, "Javad"); dataset.Should().NotBeNull("The dataset tuple generation has failed!"); dm.CheckInDataset(dataset.Id, "for testing purposes 2", "Javad", ViewCreationBehavior.None); dm.SyncView(dataset.Id, ViewCreationBehavior.Create | ViewCreationBehavior.Refresh); dataset.Id.Should().BeGreaterThan(0, "Dataset was not persisted."); dataset.LastCheckIOTimestamp.Should().NotBeAfter(DateTime.UtcNow, "The dataset's timestamp is wrong."); dataset.DataStructure.Should().NotBeNull("Dataset must have a data structure."); dataset.Status.Should().Be(DatasetStatus.CheckedIn, "Dataset must be in the CheckedIn status."); dm.GetDatasetLatestVersionEffectiveTupleCount(dataset.Id).Should().Be(numberOfTuples); // pass this filter to get a subset of dataset X var dst = dm.GetLatestDatasetVersionTuples(dataset.Id, null, null, projectionExpression, 1, 3); dst.Should().NotBeNull(); dst.Rows.Count.Should().BeLessOrEqualTo(3); dst.Columns.Count.Should().BeLessOrEqualTo(3, "Projection failed, wrong number of columns"); dm.DatasetVersionRepo.Evict(); dm.DataTupleRepo.Evict(); dm.DatasetRepo.Evict(); dm.PurgeDataset(dataset.Id, true); dsHelper.PurgeAllDataStructures(); } catch (Exception ex) { throw ex; } finally { dm.Dispose(); rsm.Dispose(); mdm.Dispose(); } }
public void CreateAndExpressionForQueryingTest() { var dsHelper = new DatasetHelper(); StructuredDataStructure dataStructure = dsHelper.CreateADataStructure(); dataStructure.Should().NotBeNull("Failed to meet a precondition: a data strcuture is required."); string var1Name = "var" + dataStructure.Variables.First().Id; string var2Name = "var" + dataStructure.Variables.Skip(1).First().Id; FilterExpression fex = BinaryFilterExpression .And( new FilterNumberItemExpression() { Field = new Field() { DataType = Utils.NH.Querying.DataType.Ineteger, Name = var1Name } , Operator = NumberOperator.Operation.GreaterThan , Value = 12 } , new FilterStringItemExpression() { Field = new Field() { DataType = Utils.NH.Querying.DataType.String, Name = var2Name } , Operator = StringOperator.Operation.EndsWith , Value = "Test" } ); fex.ToSQL().Should().Be($"(({var1Name}) > (12)) AND (({var2Name}) ILIKE ('%Test'))"); // this is to show how to apply a NOT operator on any other expression. // It can be applied on Numeric, String, Date, and any other type of expression FilterExpression notFex = UnaryFilterExpression.Not(fex); notFex.ToSQL().Should().Be($"NOT ((({var1Name}) > (12)) AND (({var2Name}) ILIKE ('%Test')))"); notFex.ToSQL().Should().Be($"NOT ({fex.ToSQL()})"); OrderByExpression orderByExpr = new OrderByExpression( new List <OrderItemExpression>() { new OrderItemExpression(var1Name), new OrderItemExpression(var2Name, SortDirection.Descending) }); orderByExpr.ToSQL().Should().Be($"{var1Name} ASC, {var2Name} DESC"); // create a dataset and test the filter, sorting, and projectgion long numberOfTuples = 100; var dm = new DatasetManager(); var rsm = new ResearchPlanManager(); var mdm = new MetadataStructureManager(); try { dataStructure.Should().NotBeNull("Failed to meet a precondition: a data strcuture is required."); var rp = dsHelper.CreateResearchPlan(); rp.Should().NotBeNull("Failed to meet a precondition: a research plan is required."); var mds = mdm.Repo.Query().First(); mds.Should().NotBeNull("Failed to meet a precondition: a metadata strcuture is required."); Dataset dataset = dm.CreateEmptyDataset(dataStructure, rp, mds); dataset = dsHelper.GenerateTuplesForDataset(dataset, dataStructure, numberOfTuples, "Javad"); dataset.Should().NotBeNull("The dataset tuple generation has failed!"); dm.CheckInDataset(dataset.Id, "for testing purposes 2", "Javad", ViewCreationBehavior.None); dm.SyncView(dataset.Id, ViewCreationBehavior.Create | ViewCreationBehavior.Refresh); dataset.Id.Should().BeGreaterThan(0, "Dataset was not persisted."); dataset.LastCheckIOTimestamp.Should().NotBeAfter(DateTime.UtcNow, "The dataset's timestamp is wrong."); dataset.DataStructure.Should().NotBeNull("Dataset must have a data structure."); dataset.Status.Should().Be(DatasetStatus.CheckedIn, "Dataset must be in the CheckedIn status."); dm.GetDatasetLatestVersionEffectiveTupleCount(dataset.Id).Should().Be(numberOfTuples); // pass this filter to get a subset of dataset X var dst = dm.GetLatestDatasetVersionTuples(dataset.Id, fex, null, null, 1, 10); dst.Should().NotBeNull(); dst.Rows.Count.Should().BeLessOrEqualTo(10); dm.DatasetVersionRepo.Evict(); dm.DataTupleRepo.Evict(); dm.DatasetRepo.Evict(); dm.PurgeDataset(dataset.Id, true); dsHelper.PurgeAllDataStructures(); } finally { dm.Dispose(); rsm.Dispose(); mdm.Dispose(); } }
public ActionResult StoreSelectedDatasetSetup(SetupModel model) { CreateTaskmanager TaskManager = (CreateTaskmanager)Session["CreateDatasetTaskmanager"]; DatasetManager datasetManager = new DatasetManager(); XmlDatasetHelper xmlDatasetHelper = new XmlDatasetHelper(); try { if (model == null) { model = GetDefaultModel(); return(PartialView("Index", model)); } model = LoadLists(model); if (ModelState.IsValid) { TaskManager.AddToBus(CreateTaskmanager.METADATASTRUCTURE_ID, model.SelectedMetadataStructureId); TaskManager.AddToBus(CreateTaskmanager.DATASTRUCTURE_ID, model.SelectedDataStructureId); // set datastructuretype TaskManager.AddToBus(CreateTaskmanager.DATASTRUCTURE_TYPE, GetDataStructureType(model.SelectedDataStructureId)); //dataset is selected if (model.SelectedDatasetId != 0 && model.SelectedDatasetId != -1) { if (datasetManager.IsDatasetCheckedIn(model.SelectedDatasetId)) { DatasetVersion datasetVersion = datasetManager.GetDatasetLatestVersion(model.SelectedDatasetId); TaskManager.AddToBus(CreateTaskmanager.RESEARCHPLAN_ID, datasetVersion.Dataset.ResearchPlan.Id); TaskManager.AddToBus(CreateTaskmanager.ENTITY_TITLE, xmlDatasetHelper.GetInformationFromVersion(datasetVersion.Id, NameAttributeValues.title)); // set datastructuretype TaskManager.AddToBus(CreateTaskmanager.DATASTRUCTURE_TYPE, GetDataStructureType(model.SelectedDataStructureId)); // set MetadataXml From selected existing Dataset XDocument metadata = XmlUtility.ToXDocument(datasetVersion.Metadata); SetXml(metadata); } else { ModelState.AddModelError(string.Empty, "Dataset is just in processing"); } } else { ResearchPlanManager rpm = new ResearchPlanManager(); TaskManager.AddToBus(CreateTaskmanager.RESEARCHPLAN_ID, rpm.Repo.Get().First().Id); } return(RedirectToAction("StartMetadataEditor", "Form")); } return(View("Index", model)); } finally { datasetManager.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")); } } } }
/// <summary> /// Submit a Dataset based on the imformations /// in the CreateTaskManager /// </summary> public long SubmitDataset(bool valid) { #region create dataset DatasetManager dm = new DatasetManager(); DataStructureManager dsm = new DataStructureManager(); ResearchPlanManager rpm = new ResearchPlanManager(); XmlDatasetHelper xmlDatasetHelper = new XmlDatasetHelper(); string title = ""; long datasetId = 0; bool newDataset = true; try { TaskManager = (CreateTaskmanager)Session["CreateDatasetTaskmanager"]; if (TaskManager.Bus.ContainsKey(CreateTaskmanager.DATASTRUCTURE_ID) && TaskManager.Bus.ContainsKey(CreateTaskmanager.RESEARCHPLAN_ID) && TaskManager.Bus.ContainsKey(CreateTaskmanager.METADATASTRUCTURE_ID)) { // for e new dataset if (!TaskManager.Bus.ContainsKey(CreateTaskmanager.ENTITY_ID)) { long datastructureId = Convert.ToInt64(TaskManager.Bus[CreateTaskmanager.DATASTRUCTURE_ID]); long researchPlanId = Convert.ToInt64(TaskManager.Bus[CreateTaskmanager.RESEARCHPLAN_ID]); long metadataStructureId = Convert.ToInt64(TaskManager.Bus[CreateTaskmanager.METADATASTRUCTURE_ID]); DataStructure dataStructure = dsm.StructuredDataStructureRepo.Get(datastructureId); //if datastructure is not a structured one if (dataStructure == null) { dataStructure = dsm.UnStructuredDataStructureRepo.Get(datastructureId); } ResearchPlan rp = rpm.Repo.Get(researchPlanId); MetadataStructureManager msm = new MetadataStructureManager(); MetadataStructure metadataStructure = msm.Repo.Get(metadataStructureId); var ds = dm.CreateEmptyDataset(dataStructure, rp, metadataStructure); datasetId = ds.Id; // add security if (GetUsernameOrDefault() != "DEFAULT") { EntityPermissionManager entityPermissionManager = new EntityPermissionManager(); entityPermissionManager.Create <User>(GetUsernameOrDefault(), "Dataset", typeof(Dataset), ds.Id, Enum.GetValues(typeof(RightType)).Cast <RightType>().ToList()); } } else { datasetId = Convert.ToInt64(TaskManager.Bus[CreateTaskmanager.ENTITY_ID]); newDataset = false; } TaskManager = (CreateTaskmanager)Session["CreateDatasetTaskmanager"]; if (dm.IsDatasetCheckedOutFor(datasetId, GetUsernameOrDefault()) || dm.CheckOutDataset(datasetId, GetUsernameOrDefault())) { DatasetVersion workingCopy = dm.GetDatasetWorkingCopy(datasetId); if (TaskManager.Bus.ContainsKey(CreateTaskmanager.METADATA_XML)) { XDocument xMetadata = (XDocument)TaskManager.Bus[CreateTaskmanager.METADATA_XML]; workingCopy.Metadata = Xml.Helpers.XmlWriter.ToXmlDocument(xMetadata); } //set status if (workingCopy.StateInfo == null) { workingCopy.StateInfo = new Vaiona.Entities.Common.EntityStateInfo(); } if (valid) { workingCopy.StateInfo.State = DatasetStateInfo.Valid.ToString(); } else { workingCopy.StateInfo.State = DatasetStateInfo.NotValid.ToString(); } title = xmlDatasetHelper.GetInformationFromVersion(workingCopy.Id, NameAttributeValues.title); if (string.IsNullOrEmpty(title)) { title = "No Title available."; } TaskManager.AddToBus(CreateTaskmanager.ENTITY_TITLE, title);//workingCopy.Metadata.SelectNodes("Metadata/Description/Description/Title/Title")[0].InnerText); TaskManager.AddToBus(CreateTaskmanager.ENTITY_ID, datasetId); dm.EditDatasetVersion(workingCopy, null, null, null); dm.CheckInDataset(datasetId, "Metadata was submited.", GetUsernameOrDefault(), ViewCreationBehavior.None); //add to index // ToDo check which SearchProvider it is, default luceneprovider // BUG: invalid call to ddm method // TODO: mODULARITY ->Call DDM Reindex /* * <Export tag="internalApi" id="SearchIndex" * title="Reindex Search" description="Reindex Search" icon="" * controller="SearchIndex" action="Get" * extends="" /> */ // WORKAROUND: do not reindex //ISearchProvider provider = IoCFactory.Container.ResolveForSession<ISearchProvider>() as ISearchProvider; //provider?.UpdateSingleDatasetIndex(datasetId, IndexingAction.CREATE); if (this.IsAccessibale("DDM", "SearchIndex", "ReIndexSingle")) { var x = this.Run("DDM", "SearchIndex", "ReIndexSingle", new RouteValueDictionary() { { "id", datasetId } }); } LoggerFactory.LogData(datasetId.ToString(), typeof(Dataset).Name, Vaiona.Entities.Logging.CrudState.Created); if (newDataset) { var es = new EmailService(); es.Send(MessageHelper.GetCreateDatasetHeader(), MessageHelper.GetCreateDatasetMessage(datasetId, title, GetUsernameOrDefault()), ConfigurationManager.AppSettings["SystemEmail"] ); } else { var es = new EmailService(); es.Send(MessageHelper.GetUpdateDatasetHeader(), MessageHelper.GetUpdateDatasetMessage(datasetId, title, GetUsernameOrDefault()), ConfigurationManager.AppSettings["SystemEmail"] ); } } return(datasetId); } } catch (Exception ex) { var es = new EmailService(); es.Send(MessageHelper.GetUpdateDatasetHeader(), ex.Message, ConfigurationManager.AppSettings["SystemEmail"] ); } finally { dm.Dispose(); rpm.Dispose(); dsm.Dispose(); } #endregion create dataset return(-1); }
public void GenerateSeedData() { ResearchPlanManager researchPlanManager = new ResearchPlanManager(); DataStructureManager dataStructureManager = new DataStructureManager(); UnitManager unitManager = new UnitManager(); EntityManager entityManager = new EntityManager(); FeatureManager featureManager = new FeatureManager(); OperationManager operationManager = new OperationManager(); MetadataStructureManager metadataStructureManager = new MetadataStructureManager(); try { #region create none researchPlan if (!researchPlanManager.Repo.Get().Any(r => r.Title.Equals("none"))) { researchPlanManager.Create("none", "If no research plan is used."); } #endregion create none researchPlan #region create none structure if (!dataStructureManager.AllTypesDataStructureRepo.Get().Any(d => d.Name.Equals("none"))) { dataStructureManager.CreateUnStructuredDataStructure("none", "If no data strutcure is used."); } #endregion create none structure #region create none unit Dimension dimension = null; if (!unitManager.DimensionRepo.Get().Any(d => d.Name.ToLower().Equals("none"))) { dimension = unitManager.Create("none", "none", "If no unit is used."); // the null dimension should be replaced bz a proper valid one. Javad 11.06 } else { dimension = unitManager.DimensionRepo.Get().Where(d => d.Name.ToLower().Equals("none")).FirstOrDefault(); } if (!unitManager.Repo.Get().Any(u => u.Name.ToLower().Equals("none"))) { unitManager.Create("none", "none", "If no unit is used.", dimension, MeasurementSystem.Unknown); } #endregion create none unit #region create entities // Entities Entity entity = entityManager.Entities.Where(e => e.Name.ToUpperInvariant() == "Dataset".ToUpperInvariant()).FirstOrDefault(); if (entity == null) { entity = new Entity(); entity.Name = "Dataset"; entity.EntityType = typeof(Dataset); entity.EntityStoreType = typeof(Xml.Helpers.DatasetStore); entity.UseMetadata = true; entity.Securable = true; //add to Extra XmlDocument xmlDoc = new XmlDocument(); XmlDatasetHelper xmlDatasetHelper = new XmlDatasetHelper(); xmlDatasetHelper.AddReferenceToXml(xmlDoc, AttributeNames.name.ToString(), "ddm", AttributeType.parameter.ToString(), "extra/modules/module"); entity.Extra = xmlDoc; entityManager.Create(entity); } else { XmlDocument xmlDoc = new XmlDocument(); if (entity.Extra != null) { xmlDoc.AppendChild(entity.Extra); } //update to Extra XmlDatasetHelper xmlDatasetHelper = new XmlDatasetHelper(); xmlDatasetHelper.AddReferenceToXml(xmlDoc, AttributeNames.name.ToString(), "ddm", AttributeType.parameter.ToString(), "extra/modules/module"); entity.Extra = xmlDoc; entityManager.Update(entity); } #endregion create entities #region SECURITY //workflows = größere sachen, vielen operation //operations = einzelne actions //1.controller-> 1.Operation Feature DataCollectionFeature = featureManager.FeatureRepository.Get().FirstOrDefault(f => f.Name.Equals("Data Collection")); if (DataCollectionFeature == null) { DataCollectionFeature = featureManager.Create("Data Collection", "Data Collection"); } Feature DatasetCreationFeature = featureManager.FeatureRepository.Get().FirstOrDefault(f => f.Name.Equals("Data Creation")); if (DatasetCreationFeature == null) { DatasetCreationFeature = featureManager.Create("Data Creation", "Data Creation", DataCollectionFeature); } Feature DatasetUploadFeature = featureManager.FeatureRepository.Get().FirstOrDefault(f => f.Name.Equals("Dataset Upload")); if (DatasetUploadFeature == null) { DatasetUploadFeature = featureManager.Create("Dataset Upload", "Dataset Upload", DataCollectionFeature); } Feature ImportDataFeature = featureManager.FeatureRepository.Get().FirstOrDefault(f => f.Name.Equals("Import Data")); if (ImportDataFeature == null) { ImportDataFeature = featureManager.Create("Import Data", "Easy way to load data into bexis", DataCollectionFeature); } Feature MetadataManagementFeature = featureManager.FeatureRepository.Get().FirstOrDefault(f => f.Name.Equals("Metadata Management")); if (MetadataManagementFeature == null) { MetadataManagementFeature = featureManager.Create("Metadata Management", "Metadata Management", DataCollectionFeature); } #region Help Workflow operationManager.Create("DCM", "Help", "*"); #endregion Help Workflow #region Create Dataset Workflow operationManager.Create("DCM", "CreateDataset", "*", DatasetCreationFeature); operationManager.Create("DCM", "Form", "*"); operationManager.Create("Api", "DatasetIn", "*", DatasetCreationFeature); operationManager.Create("Api", "Dataset", "*", DatasetCreationFeature); operationManager.Create("Api", "MetadataIn", "*", DatasetCreationFeature); operationManager.Create("Api", "Metadata", "*", DatasetCreationFeature); #endregion Create Dataset Workflow #region Update Dataset Workflow operationManager.Create("DCM", "Submit", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitChooseUpdateMethod", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitGetFileInformation", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitSelectAFile", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitSpecifyDataset", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitSummary", "*", DatasetUploadFeature); operationManager.Create("DCM", "SubmitValidation", "*", DatasetUploadFeature); //Load files to server operationManager.Create("DCM", "Push", "*", DatasetUploadFeature); operationManager.Create("Api", "DataIn", "*", DatasetUploadFeature); operationManager.Create("Api", "Data", "*", DatasetUploadFeature); operationManager.Create("Api", "AttachmentIn", "*", DatasetUploadFeature); operationManager.Create("Api", "Attachment", "*", DatasetUploadFeature); #endregion Update Dataset Workflow #region Easy Upload operationManager.Create("DCM", "EasyUpload", "*", ImportDataFeature); operationManager.Create("DCM", "EasyUploadSelectAFile", "*", ImportDataFeature); operationManager.Create("DCM", "EasyUploadSelectAreas", "*", ImportDataFeature); operationManager.Create("DCM", "EasyUploadSheetDataStructure", "*", ImportDataFeature); operationManager.Create("DCM", "EasyUploadSheetSelectMetaData", "*", ImportDataFeature); operationManager.Create("DCM", "EasyUploadSummary", "*", ImportDataFeature); operationManager.Create("DCM", "EasyUploadVerification", "*", ImportDataFeature); #endregion Easy Upload #region Metadata Managment Workflow operationManager.Create("DCM", "ImportMetadataStructure", "*", MetadataManagementFeature); operationManager.Create("DCM", "ImportMetadataStructureReadSource", "*", MetadataManagementFeature); operationManager.Create("DCM", "ImportMetadataStructureSelectAFile", "*", MetadataManagementFeature); operationManager.Create("DCM", "ImportMetadataStructureSetParameters", "*", MetadataManagementFeature); operationManager.Create("DCM", "ImportMetadataStructureSummary", "*", MetadataManagementFeature); operationManager.Create("DCM", "ManageMetadataStructure", "*", MetadataManagementFeature); operationManager.Create("DCM", "SubmitSpecifyDataset", "*", MetadataManagementFeature); #endregion Metadata Managment Workflow #region public available //because of reuse in ddm this controller must be public // but the funktions should be secured operationManager.Create("DCM", "Form", "*"); operationManager.Create("DCM", "EntityReference", "*"); //Attachments operationManager.Create("DCM", "Attachments", "*"); #endregion public available #endregion SECURITY #region Add Metadata if (!metadataStructureManager.Repo.Get().Any(m => m.Name.Equals("Basic ABCD"))) { string titleXPath = "Metadata/Metadata/MetadataType/Description/DescriptionType/Representation/MetadataDescriptionRepr/Title/TitleType"; string descriptionXpath = "Metadata/Metadata/MetadataType/Description/DescriptionType/Representation/MetadataDescriptionRepr/Details/DetailsType"; ImportSchema("Basic ABCD", "ABCD_2.06.XSD", "DataSet", entity.Name, entity.EntityType.FullName, titleXPath, descriptionXpath); } //if (!metadataStructureManager.Repo.Get().Any(m => m.Name.Equals("Full ABCD"))) //{ // string titleXPath = // "Metadata/Metadata/MetadataType/Description/DescriptionType/Representation/MetadataDescriptionRepr/Title/TitleType"; // string descriptionXpath = // "Metadata/Metadata/MetadataType/Description/DescriptionType/Representation/MetadataDescriptionRepr/Details/DetailsType"; // ImportSchema("Full ABCD", "ABCD_2.06.XSD", "DataSet", entity.Name, entity.EntityType.FullName, // titleXPath, descriptionXpath); //} if (!metadataStructureManager.Repo.Get().Any(m => m.Name.Equals("GBIF"))) { string titleXPath = "Metadata/Basic/BasicType/title/titleType"; string descriptionXpath = "Metadata/abstract/abstractType/para/paraType"; ImportSchema("GBIF", "eml.xsd", "Dataset", entity.Name, entity.EntityType.FullName, titleXPath, descriptionXpath); } //if (!metadataStructureManager.Repo.Get().Any(m => m.Name.Equals("Basic Eml"))) // ImportSchema("Basic Eml", "eml-dataset.xsd", entity.Name, entity.Name, entity.EntityType.FullName); #endregion Add Metadata } catch (Exception ex) { throw ex; } finally { researchPlanManager.Dispose(); dataStructureManager.Dispose(); unitManager.Dispose(); entityManager.Dispose(); featureManager.Dispose(); operationManager.Dispose(); metadataStructureManager.Dispose(); } }