Example #1
0
        public static string ShowDialog_CreateNewArticle(Window owner)
        {
            // Сначала нужно получить имя имя доступной новой статьи по умолчанию

            const string defaultFreeWorkspaceNameBase = "Article";
            int defaultFreeWorkspaceNameNumber = 1;

            string defaultFreeWorkspaceName;
            do
                defaultFreeWorkspaceName = $"{defaultFreeWorkspaceNameBase}{defaultFreeWorkspaceNameNumber++}";
            while (Global.CurrentWorkspace.ArticleNames.Contains(defaultFreeWorkspaceName));

            InputBoxWindow dialog = new InputBoxWindow(
                defaultFreeWorkspaceName,
                owner.Lang("NewArticleDialog.Title"),
                owner.Lang("NewArticleDialog.Label"),
                owner.Lang("CreateButtonCaption"),
                owner.Lang("CancelButtonCaption"),
                (input) =>
                {
                    if (input == string.Empty)
                        return owner.Lang("Error.Article.IllegalName");

                    if (Global.CurrentWorkspace.ArticleNames.Contains(input))
                        return owner.Lang("Error.Article.AlreadyExists");

                    return null;
                });

            dialog.Owner = owner;
            dialog.WindowStartupLocation = WindowStartupLocation.CenterOwner;

            return dialog.ShowDialog().Value ? dialog.Input : null;
        }