private async Task ImportJsonModel(IWorkbenchViewModel workbenchViewModel) { var projectContext = workbenchViewModel.ProjectContext; var initialDir = _options.Value.ImportLocation; if (string.IsNullOrEmpty(initialDir)) { initialDir = projectContext.Location; } var jsonFile = _jsonFileReader.SelectJsonFile(initialDir); if (string.IsNullOrEmpty(jsonFile)) { return; } _options.Value.ImportLocation = Path.GetDirectoryName(jsonFile); var result = await _schedulerProvider.PoolScheduler.InvokeAsync( () => _jsonModelService.ImportModelData( projectContext, jsonFile), executionMode : ExecutionMode.Blocking); ShowImportToastNotification(workbenchViewModel, result); }
protected override DockablePartViewModelBase CreatePartImpl( IWorkbenchViewModel workbench, WorkbenchPartId contentId) { return(new AnnotationComponentViewModel( contentId, workbench, _annotationService.Value, _schedulerProvider.Value)); }
private static void ShowEventToastNotification( IWorkbenchViewModel workbenchViewModel, IEvent evt) { var toastNotification = new ToastNotification { Header = "Event created", Content = $"Event {evt.Name} has been created.", Priority = ToastNotificationPriority.Success }; workbenchViewModel.ToastNotifier.Show(toastNotification); }
private static void ShowImportToastNotification(IWorkbenchViewModel workbenchViewModel, ImportModelDataResult result) { var priority = result.IsSuccess ? ToastNotificationPriority.Success : ToastNotificationPriority.Warning; var toastNotification = new ToastNotification { Header = result.Title, Content = result.Message, Priority = priority }; workbenchViewModel.ToastNotifier.Show(toastNotification); }
private async Task CreateDummyEvent(IWorkbenchViewModel workbenchViewModel) { var projectContext = workbenchViewModel.ProjectContext; // Model actions execute asynchronously on a special thread so we have to await the result. var evt = await _schedulerProvider.ExecuteModelAction( projectContext, session => _eventService.CreateEvent( session, projectContext, projectContext.Project.RootNamespace, "Dummy event")); ShowEventToastNotification(workbenchViewModel, evt); }
public void SetUp() { _projectContext = A.Fake <IProjectContext>(); _workbenchViewModel = A.Fake <IWorkbenchViewModel>(); A.CallTo(() => _workbenchViewModel.ProjectContext).Returns(_projectContext); _fileDialogManager = A.Fake <IFileDialogManager>(); _modelExporter = A.Fake <IModelExporter>(); _gtfCopier = A.Fake <IGtfCopier>(); _batchCopier = A.Fake <IBatchCopier>(); _zipper = A.Fake <IZipper>(); _monitorCopier = A.Fake <IMonitorCopier>(); var fileService = A.Fake <IFileService>(); _schedulerProvider = A.Fake <ITaskSchedulerProvider>(); A.CallTo( () => _schedulerProvider.PoolScheduler.InvokeAsync( A <Action> ._, A <CancellationToken> ._, A <ExecutionMode> ._)).Invokes(oc => oc.GetArgument <Action>(0)()); _packAndGo = new PackAndGo(_fileDialogManager, fileService, _modelExporter, _gtfCopier, _batchCopier, _zipper, _monitorCopier, _schedulerProvider); }