public async Task <ImportModelDataResult> ImportModelData(IProjectContext projectContext, string file)
        {
            _importProblems.Clear();
            var nullSession    = new NullWriteSession();
            var fileName       = Path.GetFileNameWithoutExtension(file);
            var usedNames      = projectContext.Project.RootNamespace.Namespaces.Select(element => element.Name);
            var name           = _nameGenerator.FindUniqueName(fileName, usedNames);
            var modelNamespace = new Namespace {
                Name = name
            };

            var modelData = _jsonFileReader.ReadModelDataFromJson(file, out var msg);

            if (modelData == null)
            {
                return(ImportModelDataResult.Failed($"Failed to import data from '{fileName}.json': {msg}"));
            }

            var datapool = modelData.Datapool;

            if (datapool != null)
            {
                ImportDatapool(nullSession, projectContext, datapool, modelNamespace);
            }

            var events = modelData.Events;

            if (events != null)
            {
                ImportEvents(nullSession, projectContext, events, modelNamespace);
            }

            if (_importProblems.Any())
            {
                var message = string.Join(", ", _importProblems);
                return(ImportModelDataResult.Failed($"Failed to import data from '{fileName}'.json': {message}."));
            }

            await _schedulerProvider.ExecuteModelAction(
                projectContext,
                session => AddModelNamespace(
                    session,
                    projectContext,
                    modelNamespace));

            return(ImportModelDataResult.Success($"Imported data from '{fileName}.json' to new namespace " +
                                                 $"'{modelNamespace.Name}'."));
        }
        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);
        }