public override IList <IProjectFile> GetProjectFiles() { IDeclaredElement declaredElement = GetDeclaredElement(); if (declaredElement != null && declaredElement.IsValid()) { return(declaredElement.GetProjectFiles()); } return(Common.Collections.EmptyArray <IProjectFile> .Instance); }
public override IList <IProjectItem> GetProjectItems() { IDeclaredElement declaredElement = GetDeclaredElement(); if (declaredElement != null && declaredElement.IsValid()) { return(declaredElement.GetProjectFiles()); } return(EmptyArrays.ProjectItems); }
private void VerifyProjectReference(INamedTag classTag, IDeclaredElement typeElement) { Logger.LogMessage("VerifyProjectReference"); // TODO: verify if this logic works if the mapped class is references as an assembly instead of a project if ((classTag == null) || (typeElement == null)) { Logger.LogMessage("classtag {0}, typeElement {1}", classTag, typeElement); return; } IProject projectOfMappings = classTag.GetProject(); if (projectOfMappings == null) { Logger.LogMessage("Project of mapping not found"); return; } Logger.LogMessage("ProjectOfMappings {0}", projectOfMappings.Name); foreach (IProjectFile projectFile in typeElement.GetProjectFiles()) { Logger.LogMessage("Project {0}", projectFile.GetProject().Name); if (projectFile.GetProject() == projectOfMappings) { Logger.LogMessage("Type is defined in same project"); return; } foreach (IProjectReference projectReference in classTag.GetProject().GetProjectReferences()) { Logger.LogMessage("Project reference {0}", projectReference.ResolveReferencedProject().Name); if (projectReference.ResolveReferencedProject() == projectFile.GetProject()) { return; } } } IElement typeElementTag = classTag.GetNameAttribute(); AddHighlighting(typeElementTag, new ReferenceHighlighting(string.Format("Mapping project '{0}' should reference project '{1}'", projectOfMappings.Name, typeElement.GetProjectFiles()[0].GetProject().Name))); }