//set design file group
        private static void SetDesignFileIco(Module.M_DomCs cs, string extenision, params string[] filename)
        {
            switch (extenision)
            {
            case ".cs":
            {
                cs.IsType = OpenProject.Come.Module.CsType.winform;        //winform design type file
                foreach (string s in filename)
                {
                    Module.M_DomCs csdom = new OpenProject.Come.Module.M_DomCs();
                    csdom.FileName = s;
                    csdom.IsType   = OpenProject.Come.Module.CsType.design;      //design type file
                    cs._cslist.Add(csdom);
                }
                break;
            }

            case ".aspx":
            {
                cs.IsType = OpenProject.Come.Module.CsType.aspx;        //asp.net page type file
                foreach (string s in filename)
                {
                    Module.M_DomCs csdom = new OpenProject.Come.Module.M_DomCs();
                    csdom.FileName = s;
                    csdom.IsType   = OpenProject.Come.Module.CsType.design;      //design type file
                    cs._cslist.Add(csdom);
                }

                break;
            }
            }
        }
        //recursion get directory info
        private static void GetDirectoryCsFileList(string formDirectory, Module.M_DomDirectory dirdom)
        {
            if (Directory.Exists(formDirectory))
            {
                string[] directory = Directory.GetDirectories(formDirectory);
                if (directory.Length > 0)
                {
                    foreach (string path in directory)//foreach current directory list
                    {
                        if (Path.GetFileNameWithoutExtension(path) == "obj" || (Path.GetFileNameWithoutExtension(path) == "bin"))
                        {
                            continue;
                        }


                        Module.M_DomDirectory dir = new OpenProject.Come.Module.M_DomDirectory();
                        dir.FileName = Path.GetFileNameWithoutExtension(path);
                        dir.FilePath = path;

                        if (Path.GetFileNameWithoutExtension(path) == "Properties")
                        {
                            dir.DirectoryType = OpenProject.Come.Module.DirType.Propertties; //file path is properties
                        }
                        dirdom.DirCollection.Add(dir);                                       //would current directory add directory collection
                        GetDirectoryCsFileList(path, dir);
                        //current get files
                        List <string> files = new List <string>();
                        files.AddRange(Directory.GetFiles(path));//get current path file list
                        for (int index = 0; index < files.Count; index++)
                        {
                            if (Path.GetExtension(files[index]) == ".csproj")
                            {
                                files.RemoveAt(index);
                            }
                        }

                        if (files.Count > 0)
                        {
                            files.Sort();//element sort.employ element indent
                            for (int i = 0; i < files.Count;)
                            {
                                if ((i + 2) < files.Count)
                                {
                                    string filename  = Path.GetFileName(files[i]).Split('.')[0];
                                    string filename2 = Path.GetFileName(files[i + 1]).Split('.')[0];
                                    string filename3 = Path.GetFileName(files[i + 2]).Split('.')[0];
                                    if ((filename == filename2) && (filename2 == filename3))//is design type file
                                    {
                                        Module.M_DomCs csdom = new OpenProject.Come.Module.M_DomCs();
                                        csdom.FileName = Path.GetFileName(files[i]);
                                        csdom.FilePath = files[i];
                                        SetDesignFileIco(csdom, Path.GetExtension(files[i]), Path.GetFileName(files[i + 1]), Path.GetFileName(files[i + 2]));
                                        dir.CsFileCollection.Add(csdom);
                                        files.RemoveAt(i + 2);
                                        files.RemoveAt(i + 1);
                                        files.RemoveAt(i);
                                        continue;
                                    }
                                }
                                Module.M_DomCs cs = new OpenProject.Come.Module.M_DomCs();
                                cs.FileName = Path.GetFileName(files[i]);
                                cs.FilePath = files[i];
                                SetFileIco(cs, Path.GetExtension(files[i]));
                                dir.CsFileCollection.Add(cs);
                                i++;
                            }
                        }
                    }
                    List <string> filess = new List <string>();
                    filess.AddRange(Directory.GetFiles(formDirectory));//get current path file list
                    for (int index = 0; index < filess.Count; index++)
                    {
                        if (Path.GetExtension(filess[index]) == ".csproj")
                        {
                            filess.RemoveAt(index);
                        }
                    }
                    if (filess.Count > 0)
                    {
                        filess.Sort();//element sort.employ element indent
                        for (int i = 0; i < filess.Count;)
                        {
                            if ((i + 2) < filess.Count)
                            {
                                string filename  = Path.GetFileName(filess[i]).Split('.')[0];
                                string filename2 = Path.GetFileName(filess[i + 1]).Split('.')[0];
                                string filename3 = Path.GetFileName(filess[i + 2]).Split('.')[0];
                                if ((filename == filename2) && (filename2 == filename3))//is design type file
                                {
                                    Module.M_DomCs csdom = new OpenProject.Come.Module.M_DomCs();
                                    csdom.FileName = Path.GetFileName(filess[i]);
                                    csdom.FilePath = filess[i];
                                    SetDesignFileIco(csdom, Path.GetExtension(filess[i]), Path.GetFileName(filess[i + 1]), Path.GetFileName(filess[i + 2]));
                                    dirdom.CsFileCollection.Add(csdom);
                                    filess.RemoveAt(i + 2);
                                    filess.RemoveAt(i + 1);
                                    filess.RemoveAt(i);
                                    continue;
                                }
                            }
                            Module.M_DomCs cs = new OpenProject.Come.Module.M_DomCs();
                            cs.FileName = Path.GetFileName(filess[i]);
                            cs.FilePath = filess[i];
                            SetFileIco(cs, Path.GetExtension(filess[i]));
                            dirdom.CsFileCollection.Add(cs);
                            i++;
                        }
                    }
                }
            }
        }