BitMiracle.VisualStudioConverter.CSScript.Converter.processProjectLine C# (CSharp) Method

processProjectLine() private method

private processProjectLine ( string line ) : string
line string
return string
        private string processProjectLine(string line)
        {
            Debug.Assert(line.StartsWith("Project("));

            string[] projParts = line.Split(',');
            if (projParts.Length != 3)
                return line;

            string pathToProject = projParts[1].Trim(' ', '"');
            if (String.Compare(pathToProject, "Solution Items", true, CultureInfo.InvariantCulture) == 0)
                return line;

            string projectFile = Path.Combine(Path.GetDirectoryName(m_options.PathToSolution), pathToProject);
            string projectExtension = Path.GetExtension(projectFile);
            if (projectExtension != ".vbproj" && projectExtension != ".csproj") // Currently support only these cases specially. Original code has support of vcproj and vcxproj files.
                return line;

            string resultProjectDirectory = Path.Combine(m_options.ResultDirectory, Path.GetDirectoryName(pathToProject));
            if (!Directory.Exists(resultProjectDirectory))
                Directory.CreateDirectory(resultProjectDirectory);

            string resultProjectFileName = processProjectName(projectFile);
            string resultProjectPath = Path.Combine(resultProjectDirectory, resultProjectFileName);
            File.Copy(projectFile, resultProjectPath, true);
            convertProject(resultProjectPath);

            string projectName = Path.GetFileName(projectFile);

            return String.Format(
                "{0},{1},{2}",
                projParts[0].Replace(Path.GetFileNameWithoutExtension(projectFile), Path.GetFileNameWithoutExtension(resultProjectFileName)),
                projParts[1].Replace(projectName, resultProjectFileName),
                projParts[2]
            );
        }