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); } }
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(); } }
//[MeasurePerformance] public ActionResult _CustomPrimaryDataBinding(GridCommand command, int datasetID) { GridModel model = new GridModel(); Session["Filter"] = command; DatasetManager dm = new DatasetManager(); try { if (dm.IsDatasetCheckedIn(datasetID)) { DatasetVersion dsv = dm.GetDatasetLatestVersion(datasetID); // commented by Javad. Now the new API is called //List<AbstractTuple> dataTuples = dm.GetDatasetVersionEffectiveTuples(dsv, command.Page - 1, // command.PageSize); //DataTable table = SearchUIHelper.ConvertPrimaryDataToDatatable(dsv, dataTuples); DataTable table = dm.GetLatestDatasetVersionTuples(dsv.Dataset.Id, command.Page - 1, command.PageSize); Session["gridTotal"] = dm.GetDatasetVersionEffectiveTupleCount(dsv); model = new GridModel(table); model.Total = Convert.ToInt32(Session["gridTotal"]); // (int)Session["gridTotal"]; } else { ModelState.AddModelError(String.Empty, "Dataset is just in processing."); } return(View(model)); } finally { dm.Dispose(); } }
[TestCase(2)] // primary key as double public void EditDatasetVersion_UpdateAllDataTuples_SameNumberOfDatatuples(int primaryKeyIndex) { Dataset dataset; DatasetVersion latest; List <DataTuple> incoming = new List <DataTuple>(); int count = 0; int expectedCount = 0; List <long> datatupleFromDatabaseIds = new List <long>(); using (DatasetManager datasetManager = new DatasetManager()) { //Arrange dataset = datasetManager.GetDataset(datasetId); latest = datasetManager.GetDatasetLatestVersion(datasetId); datatupleFromDatabaseIds = datasetManager.GetDatasetVersionEffectiveTupleIds(latest); //get updated tuples as incoming datatuples incoming = dsHelper.GetUpdatedDatatuples(latest, dataset.DataStructure as StructuredDataStructure, datasetManager); //because of updateing all datatuples the incoming number is should be equal then the existing one expectedCount = incoming.Count; } using (DatasetManager datasetManager = new DatasetManager()) { try { if (datasetManager.IsDatasetCheckedOutFor(datasetId, "David") || datasetManager.CheckOutDataset(datasetId, "David")) { DatasetVersion workingCopy = datasetManager.GetDatasetWorkingCopy(datasetId); List <long> primaryKeys = new List <long>(); //get primarykey ids // var 1 = int = 1 // var 2 = string = 2 // var 3 = double = 3 // var 4 = boolean = 4 // var 5 = datetime = 5 List <long> varIds = ((StructuredDataStructure)workingCopy.Dataset.DataStructure).Variables.Select(v => v.Id).ToList(); primaryKeys.Add(varIds.ElementAt(primaryKeyIndex)); //Act Dictionary <string, List <DataTuple> > splittedDatatuples = new Dictionary <string, List <DataTuple> >(); UploadHelper uploadhelper = new UploadHelper(); splittedDatatuples = uploadhelper.GetSplitDatatuples(incoming, primaryKeys, workingCopy, ref datatupleFromDatabaseIds); datasetManager.EditDatasetVersion(workingCopy, splittedDatatuples["new"], splittedDatatuples["edit"], null); datasetManager.CheckInDataset(datasetId, count + " rows", "David"); //Assert long c = datasetManager.GetDatasetVersionEffectiveTupleCount(workingCopy); Assert.That(c, Is.EqualTo(expectedCount)); } } catch (Exception ex) { throw ex; } } }
//[MeasurePerformance] public ActionResult ShowPrimaryData(long datasetID) { Session["Filter"] = null; Session["Columns"] = null; Session["DownloadFullDataset"] = false; ViewData["DownloadOptions"] = null; DatasetManager dm = new DatasetManager(); DataStructureManager dsm = new DataStructureManager(); //permission download EntityPermissionManager entityPermissionManager = new EntityPermissionManager(); try { if (dm.IsDatasetCheckedIn(datasetID)) { //long versionId = dm.GetDatasetLatestVersionId(datasetID); // check for zero value //DatasetVersion dsv = dm.DatasetVersionRepo.Get(versionId); DatasetVersion dsv = dm.GetDatasetLatestVersion(datasetID); StructuredDataStructure sds = dsm.StructuredDataStructureRepo.Get(dsv.Dataset.DataStructure.Id); 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, "Dataset", typeof(Dataset), datasetID, RightType.Read); //TITLE string title = xmlDatasetHelper.GetInformationFromVersion(dsv.Id, NameAttributeValues.title); if (ds.Self.GetType() == typeof(StructuredDataStructure)) { //ToDO Javad: 18.07.2017 -> replaced to the new API for fast retrieval of the latest version // //List<AbstractTuple> dataTuples = dm.GetDatasetVersionEffectiveTuples(dsv, 0, 100); //DataTable table = SearchUIHelper.ConvertPrimaryDataToDatatable(dsv, dataTuples); DataTable table = dm.GetLatestDatasetVersionTuples(dsv.Dataset.Id, 0, 100); Session["gridTotal"] = dm.GetDatasetVersionEffectiveTupleCount(dsv); return(PartialView(ShowPrimaryDataModel.Convert(datasetID, title, sds, table, downloadAccess))); //return PartialView(new ShowPrimaryDataModel()); } if (ds.Self.GetType() == typeof(UnStructuredDataStructure)) { return (PartialView(ShowPrimaryDataModel.Convert(datasetID, title, ds, SearchUIHelper.GetContantDescriptorFromKey(dsv, "unstructuredData"), downloadAccess))); } } else { ModelState.AddModelError(string.Empty, "Dataset is just in processing."); } return(PartialView(null)); } finally { dm.Dispose(); dsm.Dispose(); entityPermissionManager.Dispose(); } }
private void indexPrimaryData(long id, List <XmlNode> categoryNodes, ref Document dataset, string docId, XmlDocument metadataDoc) { DatasetManager dm = new DatasetManager(); DataStructureManager dsm = new DataStructureManager(); if (!dm.IsDatasetCheckedIn(id)) { return; } DatasetVersion dsv = dm.GetDatasetLatestVersion(id); StructuredDataStructure sds = dsm.StructuredDataStructureRepo.Get(dsv.Dataset.DataStructure.Id); if (sds == null) { return; } indexStructureDataStructcure(sds, ref dataset, docId); if (!includePrimaryData) { return; } try { { // Javad: check if the dataset is "checked-in". If yes, then use the paging version of the GetDatasetVersionEffectiveTuples method // number of tuples for the for loop is also available via GetDatasetVersionEffectiveTupleCount // a proper fetch (page) size can be obtained by calling dm.PreferedBatchSize int fetchSize = dm.PreferedBatchSize; long tupleSize = dm.GetDatasetVersionEffectiveTupleCount(dsv); long noOfFetchs = tupleSize / fetchSize + 1; for (int round = 0; round < noOfFetchs; round++) { List <string> primaryDataStringToindex = null; using (DataTable table = dm.GetLatestDatasetVersionTuples(dsv.Dataset.Id, round, fetchSize)) { primaryDataStringToindex = getAllStringValuesFromTable(table); // should take the table table.Dispose(); } foreach (XmlNode category in categoryNodes) { String primitiveType = category.Attributes.GetNamedItem("primitive_type").Value; String lucene_name = category.Attributes.GetNamedItem("lucene_name").Value; String analysing = category.Attributes.GetNamedItem("analysed").Value; float boosting = Convert.ToSingle(category.Attributes.GetNamedItem("boost").Value); var toAnalyse = Lucene.Net.Documents.Field.Index.NOT_ANALYZED; if (analysing.ToLower().Equals("yes")) { toAnalyse = Lucene.Net.Documents.Field.Index.ANALYZED; } if (category.Attributes.GetNamedItem("type").Value.Equals("primary_data_field")) { if (primaryDataStringToindex != null && primaryDataStringToindex.Count > 0) { foreach (string pDataValue in primaryDataStringToindex) // Loop through List with foreach { Field a = new Field("category_" + lucene_name, pDataValue, Lucene.Net.Documents.Field.Store.NO, toAnalyse); a.Boost = boosting; dataset.Add(a); dataset.Add(new Field("ng_" + lucene_name, pDataValue, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.ANALYZED)); dataset.Add(new Field("ng_all", pDataValue, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.ANALYZED)); writeAutoCompleteIndex(docId, lucene_name, pDataValue); writeAutoCompleteIndex(docId, "ng_all", pDataValue); } } } } } } } catch (Exception ex) { throw ex; } finally { dm.Dispose(); dsm.Dispose(); } }