Ejemplo n.º 1
0
        /// <summary>
        /// Добавление функций открытия диалогов для документа с определенным идентификатором без возможности создания документа
        /// </summary>
        /// <returns>Конфигурация документа</returns>
        /// <param name="docIdentificationFunc">Уникальный идентификатор типа документа, должен возвращать true только для тех строк для которых должен открываться выбранный тип диалога и больше никакой другой</param>
        /// <param name="openDlgFunc">Функция вызова диалога открытия нового документа</param>
        /// <typeparam name="TViewModel">Тип диалога для конфигурируемого документа</typeparam>
        public MultipleEntityModelConfiguration <TEntity, TNode> AddViewModelDocumentConfigurationWithoutCreation <TViewModel>(Func <TNode, bool> docIdentificationFunc, Func <TNode, TViewModel> openDlgFunc)
            where TViewModel : QS.ViewModels.TabViewModelBase
        {
            if (docConfigs.ContainsKey(typeof(TViewModel)))
            {
                throw new InvalidOperationException($"Кофигурация для сущности {nameof(TEntity)} уже содержит кофигурацию документа для диалога {nameof(TViewModel)}");
            }

            var dlgInfo = new MultipleEntityModelDocumentConfig <TNode>(typeof(TEntity), openDlgFunc, docIdentificationFunc);

            docConfigs.Add(typeof(TViewModel), dlgInfo);
            return(this);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Добавление функций открытия диалогов для документа с определенным идентификатором и именем
        /// </summary>
        /// <returns>Конфигурация документа</returns>
        /// <param name="docIdentificationFunc">Уникальный идентификатор типа документа, должен возвращать true только для тех строк для которых должен открываться выбранный тип диалога и больше никакой другой</param>
        /// <param name="createActionTitle">Отображаемое имя документа в действиях с документов</param>
        /// <param name="createDlgFunc">Функция вызова диалога создания нового документа</param>
        /// <param name="openDlgFunc">Функция вызова диалога открытия нового документа</param>
        /// <typeparam name="TEntityDlg">Тип диалога для конфигурируемого документа</typeparam>
        public MultipleEntityModelConfiguration <TEntity, TNode> AddViewModelBasedDocumentConfiguration <TEntityDlg>(Func <TNode, bool> docIdentificationFunc, string createActionTitle, Func <TEntityDlg> createDlgFunc, Func <TNode, TEntityDlg> openDlgFunc)
            where TEntityDlg : class, IViewModelBaseView <TEntity>, ITdiTab
        {
            if (docConfigs.ContainsKey(typeof(TEntityDlg)))
            {
                throw new InvalidOperationException($"Кофигурация для сущности {nameof(TEntity)} уже содержит кофигурацию документа для диалога {nameof(TEntityDlg)}");
            }

            var dlgInfo = new MultipleEntityModelDocumentConfig <TNode>(typeof(TEntity), createActionTitle, createDlgFunc, openDlgFunc, docIdentificationFunc);

            docConfigs.Add(typeof(TEntityDlg), dlgInfo);
            return(this);
        }