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