Example #1
0
        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);
        }
Example #2
0
        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);
        }