public void UpdateProject(Project project, Action<ProjectUpdater> projectUpdaterAction) { //Create the ProjectUpdater var assemblies = DbSession.QueryOver<Assembly>().Where(x => x.Project == project).List<Assembly>(); var namespaces = DbSession.QueryOver<Namespace>().Where(x => x.Project == project).List<Namespace>().Distinct(); var types = DbSession.QueryOver<doCS.Models.Type>().JoinQueryOver<Assembly>(x => x.Assembly).Where(x => x.Project == project).List<doCS.Models.Type>(); var properties = DbSession.QueryOver<Property>().JoinQueryOver(x => x.DeclaringType).JoinQueryOver(x => x.Assembly).Where(x => x.Project == project).List(); ProjectUpdater projectUpdater = new ProjectUpdater(namespaces, assemblies, types, properties); projectUpdaterAction(projectUpdater); SaveUpdates(projectUpdater); }
public ExtractorData(ProjectData projectData, Project project, ProjectUpdater projectUpdater) { ProjectData = projectData; Project = project; ProjectUpdater = projectUpdater; }