private void RenderRepository(bool hasRepository, string domainEntityLabel) { var repositoryCode = string.Empty; var repositoryAutoCode = string.Empty; if (hasRepository) { repositoryCode = ItemCodeTemplate.GetRepositoryCodeInEntityFile(_domainEntityName, domainEntityLabel, _domainBaseEntityName); repositoryAutoCode = ItemCodeTemplate.GetRepositoryFileCoreAutoCode(_domainEntityName); } _replacementsDictionary.Add("$repositoryCode$", repositoryCode); _replacementsDictionary.Add("$repositoryAutoCode$", repositoryAutoCode); }
public override void RunStarted( object automationObject, Dictionary <string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) { _replacementsDictionary = replacementsDictionary; base.RunStarted(automationObject, _replacementsDictionary, runKind, customParams); var repoNamespace = _replacementsDictionary["$rootnamespace$"]; var dnsItems = repoNamespace.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries); var vm = new DomainEntityRepositoryWizardWindowViewModel(); //如果文件的名称中没有以 Repository 结尾,则主动加上 Repository。 var safeItemName = _replacementsDictionary["$safeitemname$"]; if (safeItemName.EndsWith(Consts.RepositorySuffix)) { vm.EntityTypeName = safeItemName.Substring(0, safeItemName.Length - Consts.RepositorySuffix.Length); } else { vm.EntityTypeName = safeItemName; } vm.BaseTypeName = dnsItems.Last() + Consts.EntityRepositorySuffix; vm.DTE = automationObject as DTE; //显示向导窗口 var win = new DomainEntityRepositoryWizardWindow(); win.DataContext = vm; var res = win.ShowDialog(); if (res != true) { _canceled = true; return; } //输出 var repositoryAutoCode = ItemCodeTemplate.GetRepositoryFileCoreAutoCode(vm.EntityTypeName); _replacementsDictionary.Add("$repositoryAutoCode$", repositoryAutoCode); _replacementsDictionary.Add("$domainNamespace$", vm.DomainNamespace); _replacementsDictionary.Add("$domainEntityName$", vm.EntityTypeName); _replacementsDictionary.Add("$baseRepositoryName$", vm.BaseTypeName); }