private IEnumerable <ProjectItemModel> GetWebsiteItems(IProject currentProject, IProjectManager projectManager) { List <ProjectItemModel> list = new List <ProjectItemModel>(); if (projectManager.CurrentSolution.StartupProject is IWebsiteProject) { IProject targetProject = projectManager.CurrentSolution.StartupProject as IProject; if (targetProject != null) { IProjectOutputReferenceResolver referenceResolver = projectManager.CurrentSolution as IProjectOutputReferenceResolver; if (referenceResolver != null) { IProjectOutputReferenceInformation outputReferenceInfo = referenceResolver.GetProjectOutputReferenceInfo(targetProject, currentProject); if (outputReferenceInfo != null) { string deploymentPath = outputReferenceInfo.CreateDeploymentPath(targetProject, currentProject); if (!string.IsNullOrEmpty(deploymentPath)) { foreach (IProjectItem projectItem in (IEnumerable <IProjectItem>)targetProject.Items) { if (projectItem.DocumentReference.Path.StartsWith(deploymentPath, StringComparison.OrdinalIgnoreCase)) { list.Add(new ProjectItemModel(projectItem, this.DocumentContext, 1)); } } } } } } } return((IEnumerable <ProjectItemModel>)list); }
private IProject FindXapSourceProject(IProject targetProject, out DocumentReference xapDeploymentDirectory) { xapDeploymentDirectory = (DocumentReference)null; IProject project = (IProject)null; if (targetProject is SilverlightProject && targetProject.GetCapability <bool>("CanBeStartupProject")) { project = targetProject; if (project.FullTargetPath != null) { xapDeploymentDirectory = DocumentReference.Create(PathHelper.GetDirectoryNameOrRoot(project.FullTargetPath)); } } else { ISolution currentSolution = ServiceExtensions.ProjectManager(this.serviceProvider).CurrentSolution; IProjectOutputReferenceResolver referenceResolver = currentSolution as IProjectOutputReferenceResolver; if (currentSolution != null && referenceResolver != null) { foreach (IProject sourceProject in currentSolution.Projects) { Uri deploymentResolvedRoot = referenceResolver.GetDeploymentResolvedRoot(sourceProject); if (deploymentResolvedRoot != (Uri)null) { DocumentReference documentReference = DocumentReference.Create(deploymentResolvedRoot.LocalPath); if (documentReference.Path.StartsWith(targetProject.ProjectRoot.Path, StringComparison.OrdinalIgnoreCase)) { xapDeploymentDirectory = documentReference; project = sourceProject; break; } } } } } return(project); }