private void Execute(object selectedItem) { #region 提示 string selectedType = "项目"; if (selectedItem is ProjectItem) { selectedType = "文件"; } var res = MessageBox.Show( string.Format("执行前请先保存所有的代码文件。将为当前选中的{0}中所有实体/仓库生成最新的泛型接口代码。确定执行吗?", selectedType), "提示", MessageBoxButton.OKCancel ); if (res != MessageBoxResult.OK) { return; } #endregion //查找文件。 var selectedProjectItem = selectedItem as ProjectItem; var project = selectedProjectItem != null ? selectedProjectItem.ContainingProject : (selectedItem as Project); var entities = new EntityFileFinder().FindPairs(project, e => !e.IsAbstract && (selectedProjectItem == null || selectedProjectItem.Name == e.Name + ".cs") ).ToList(); var repositories = new RepoFileFinder().FindPairs(project, e => !e.IsAbstract && (selectedProjectItem == null || selectedProjectItem.Name == e.Name + ".cs") ).ToList(); if (entities.Count == 0 && repositories.Count == 0) { MessageBox.Show("无法生成:选中的项中没有找到任何有自动生成代码的文件。"); return; } //替换文件。 foreach (var entity in entities) { RefreshAutoCodeForClass(entity.CodeClass, entity.GeneratedCode, this.RenderEntityByTemplate); } var allEntities = entities.Select(e => e.CodeClass).ToList(); foreach (var repo in repositories) { RefreshAutoCodeForClass(repo.CodeClass, repo.GeneratedCode, r => this.RenderRepoByTemplate(r, allEntities)); } MessageBox.Show(string.Format("生成完毕。一共生成 {0} 个实体文件,{1} 个仓库文件。", entities.Count, repositories.Count)); }
private void Execute(object selectedItem) { #region 提示 string selectedType = "项目"; if (selectedItem is ProjectItem) { selectedType = "文件"; } var res = MessageBox.Show( string.Format("执行前请先保存所有的代码文件。将为当前选中的{0}中所有实体生成最新的泛型接口代码。确定执行吗?", selectedType), "提示", MessageBoxButton.OKCancel ); if (res != MessageBoxResult.OK) { return; } #endregion //查找文件。 var entities = EntityFileFinder.FindFiles(selectedItem).Where(e => !e.IsAbstract).ToList(); var repositories = RepoFileFinder.FindFiles(selectedItem).Where(e => !e.IsAbstract).ToList(); if (entities.Count == 0 && repositories.Count == 0) { MessageBox.Show("无法生成:选中的项中没有找到任何有自动生成代码的文件。"); return; } //替换文件。 foreach (var entity in entities) { var item = entity.ProjectItem; RefreshAutoCodeForClass(entity, item, this.RenderEntityByTemplate); } foreach (var repo in repositories) { var item = repo.ProjectItem; RefreshAutoCodeForClass(repo, item, this.RenderRepoByTemplate); } MessageBox.Show(string.Format("生成完毕。一共生成 {0} 个实体文件,{1} 个仓库文件。", entities.Count, repositories.Count)); }