public static string ProjectExtension(VsProjectType projectType)
        {
            switch (projectType)
            {
            case VsProjectType.LegacySmartDeviceCs:
            case VsProjectType.SharePointCs:
            case VsProjectType.SmartDeviceCs:
            case VsProjectType.WindowsCs:
            case VsProjectType.WorkflowCs:
                return(".csproj");

            case VsProjectType.LegacySmartDeviceVb:
            case VsProjectType.SharePointVb:
            case VsProjectType.SmartDeviceVb:
            case VsProjectType.WindowsVb:
            case VsProjectType.WorkflowVb:
                return(".vbproj");

            case VsProjectType.WindowsCpp:
                return(".cppproj");

            case VsProjectType.PHP:
                return(".phpproj");

            default:
                return(".proj");
            }
        }
 public Project(string projDir, string dataDir)
 {
     m_projType = VsProjectType.Unknown;
     m_fileType = VsProjectType.Unknown;
     m_compiles = new List <string>();
     m_contents = new List <string>();
     m_errors   = new List <string>();
     m_folders  = new List <string>();
     m_projDir  = projDir;
     m_dataDir  = dataDir;
     m_trimLeft = dataDir.Length + 1;
     m_guid     = "{" + System.Guid.NewGuid().ToString().ToUpper() + "}";
     Program.WriteLine("Project {0} started.", Name);
 }
 public static string ProjectGuid(VsProjectType projectType)
 {
     return(m_guidList[(int)projectType]);
 }
        private void Map(DirectoryInfo dir)
        {
            Program.WriteLine("  mapping {0}...", dir.FullName);
            var  netFullName = dir.FullName;
            bool isRoot      = (netFullName == m_dataDir);
            var  relativeDir = !isRoot?netFullName.Substring(m_trimLeft) : null;

            var subs = dir.GetDirectories();

            if (!isRoot)
            {
                var physicalDir = Path.Combine(m_projDir, relativeDir);
                if (!Directory.Exists(physicalDir))
                {
                    Directory.CreateDirectory(physicalDir);
                }
                m_folders.Add(relativeDir);
            }
            for (int i = 0; i < subs.Length; i++)
            {
                DirectoryInfo sub = null;
                try {
                    sub = subs[i];
                    if (!LC_EXCLUDES.Contains(sub.Name.ToLower()) && !Offensive(sub.Name))
                    {
                        Map(sub);
                    }
                } catch (Exception err) {
                    m_errors.Add(string.Format("{0}: {1}", err.GetType(), err.Message));
                }
            }
            if (!isRoot)
            {
                var files = dir.GetFiles();
                for (int i = 0; i < files.Length; i++)
                {
                    FileInfo file = null;
                    try {
                        file = files[i];
                        var name = file.Name.ToLower();
                        if (!LC_EXCLUDES.Contains(name) && !Offensive(name))
                        {
                            var ext = file.Extension.ToLower();
                            if ((m_fileType == VsProjectType.Unknown) || (m_projType == VsProjectType.Unknown))
                            {
                                if (WEBFILES.Contains(ext) && (m_projType == VsProjectType.Unknown))
                                {
                                    m_projType = VsProjectType.WebSite;
                                }
                                if (ext == CODEFILES[(int)CodeTypes.CPP])
                                {
                                    m_fileType = VsProjectType.WindowsCpp;
                                }
                                else if (ext == CODEFILES[(int)CodeTypes.CS])
                                {
                                    m_fileType = VsProjectType.WindowsCs;
                                }
                                else if (ext == ".php")
                                {
                                    m_fileType = VsProjectType.PHP;
                                    m_projType = VsProjectType.PHP;
                                }
                                else if (ext == CODEFILES[(int)CodeTypes.VB])
                                {
                                    m_fileType = VsProjectType.WindowsVb;
                                }
                            }
                            if (((m_fileType == VsProjectType.WindowsCs) || (m_fileType == VsProjectType.WindowsVb)) &&
                                ((m_projType == VsProjectType.WebSite) || (m_projType == VsProjectType.Unknown)))
                            {
                                m_projType = VsProjectType.WebApplication;
                            }
                            var link = Path.Combine(relativeDir, file.Name);
                            if (CODEFILES.Contains(ext))
                            {
                                m_compiles.Add(link);
                            }
                            else
                            {
                                m_contents.Add(link);
                            }
                        }
                    } catch (Exception err) {
                        m_errors.Add(string.Format("{0}: {1}", err.GetType(), err.Message));
                    }
                }
            }
        }
 public IBuildService Create(VsProjectType type)
 {
     //return new MSBuildBuildService();MSCommandlineBuildService
     return(new MSCommandlineBuildService());
 }