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);
        }
Beispiel #2
0
 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);
        }
Beispiel #6
0
        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);
        }