/// <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); }
/// <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); }