public void Setup() { _dispatcher = new ManualDispatcher(); _viewTemplate = new AnalysisViewTemplate(); _analyser = new Mock <IAnalysis>(); _analysisStorage = new Mock <IAnalysisStorage>(); }
public AnalysisViewModel(IDispatcher dispatcher, AnalysisViewTemplate viewTemplate, IAnalysis analyser, IAnalysisStorage analysisStorage, IPluginLoader pluginLoader) { _dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher)); _analyser = analyser ?? throw new ArgumentNullException(nameof(analyser)); _analysisStorage = analysisStorage ?? throw new ArgumentNullException(nameof(analysisStorage)); _viewTemplate = viewTemplate ?? throw new ArgumentNullException(nameof(viewTemplate)); _pluginLoader = pluginLoader ?? throw new ArgumentNullException(nameof(pluginLoader)); _pages = new ObservableCollection <AnalysisPageViewModel>(); _addPageCommand = new DelegateCommand(AddNewPage); _removeCommand = new DelegateCommand(RemoveThis); _captureSnapshotCommand = new DelegateCommand2(CaptureSnapshot) { CanBeExecuted = true }; if (viewTemplate.Pages.Any()) { foreach (var pageTemplate in viewTemplate.Pages) { // TODO: Solve this conundrum! AddPage((PageTemplate)pageTemplate); } } else { AddNewPage(); } _selectedPage = _pages.FirstOrDefault(); }
/// <inheritdoc /> public Task SaveSnapshot(IAnalysis analysis, AnalysisViewTemplate viewTemplate) { var tmp = analysis as ActiveAnalysis; if (tmp == null) { throw new ArgumentException("It makes no sense to create a snapshot from anything else but an active analysis", nameof(analysis)); } var analysisSnapshot = tmp.CreateSnapshot(); var template = new AnalysisTemplate(analysisSnapshot.Analysers.Select(x => new AnalyserTemplate { Id = x.Id, AnalyserPluginId = x.AnalyserPluginId, Configuration = x.Configuration })); var clone = viewTemplate.Clone(); var results = analysisSnapshot.Analysers.Select(x => new AnalyserResult { AnalyserId = x.Id, Result = x.Result }).ToList(); var snapshot = new Core.Analysis.AnalysisSnapshot(template, clone, results); return(_snapshots.Save(snapshot)); }
public IAnalysis CreateAnalysis(AnalysisTemplate template, AnalysisViewTemplate viewTemplate) { ActiveAnalysisConfiguration analysisConfiguration; var id = AnalysisId.CreateNew(); var analysis = new ActiveAnalysis(id, template, _taskScheduler, _dataSourceAnalyserEngine, TimeSpan.FromMilliseconds(100)); try { analysisConfiguration = new ActiveAnalysisConfiguration(id, template, viewTemplate); lock (_syncRoot) { _templates.Add(analysisConfiguration); _analyses.Add(analysis.Id, analysis); _lastSavedAnalyses.Add(analysis.Id, analysisConfiguration); } } catch (Exception) { analysis.Dispose(); //< ActiveAnalysis actually spawns new analyses on the engine so we should cancel those in case an exception si thrown here... throw; } SaveAsync(analysisConfiguration).Wait(); return(analysis); }
public void TestCreateAnalysis3() { var storage = new AnalysisStorage(_taskScheduler, _filesystem, _dataSourceAnalyserEngine.Object, _typeFactory); var analysisTemplate = new AnalysisTemplate(); var analysisViewTemplate = new AnalysisViewTemplate(); var analysis = storage.CreateAnalysis(analysisTemplate, analysisViewTemplate); analysisViewTemplate.Add(new PageTemplate { Title = "A great page" }); var task = storage.SaveAsync(analysis.Id); task.Should().NotBeNull(); task.Wait(TimeSpan.FromSeconds(5)).Should().BeTrue("because the modified template should've been saved"); var anotherStorage = new AnalysisStorage(_taskScheduler, _filesystem, _dataSourceAnalyserEngine.Object, _typeFactory); anotherStorage.AnalysisTemplates.Should().HaveCount(1, "because we've created and saved one template"); var template = anotherStorage.AnalysisTemplates.First(); template.Should().NotBeNull(); template.ViewTemplate.Pages.Should().HaveCount(1, "because we've added one page to that template"); var pageTemplate = template.ViewTemplate.Pages.First(); pageTemplate.Should().NotBeNull(); pageTemplate.Title.Should().Be("A great page"); }
public void Setup() { _dispatcher = new ManualDispatcher(); _viewTemplate = new AnalysisViewTemplate(); _analyser = new Mock <IAnalysis>(); _id = AnalysisId.CreateNew(); _analyser.Setup(x => x.Id).Returns(_id); _analysisStorage = new Mock <IAnalysisStorage>(); _pluginRegistry = new PluginRegistry(); }
public void TestCtor1() { var id = AnalysisId.CreateNew(); var template = new AnalysisTemplate(); var viewTemplate = new AnalysisViewTemplate(); var configuration = new ActiveAnalysisConfiguration(id, template, viewTemplate); configuration.Id.Should().Be(id); configuration.Template.Should().BeSameAs(template); configuration.ViewTemplate.Should().BeSameAs(viewTemplate); }
public void TestSerialize1() { var template = new AnalysisViewTemplate { Name = "Ronny" }; var actualTemplate = template.Roundtrip(); actualTemplate.Should().NotBeNull(); actualTemplate.Name.Should().Be("Ronny"); }
public void TestRoundtripEmpty() { var id = AnalysisId.CreateNew(); var template = new AnalysisTemplate(); var viewTemplate = new AnalysisViewTemplate(); var configuration = new ActiveAnalysisConfiguration(id, template, viewTemplate); var actualConfiguration = configuration.Roundtrip(); actualConfiguration.Id.Should().Be(id); actualConfiguration.Template.Should().NotBeNull(); actualConfiguration.ViewTemplate.Should().NotBeNull(); }
public AnalysisViewModel CreateNew() { var viewTemplate = new AnalysisViewTemplate(); var template = new AnalysisTemplate(); var analysis = _analysisStorage.CreateAnalysis(template, viewTemplate); var viewModel = new AnalysisViewModel(_dispatcher, viewTemplate, analysis, _analysisStorage); _active.Add(viewModel); _activeById.Add(viewModel.Id, viewModel); viewModel.OnRemove += AnalysisOnOnRemove; Update(); return(viewModel); }
public AnalysisViewModel(IDispatcher dispatcher, AnalysisViewTemplate viewTemplate, IAnalysis analyser, IAnalysisStorage analysisStorage, IPluginLoader pluginLoader) { _dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher)); _analyser = analyser ?? throw new ArgumentNullException(nameof(analyser)); _analysisStorage = analysisStorage ?? throw new ArgumentNullException(nameof(analysisStorage)); _viewTemplate = viewTemplate ?? throw new ArgumentNullException(nameof(viewTemplate)); _pluginLoader = pluginLoader ?? throw new ArgumentNullException(nameof(pluginLoader)); _pages = new ObservableCollection <AnalysisPageViewModel>(); _addPageCommand = new DelegateCommand(AddPage); _removeCommand = new DelegateCommand(RemoveThis); _captureSnapshotCommand = new DelegateCommand2(CaptureSnapshot) { CanBeExecuted = true }; AddPage(); _selectedPage = _pages.FirstOrDefault(); }
public AnalysisViewModel(IDispatcher dispatcher, AnalysisViewTemplate viewTemplate, IAnalysis analyser, IAnalysisStorage analysisStorage) { if (dispatcher == null) { throw new ArgumentNullException(nameof(dispatcher)); } if (viewTemplate == null) { throw new ArgumentNullException(nameof(viewTemplate)); } if (analyser == null) { throw new ArgumentNullException(nameof(analyser)); } if (analysisStorage == null) { throw new ArgumentNullException(nameof(analysisStorage)); } _dispatcher = dispatcher; _analyser = analyser; _analysisStorage = analysisStorage; _viewTemplate = viewTemplate; _pages = new ObservableCollection <AnalysisPageViewModel>(); _addPageCommand = new DelegateCommand(AddPage); _removeCommand = new DelegateCommand(RemoveThis); _captureSnapshotCommand = new DelegateCommand2(CaptureSnapshot) { CanBeExecuted = true }; _name = "Unsaved analysis"; AddPage(); _selectedPage = _pages.FirstOrDefault(); }
public void TestConstruction() { var template = new AnalysisViewTemplate(); template.Name.Should().Be("<Unnamed>"); }