private async void RemoveElement(object selected)
        {
            if (selected == null)
            {
                return;
            }
            if (selected is DirectoryItem)
            {
                var path      = ((DirectoryItem)selected).Path;
                var groupName = Path.GetFileName(path);

                if (!await DialogsHelper.ShowRequest(
                        $"Удалить группу \"{groupName}\" и все связанные с ней файлы?",
                        WindowType.TreeMenu))
                {
                    return;
                }

                var itemsCount = _itemProvider.GetItems(path).Count(t => t is FileItem);
                if (itemsCount > 0)
                {
                    if (!await DialogsHelper.ShowRequest(
                            $"Группа \"{groupName}\" содержит проекты ({itemsCount}).{Environment.NewLine}" +
                            "Удалить их без возможности восстановления?", WindowType.TreeMenu))
                    {
                        return;
                    }
                }

                if (!RemoveGroup(path))
                {
                    await DialogsHelper.ShowMessage("Ошибка удаления группы", WindowType.TreeMenu);

                    return;
                }
                FillItems();
            }
            else if (selected is FileItem)
            {
                var fileName = ((FileItem)selected).Path;
                var name     = Path.GetFileNameWithoutExtension(fileName);
                if (!await DialogsHelper.ShowRequest(
                        $"Удалить проект \"{name}\" без возможности восстановления?", WindowType.TreeMenu))
                {
                    return;
                }

                if (!RemoveFile(fileName))
                {
                    await DialogsHelper.ShowMessage("Ошибка удаления файла проекта", WindowType.TreeMenu);

                    return;
                }
                FillItems();
            }
        }
Beispiel #2
0
        private async void Save()
        {
            var success = await _projectRepository.SaveProject();

            if (!string.IsNullOrEmpty(_projectRepository.ErrorMessage))
            {
                await DialogsHelper.ShowMessage($"Ошибка сохранения проекта: {_projectRepository.ErrorMessage}.");
            }
            else
            {
                DialogsHelper.ShowNotification(success ? "Проект сохранен." : "Сохранение отменено.");
            }
        }
Beispiel #3
0
        private async void Help()
        {
            var appInfo = $"Версия {Constants.Version}.{Environment.NewLine}Обновлено {Constants.LastUpdated}.";

            try
            {
                await DialogsHelper.ShowMessage(appInfo);
            }
            catch (Exception e)
            {
                DialogsHelper.ShowNotification(appInfo);
            }
        }
        private async void AddGroup(object selected)
        {
            var name = await GetName("Введите имя группы");

            if (name == null)
            {
                return;
            }

            if (selected == null)
            {
                // Add to empty root
                Directory.CreateDirectory(Path.Combine(_rootPath, name));
            }
            else if (selected is DirectoryItem)
            {
                var path = Path.Combine(((DirectoryItem)selected).Path, name);
                try
                {
                    Directory.CreateDirectory(path);
                }
                catch (Exception e)
                {
                    await DialogsHelper.ShowMessage($"Не удалось создать папку \"{path}\"{Environment.NewLine}" +
                                                    $"{e.Message}");

                    return;
                }
            }
            else if (selected is FileItem)
            {
                var selector = (FileItem)selected;
                var path     = Path.GetDirectoryName(selector.Path);
                if (path == null)
                {
                    return;
                }
                Directory.CreateDirectory(Path.Combine(path, name));
            }
            else
            {
                return;
            }

            FillItems();
        }
Beispiel #5
0
        private async void FillTemplate()
        {
            if (!_projectRepository.ProjectSettings.IsCompleted)
            {
                DialogsHelper.ShowNotification("Заполните все обязательные поля.");
                await DialogsHelper.OpenConfiguration(_dataProvider, 1);

                return;
            }

            //await DialogsManager.ShowProgress("Формирование файла...");
            if (!_dataProvider.ObjectsRepository.IsCompleted())
            {
                DialogsHelper.ShowNotification($"Заполните все обязательные поля ({_dataProvider.ObjectsRepository.ErrorMessage}).");
                return;
            }

            if (!_projectRepository.FillTemplate())
            {
                await DialogsHelper.ShowMessage(_projectRepository.ErrorMessage);
            }

            DialogsHelper.CloseProgress();
        }