public EntityBase GetExperimentById(string expid) { ExperimentEntity experiment = null; using (var session = _driver.Session()) { session.WriteTransaction(tx => { var result = tx.Run("MATCH (e:Experiment) " + "WHERE e.expid = $expid " + "RETURN e", new { expid }); foreach (var record in result) { //Get as an INode instance to access properties. var node = record["e"].As <Neo4j.Driver.V1.INode>(); experiment = new ExperimentEntity { StudyId = node["studyid"].As <string>(), ExperimentId = node["expid"].As <string>(), Name = node.Properties.ContainsKey("name") ? node["name"].As <string>() : "Untitled", Index = node.Properties.ContainsKey("index") ? node["index"].As <int>() : 0, CreationDate = node.Properties.ContainsKey("creationdate") ? node["creationdate"].As <DateTime>() : DateTime.MinValue, SortIndex = node.Properties.ContainsKey("index") ? node["sortindex"].As <int>() : 0, Id = node.Id.As <int>() }; } }); } return(experiment); }
static ConcurrentDictionary <int, ExperimentEntity> PrepareExperiments(string pathToData, AzureExperimentStorage storage) { var experiments = new ConcurrentDictionary <int, ExperimentEntity>(Environment.ProcessorCount, 10000); Directory.EnumerateFiles(pathToData, "*_meta.csv") .AsParallel() .ForAll(file => { var metadata = new MetaData(file); var exp = new ExperimentEntity((int)metadata.Id); exp.Submitted = metadata.SubmissionTime; exp.BenchmarkContainerUri = PerformanceTest.ExperimentDefinition.LocalDiskContainerUri; exp.BenchmarkDirectory = metadata.BaseDirectory; exp.DomainName = "Z3"; exp.BenchmarkFileExtension = "smt2"; exp.Category = "smtlib-latest"; exp.Executable = metadata.BinaryId.ToString(); exp.Parameters = metadata.Parameters; exp.BenchmarkTimeout = metadata.Timeout; exp.MemoryLimitMB = metadata.Memoryout / 1024.0 / 1024.0; exp.Flag = false; exp.Creator = "Imported from Nightly data"; exp.ExperimentTimeout = 0; exp.GroupName = ""; exp.Note = String.Format("Cluster: {0}, cluster job id: {1}, node group: {2}, locality: {3}, finished: {4}, reference: {5}", metadata.Cluster, metadata.ClusterJobId, metadata.Nodegroup, metadata.Locality, metadata.isFinished, metadata.Reference); experiments.TryAdd((int)metadata.Id, exp); }); return(experiments); }
public List <EntityBase> Sort() { List <ExperimentEntity> expEntities = new List <ExperimentEntity>(); ExperimentEntity entity1 = new ExperimentEntity(); entity1.Id = 1; entity1.Name = "Exp 001"; entity1.ExperimentId = "Exp001"; entity1.StudyId = "Study001"; expEntities.Add(entity1); ExperimentEntity entity2 = new ExperimentEntity(); entity2.Id = 3; entity2.Name = "Exp 003"; entity2.ExperimentId = "Exp003"; entity2.StudyId = "Study003"; expEntities.Add(entity2); ExperimentEntity entity3 = new ExperimentEntity(); entity3.Id = 2; entity3.Name = "Exp 002"; entity3.ExperimentId = "Exp002"; entity3.StudyId = "Study002"; expEntities.Add(entity3); ISortByColumnStrategy <ExperimentEntity> sortStrategy = new DynamicSortStrategy <ExperimentEntity>(expEntities, "Name", "asc"); sortStrategy.Sort(); return((List <EntityBase>)sortStrategy); }
public List <EntityBase> GetExperiementsByStudyId(string studyid) { List <EntityBase> experiments = new List <EntityBase>(); using (var session = _driver.Session()) { session.WriteTransaction(tx => { var result = tx.Run("MATCH (s:Study {studyid: {studyid}})-[h:HAS]-(e:Experiment)" + "RETURN e", new { studyid }); foreach (var record in result) { //Get as an INode instance to access properties. var node = record["e"].As <Neo4j.Driver.V1.INode>(); ExperimentEntity experiment = new ExperimentEntity { ExperimentId = node["expid"].As <string>(), Name = node.Properties.ContainsKey("name") ? node["name"].As <string>(): "Untitled", Index = node.Properties.ContainsKey("index") ? node["index"].As <int>() : 0, CreationDate = node.Properties.ContainsKey("creationdate") ? node["creationdate"].As <DateTime>(): DateTime.MinValue, SortIndex = node.Properties.ContainsKey("sortindex") ? node["sortindex"].As <int>() : 0, Id = node.Id.As <int>() }; experiments.Add(experiment); } }); } return(experiments); }
public static ExperimentViewModel ToExperimentViewModel(this ExperimentEntity entity) { ExperimentViewModel model = new ExperimentViewModel(); model.Id = entity.Id; model.Name = entity.Name; if (entity.PhysicalProperty != null) { model.PhysicalPropertyId = entity.PhysicalProperty.Id; model.PhysicalProperty = entity.PhysicalProperty.ToPhysicalPropertyViewModel(); } if (entity.Setup != null) { model.SetupId = entity.Setup.Id; model.Setup = entity.Setup.ToSetupViewModel(); } if (entity.Fluorophore != null) { model.FluorophoreId = entity.Fluorophore.Id; model.Fluorophore = entity.Fluorophore.ToFluorophoreViewModel(); } if (entity.ResearchObject != null) { model.ResearchObjectId = entity.ResearchObject.Id; model.ResearchObject = entity.ResearchObject.ToResearchObjectViewModel(); } return(model); }
public static ExperimentViewModel ToViewModel([NotNull] this ExperimentEntity experimentEntity) { var experimentViewModel = new ExperimentViewModel { DateTime = experimentEntity.DateTime, BaseDistance = experimentEntity.BaseDistance, Category = experimentEntity.Category, DistanceRange = new ObservableCollection <double>(experimentEntity.DistanceRange), ExperimentStatus = experimentEntity.ExperimentStatus, Name = experimentEntity.Name, PhysicModel = experimentEntity.PhysicModel == null? null : ParamsRetrieverManager.GetParamsRetrievers().FirstOrDefault(x => x.Name == experimentEntity.PhysicModel), SpectrometerName = experimentEntity.Spectrometer, WaveMax = experimentEntity.WaveMax, WaveMin = experimentEntity.WaveMin, RetrievedParams = (experimentEntity.RetrievedParams ?? new List <Params>()).ToArray(), SavedData = experimentEntity.Data == null? null : new ExperimentEntityDataViewModel() { WaveLengthArray = experimentEntity.Data.WaveLengthArray, DataItems = new FullyObservableCollection <ExperimentEntityDataItemViewModel>(experimentEntity.Data.DataItems.Select(x => x.ToViewModel())) } }; //todo move to other place EntityDataProvider <ExperimentEntity> .Instance.SaveManager.Map(experimentViewModel, experimentEntity); return(experimentViewModel); }
public static ExperimentEntity ToExperimentEntity(this Experiment model) { if (model == null) { return(null); } ExperimentEntity entity = new ExperimentEntity(); entity.Id = model.Id; entity.Name = model.Name; if (model.PhysicalProperty != null) { entity.PhysicalProperty = model.PhysicalProperty.ToPhysicalPropertyEntity(); } if (model.Setup != null) { entity.Setup = model.Setup.ToSetupEntity(); } if (model.Fluorophore != null) { entity.Fluorophore = model.Fluorophore.ToFluorophoreEntity(); } if (model.ResearchObject != null) { entity.ResearchObject = model.ResearchObject.ToResearchObjectEntity(); } return(entity); }
public static ExperimentResource FromEntity(ExperimentEntity entity) { return(new ExperimentResource() { Name = entity.Name, Description = entity.Description }); }
public void UpdateExperiment() { string expid = CreateExperiment(); ExperimentEntity experiment = (ExperimentEntity)GetExperimentById(expid); experiment.Name = experiment.Name + " - Updated"; _neo4jRepo.UpdateExperiment(experiment); }
public async Task <IActionResult> Save([FromBody] ExperimentViewModel model) { try { ExperimentEntity entity = null; if (!ModelState.IsValid) { return(Ok(new ResponseModel() { Result = ResultCode.NotValidData })); } var item = await _dm.ExperimentAccessor.GetExperiment(model.SetupId, model.ResearchObjectId, model.FluorophoreId, model.PhysicalPropertyId); if (item != null && item.Id != model.Id) { return(Ok(new ResponseModel() { Result = ResultCode.AlreadyExists })); } if (model.Id <= 0) { entity = new ExperimentEntity(); } else { entity = await _dm.ExperimentAccessor.GetExperiment(model.Id); if (entity == null) { return(Ok(new ResponseModel() { Result = ResultCode.AlreadyExists })); } } var entityToSave = model.ToExperimentEntity(); await _dm.ExperimentAccessor.SaveExperiment(entityToSave); return(Ok(new ResponseModel() { Result = ResultCode.Success })); } catch (Exception ex) { return(Ok(new ResponseModel() { Result = ResultCode.ServerError, Description = ex.Message })); } }
public async Task <ExperimentEntity> SaveExperiment(ExperimentEntity entity) { var _item = await Query.Where(e => e.Id == entity.Id).FirstOrDefaultAsync(); if (_item == null) { _item = (await SaveEntity(entity.ToExperiment(null))); } else { _item = (await SaveEntity(entity.ToExperiment(_item))); } return(await GetExperiment(_item.Id)); }
public static ExperimentEntity ToExperimentEntity(this ExperimentViewModel model) { ExperimentEntity entity = new ExperimentEntity(); if (model.Id > 0) { entity.Id = model.Id; } entity.Name = model.Name; entity.PhysicalPropertyId = model.PhysicalPropertyId; entity.SetupId = model.SetupId; entity.FluorophoreId = model.FluorophoreId; entity.ResearchObjectId = model.ResearchObjectId; return(entity); }
public static Experiment ToExperiment(this ExperimentEntity newEntity, Experiment oldEntity = null) { Experiment entity = oldEntity; if (entity == null) { entity = new Experiment(); } entity.PhysicalPropertyId = newEntity.PhysicalPropertyId; entity.SetupId = newEntity.SetupId; entity.FluorophoreId = newEntity.FluorophoreId; entity.ResearchObjectId = newEntity.ResearchObjectId; entity.Name = newEntity.Name; return(entity); }
public static void Seeder(IDbSet <ExperimentEntity> experiments, IDbSet <ProjectEntity> projects) { var projectOne = projects.Find(1); var projectTwo = projects.Find(2); if (projectOne == null) { throw new Exception("Project One not found"); } if (projectTwo == null) { throw new Exception("Project Two not found"); } var experimentOne = new ExperimentEntity() { Name = "Experiment One", Description = "Experiment One Desc", Project = projectOne }; var experimentTwo = new ExperimentEntity() { Name = "Experiment Two", Description = "Experiment Two Desc", Project = projectOne }; var experimentThree = new ExperimentEntity() { Name = "Experiment Three", Description = "Experiment Three Desc", Project = projectTwo }; var experimentFour = new ExperimentEntity() { Name = "Experiment Four", Description = "Experiment Four Desc", Project = projectTwo }; experiments.AddOrUpdate(x => x.Name, experimentOne, experimentTwo, experimentThree, experimentFour); }
public void ScanDDDScenario(MeasuresDataModel measureDataModel) { List<String> dmIDs = new List<String>(); List<AssetEntity> entities = new List<AssetEntity>(); Dictionary<String, ExperimentEntity> entityMap = new Dictionary<string, ExperimentEntity>(); int operatorTypeID = -1; int assetTypeID = -1; try { if ((CurExperiment.ScenarioFilePath == null) || (CurExperiment.ScenarioFilePath.Length <= 0)) { return; } MessageBoxResult result = MessageBox.Show("Scanning a scenario file will clear all selections on the Measures tab. Do you wish to continue?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result != MessageBoxResult.Yes) { return; } // Open scenario file XPathDocument Doc = new XPathDocument(CurExperiment.ScenarioFilePath); XPathNavigator navigator = Doc.CreateNavigator(); navigator.MoveToRoot(); // Make sure this is a DDD Scenario file XPathNavigator node = navigator.SelectSingleNode("/Scenario/ScenarioName"); String scenarioName = node.Value; if ((scenarioName == null) || (scenarioName.Length <= 0)) { return; } // Get all of the DecisionMaker ids XPathNodeIterator iterator = navigator.Select("/Scenario/DecisionMaker"); String dmID = null; while (iterator.MoveNext()) { node = iterator.Current.SelectSingleNode("Identifier"); dmID = node.Value; if ((dmID == null) || (dmID.Length <= 0)) { continue; } dmIDs.Add(dmID); } // Get all of the entity names iterator = navigator.Select("/Scenario/Create_Event"); String entityID = null; while (iterator.MoveNext()) { string ownerName = null; node = iterator.Current.SelectSingleNode("ID"); entityID = node.Value; node = iterator.Current.SelectSingleNode("Owner"); if (node != null) { ownerName = node.Value; } if ((dmID == null) || (dmID.Length <= 0)) { continue; } AssetEntity newAssetEntity = new AssetEntity(); newAssetEntity.AssetName = entityID; newAssetEntity.OwnerName = ownerName; entities.Add(newAssetEntity); } // Clear the experiment measures measureDataModel.DeleteExperimentMeasures(CurExperiment); // Clear the experiment entities ClearExperimentEntities(); // Connect to database VisDashboardDataDataContext db = new VisDashboardDataDataContext(); // Get Entity type for operators var query = from et in db.EntityTypes where et.Name == "Operator" select et; try { operatorTypeID = query.Single().EntityTypeID; } catch (Exception) { return; } // Get Entity type for assets query = from et in db.EntityTypes where et.Name == "Asset" select et; try { assetTypeID = query.Single().EntityTypeID; } catch (Exception) { return; } // Add the new experiment DMs ExperimentEntity newExpEntity = null; foreach (String id in dmIDs) { newExpEntity = new ExperimentEntity(); newExpEntity.Name = id; newExpEntity.ExperimentID = CurExperiment.ExperimentID; newExpEntity.EntityTypeID = operatorTypeID; newExpEntity.OwnerExperimentEntityID = null; db.ExperimentEntities.InsertOnSubmit(newExpEntity); entityMap.Add(id, newExpEntity); } foreach (AssetEntity entity in entities) { newExpEntity = new ExperimentEntity(); newExpEntity.Name = entity.AssetName; newExpEntity.ExperimentID = CurExperiment.ExperimentID; newExpEntity.EntityTypeID = assetTypeID; if ((entity.OwnerName != null) && (entityMap.Keys.Contains(entity.OwnerName))) { newExpEntity.ExperimentEntity1 = entityMap[entity.OwnerName]; } else { newExpEntity.OwnerExperimentEntityID = null; } db.ExperimentEntities.InsertOnSubmit(newExpEntity); entityMap.Add(entity.AssetName, newExpEntity); } db.SubmitChanges(); // Add new Experiment Measures ExperimentMeasure newExperimentMeasure = null; var queryMeasures = from p in db.Measures select p; foreach(UsersInExperiment user in CurExperiment.UsersInExperiments) { foreach (var measure in queryMeasures) { if (measure.Name.CompareTo("Operator") == 0) { foreach (String id in dmIDs) { newExperimentMeasure = new ExperimentMeasure { ExperimentID = CurExperiment.ExperimentID, MeasureID = measure.MeasureID, UserID = user.UserID, ExperimentEntity = entityMap[id], Allowed = false }; db.ExperimentMeasures.InsertOnSubmit(newExperimentMeasure); } } else if (measure.Name.CompareTo("Asset") == 0) { foreach (AssetEntity entity in entities) { newExperimentMeasure = new ExperimentMeasure { ExperimentID = CurExperiment.ExperimentID, MeasureID = measure.MeasureID, UserID = user.UserID, ExperimentEntity = entityMap[entity.AssetName], Allowed = false }; db.ExperimentMeasures.InsertOnSubmit(newExperimentMeasure); } } } } db.SubmitChanges(); // Reload experiment measures measureDataModel.LoadExperiementMeasures(CurExperiment, UsersInExperiment); } catch (Exception) { return; } }
public void ScanDDDScenario(MeasuresDataModel measureDataModel) { List <String> dmIDs = new List <String>(); List <AssetEntity> entities = new List <AssetEntity>(); Dictionary <String, ExperimentEntity> entityMap = new Dictionary <string, ExperimentEntity>(); int operatorTypeID = -1; int assetTypeID = -1; try { if ((CurExperiment.ScenarioFilePath == null) || (CurExperiment.ScenarioFilePath.Length <= 0)) { return; } MessageBoxResult result = MessageBox.Show("Scanning a scenario file will clear all selections on the Measures tab. Do you wish to continue?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result != MessageBoxResult.Yes) { return; } // Open scenario file XPathDocument Doc = new XPathDocument(CurExperiment.ScenarioFilePath); XPathNavigator navigator = Doc.CreateNavigator(); navigator.MoveToRoot(); // Make sure this is a DDD Scenario file XPathNavigator node = navigator.SelectSingleNode("/Scenario/ScenarioName"); String scenarioName = node.Value; if ((scenarioName == null) || (scenarioName.Length <= 0)) { return; } // Get all of the DecisionMaker ids XPathNodeIterator iterator = navigator.Select("/Scenario/DecisionMaker"); String dmID = null; while (iterator.MoveNext()) { node = iterator.Current.SelectSingleNode("Identifier"); dmID = node.Value; if ((dmID == null) || (dmID.Length <= 0)) { continue; } dmIDs.Add(dmID); } // Get all of the entity names iterator = navigator.Select("/Scenario/Create_Event"); String entityID = null; while (iterator.MoveNext()) { string ownerName = null; node = iterator.Current.SelectSingleNode("ID"); entityID = node.Value; node = iterator.Current.SelectSingleNode("Owner"); if (node != null) { ownerName = node.Value; } if ((dmID == null) || (dmID.Length <= 0)) { continue; } AssetEntity newAssetEntity = new AssetEntity(); newAssetEntity.AssetName = entityID; newAssetEntity.OwnerName = ownerName; entities.Add(newAssetEntity); } // Clear the experiment measures measureDataModel.DeleteExperimentMeasures(CurExperiment); // Clear the experiment entities ClearExperimentEntities(); // Connect to database VisDashboardDataDataContext db = new VisDashboardDataDataContext(); // Get Entity type for operators var query = from et in db.EntityTypes where et.Name == "Operator" select et; try { operatorTypeID = query.Single().EntityTypeID; } catch (Exception) { return; } // Get Entity type for assets query = from et in db.EntityTypes where et.Name == "Asset" select et; try { assetTypeID = query.Single().EntityTypeID; } catch (Exception) { return; } // Add the new experiment DMs ExperimentEntity newExpEntity = null; foreach (String id in dmIDs) { newExpEntity = new ExperimentEntity(); newExpEntity.Name = id; newExpEntity.ExperimentID = CurExperiment.ExperimentID; newExpEntity.EntityTypeID = operatorTypeID; newExpEntity.OwnerExperimentEntityID = null; db.ExperimentEntities.InsertOnSubmit(newExpEntity); entityMap.Add(id, newExpEntity); } foreach (AssetEntity entity in entities) { newExpEntity = new ExperimentEntity(); newExpEntity.Name = entity.AssetName; newExpEntity.ExperimentID = CurExperiment.ExperimentID; newExpEntity.EntityTypeID = assetTypeID; if ((entity.OwnerName != null) && (entityMap.Keys.Contains(entity.OwnerName))) { newExpEntity.ExperimentEntity1 = entityMap[entity.OwnerName]; } else { newExpEntity.OwnerExperimentEntityID = null; } db.ExperimentEntities.InsertOnSubmit(newExpEntity); entityMap.Add(entity.AssetName, newExpEntity); } db.SubmitChanges(); // Add new Experiment Measures ExperimentMeasure newExperimentMeasure = null; var queryMeasures = from p in db.Measures select p; foreach (UsersInExperiment user in CurExperiment.UsersInExperiments) { foreach (var measure in queryMeasures) { if (measure.Name.CompareTo("Operator") == 0) { foreach (String id in dmIDs) { newExperimentMeasure = new ExperimentMeasure { ExperimentID = CurExperiment.ExperimentID, MeasureID = measure.MeasureID, UserID = user.UserID, ExperimentEntity = entityMap[id], Allowed = false }; db.ExperimentMeasures.InsertOnSubmit(newExperimentMeasure); } } else if (measure.Name.CompareTo("Asset") == 0) { foreach (AssetEntity entity in entities) { newExperimentMeasure = new ExperimentMeasure { ExperimentID = CurExperiment.ExperimentID, MeasureID = measure.MeasureID, UserID = user.UserID, ExperimentEntity = entityMap[entity.AssetName], Allowed = false }; db.ExperimentMeasures.InsertOnSubmit(newExperimentMeasure); } } } } db.SubmitChanges(); // Reload experiment measures measureDataModel.LoadExperiementMeasures(CurExperiment, UsersInExperiment); } catch (Exception) { return; } }