private static void ScaffoldDataRepositories(EntityFrameworkCoreProject project) { if (!string.IsNullOrEmpty(project.Settings.ConcurrencyToken)) { project.UpdateExclusions.Add(project.Settings.ConcurrencyToken); } ScaffoldRepositoryInterface(project); ScaffoldBaseRepositoryClassDefinition(project); ScaffoldRepositoryExtensionsClassDefinition(project); foreach (var projectFeature in project.Features) { var repositoryClassDefinition = projectFeature.GetRepositoryClassDefinition(); var interfaceDef = repositoryClassDefinition.RefactInterface(); interfaceDef.Implements.Add("IRepository"); interfaceDef.Namespace = project.GetDataLayerContractsNamespace(); ScaffoldDataLayerContract(project, interfaceDef); CSharpCodeBuilder.CreateFiles(project.OutputDirectory, project.GetDataLayerRepositoriesDirectory(), project.Settings.ForceOverwrite, repositoryClassDefinition); } }
private static void ScaffoldRepositoryExtensionsClassDefinition(EntityFrameworkCoreProject project) => CSharpCodeBuilder.CreateFiles(project.OutputDirectory, project.GetDataLayerRepositoriesDirectory(), project.Settings.ForceOverwrite, project.GetRepositoryExtensionsClassDefinition());