public IReadOnlyList <T> LoadFromTemplate <T>(TemplateType templateType) { _buildingBlockTypeString = _objectTypeResolver.TypeFor <T>(); _view.Caption = PKSimConstants.UI.LoadBuildingBlockFromTemplate(_buildingBlockTypeString); _shouldAddItemIcons = !_templateTaskQuery.IsPrimitiveType(templateType); updateIcon(templateType); _availableBuildingBlocks = _templateTaskQuery.AllTemplatesFor(templateType); if (!_availableBuildingBlocks.Any()) { throw new NoBuildingBlockTemplateAvailableException(_buildingBlockTypeString); } var userTemplateNode = _treeNodeFactory.CreateFor(PKSimRootNodeTypes.UserTemplates); var systemTemplateNode = _treeNodeFactory.CreateFor(PKSimRootNodeTypes.SystemTemplates); addTemplatesTo(userTemplateNode, TemplateDatabaseType.User); addTemplatesTo(systemTemplateNode, TemplateDatabaseType.System); updateView(); _view.Display(); if (_view.Canceled) { return(new List <T>()); } return(shouldLoadTemplateWithReferences() ? loadMultipleTemplate <T>() : loadSingleTemplate <T>()); }
public Task <IReadOnlyList <T> > LoadFromTemplateAsync <T>(TemplateType templateType) { _templateTypeDisplay = templateType.ToString(); _view.Caption = PKSimConstants.UI.LoadItemFromTemplate(_templateTypeDisplay); _shouldAddItemIcons = !_templateTaskQuery.IsPrimitiveType(templateType); updateIcon(templateType); _availableTemplates.AddRange(_templateTaskQuery.AllTemplatesFor(templateType) .Where(x => x.IsSupportedByCurrentVersion(_configuration.Version)) .OrderBy(x => x.Name)); if (!_availableTemplates.Any()) { throw new NoTemplateAvailableException(_templateTypeDisplay); } updateView(); _view.Display(); if (_view.Canceled) { return(Task.FromResult <IReadOnlyList <T> >(Array.Empty <T>())); } return(shouldLoadTemplateWithReferences(templateType) ? loadMultipleTemplate <T>() : loadSingleTemplate <T>()); }
protected void AddExistingTemplateNames(Template template, ObjectBaseDTO dto) { var allTemplates = _templateTaskQuery.AllTemplatesFor(template.DatabaseType, template.Type); dto.AddUsedNames(allTemplates.Select(x => x.Name)); dto.ContainerType = PKSimConstants.UI.TemplateDatabase; }
public IReadOnlyList <T> LoadFromTemplate <T>(TemplateType templateType) { var allTemplates = new List <T>(); string buildingBlockTypeString = _objectTypeResolver.TypeFor <T>(); _view.Caption = PKSimConstants.UI.LoadBuildingBlockFromTemplate(buildingBlockTypeString); _shouldAddItemIcons = !_templateTaskQuery.IsPrimitiveType(templateType); updateIcon(templateType); _availableBuildingBlocks = _templateTaskQuery.AllTemplatesFor(templateType); if (!_availableBuildingBlocks.Any()) { throw new NoBuildingBlockTemplateAvailableException(buildingBlockTypeString); } var userTemplateNode = _treeNodeFactory.CreateFor(PKSimRootNodeTypes.UserTemplates); var systemTemplateNode = _treeNodeFactory.CreateFor(PKSimRootNodeTypes.SystemTemplates); addTemplatesTo(userTemplateNode, TemplateDatabaseType.User); addTemplatesTo(systemTemplateNode, TemplateDatabaseType.System); updateView(); _view.Display(); if (_view.Canceled) { return(allTemplates); } if (_selectedTemplate.HasReferences) { if (_dialogCreator.MessageBoxYesNo(PKSimConstants.UI.DoYouWantToLoadReferencedTemplateAsWell) == ViewResult.Yes) { return(loadMultipleTemplate <T>()); } } allTemplates.Add(loadSingleTemplate <T>()); return(allTemplates); }
private LocalTemplate templateItemFor(IPKSimBuildingBlock buildingBlockToSave, TemplateDatabaseType templateDatabaseType) { string buildingBlockName = buildingBlockToSave.Name; string buildingBlockType = TypeFor(buildingBlockToSave); var templateType = buildingBlockToSave.BuildingBlockType.AsTemplateType(); if (_templateTaskQuery.Exists(templateDatabaseType, buildingBlockName, templateType)) { var result = _dialogCreator.MessageBoxYesNoCancel(PKSimConstants.UI.TemplateWithNameAlreadyExistsInTheDatabase(buildingBlockToSave.Name, buildingBlockType), PKSimConstants.UI.Override, PKSimConstants.UI.SaveAs, PKSimConstants.UI.CancelButton); //user does not want to override if (result == ViewResult.Cancel) { return(null); } //retrieve a new name if (result == ViewResult.No) { var allTemplateNames = _templateTaskQuery.AllTemplatesFor(templateDatabaseType, templateType).Select(x => x.Name); buildingBlockName = _entityTask.NewNameFor(buildingBlockToSave, allTemplateNames); if (string.IsNullOrEmpty(buildingBlockName)) { return(null); } } } Load(buildingBlockToSave); return(new LocalTemplate { Name = buildingBlockName, Description = buildingBlockToSave.Description, Object = buildingBlockToSave, Type = templateType, DatabaseType = templateDatabaseType }); }