public async Task <ProjectFile> ToProjectFile(ProjectXElement projectXElement, IMessageSink messageSink)
        {
            var projectFile = new ProjectFile();

            await this.ProjectElementHandler(projectXElement.Value, projectFile, messageSink);

            return(projectFile);
        }
        public static PropertyGroupXElement GetPropertyGroup(this ProjectXElement projectXElement)
        {
            var output = projectXElement.Value.Elements()
                         .Where(x => ProjectXElementExtensions.IsPropertyGroup(x))
                         .Single()
                         .AsPropertyGroup();

            return(output);
        }
        public Task <ProjectFile> Deserialize(Stream stream, IMessageSink messageSink)
        {
            var xElement = XElement.Load(stream); // No async version.

            var projectXElement = new ProjectXElement(xElement);

            var gettingProjectFile = this.VisualStudioProjectFileToXElementConverter.ToProjectFile(projectXElement, messageSink);

            return(gettingProjectFile);
        }
        public Task <ProjectXElement> ToProjectXElement(ProjectFile projectFile, IMessageSink messageSink)
        {
            var projectXElement = new XElement(ProjectFileXmlElementName.Project);

            this.WriteProjectXElement(projectFile, projectXElement);

            // Finish.
            var typedProjectXElement = new ProjectXElement(projectXElement);

            return(Task.FromResult(typedProjectXElement));
        }
        public static ProjectXElement AsProject(this XElement xElement)
        {
            var projectXElement = new ProjectXElement(xElement);

            return(projectXElement);
        }