private static JSONValue JsonForIsland(ProjectStateRestHandler.Island island)
        {
            if (island.Name == "UnityEngine" || island.Name == "UnityEditor")
            {
                return(null);
            }
            JSONValue result = default(JSONValue);

            result["name"]          = island.Name;
            result["language"]      = ((!island.Name.Contains("Boo")) ? ((!island.Name.Contains("UnityScript")) ? "C#" : "UnityScript") : "Boo");
            result["files"]         = Handler.ToJSON(island.MonoIsland._files);
            result["defines"]       = Handler.ToJSON(island.MonoIsland._defines);
            result["references"]    = Handler.ToJSON(island.MonoIsland._references);
            result["basedirectory"] = ProjectStateRestHandler.ProjectPath;
            return(result);
        }
        private static JSONValue JsonForIsland(ProjectStateRestHandler.Island island)
        {
            if (island.Name == "UnityEngine" || island.Name == "UnityEditor")
            {
                return((JSONValue)((string)null));
            }
            JSONValue jsonValue = new JSONValue();

            jsonValue["name"]          = (JSONValue)island.Name;
            jsonValue["language"]      = (JSONValue)(!island.Name.Contains("Boo") ? (!island.Name.Contains("UnityScript") ? "C#" : "UnityScript") : "Boo");
            jsonValue["files"]         = Handler.ToJSON((IEnumerable <string>)island.MonoIsland._files);
            jsonValue["defines"]       = Handler.ToJSON((IEnumerable <string>)island.MonoIsland._defines);
            jsonValue["references"]    = Handler.ToJSON((IEnumerable <string>)island.MonoIsland._references);
            jsonValue["basedirectory"] = (JSONValue)ProjectStateRestHandler.ProjectPath;
            return(jsonValue);
        }
        private static JSONValue JsonForProject()
        {
            List <ProjectStateRestHandler.Island> list = ((IEnumerable <MonoIsland>)InternalEditorUtility.GetMonoIslands()).Select <MonoIsland, ProjectStateRestHandler.Island>((Func <MonoIsland, ProjectStateRestHandler.Island>)(i => new ProjectStateRestHandler.Island()
            {
                MonoIsland = i, Name = Path.GetFileNameWithoutExtension(i._output), References = ((IEnumerable <string>)i._references).ToList <string>()
            })).ToList <ProjectStateRestHandler.Island>();

            using (List <ProjectStateRestHandler.Island> .Enumerator enumerator1 = list.GetEnumerator())
            {
                while (enumerator1.MoveNext())
                {
                    ProjectStateRestHandler.Island current1 = enumerator1.Current;
                    List <string> stringList1 = new List <string>();
                    List <string> stringList2 = new List <string>();
                    using (List <string> .Enumerator enumerator2 = current1.References.GetEnumerator())
                    {
                        while (enumerator2.MoveNext())
                        {
                            string current2 = enumerator2.Current;
                            // ISSUE: object of a compiler-generated type is created
                            // ISSUE: variable of a compiler-generated type
                            ProjectStateRestHandler.\u003CJsonForProject\u003Ec__AnonStorey25 projectCAnonStorey25 = new ProjectStateRestHandler.\u003CJsonForProject\u003Ec__AnonStorey25();
                            // ISSUE: reference to a compiler-generated field
                            projectCAnonStorey25.refName = Path.GetFileNameWithoutExtension(current2);
                            // ISSUE: reference to a compiler-generated method
                            if (current2.StartsWith("Library/") && list.Any <ProjectStateRestHandler.Island>(new Func <ProjectStateRestHandler.Island, bool>(projectCAnonStorey25.\u003C\u003Em__31)))
                            {
                                // ISSUE: reference to a compiler-generated field
                                stringList1.Add(projectCAnonStorey25.refName);
                                stringList2.Add(current2);
                            }
                            if (current2.EndsWith("/UnityEditor.dll") || current2.EndsWith("/UnityEngine.dll") || (current2.EndsWith("\\UnityEditor.dll") || current2.EndsWith("\\UnityEngine.dll")))
                            {
                                stringList2.Add(current2);
                            }
                        }
                    }
                    current1.References.Add(InternalEditorUtility.GetEditorAssemblyPath());
                    current1.References.Add(InternalEditorUtility.GetEngineAssemblyPath());
                    using (List <string> .Enumerator enumerator2 = stringList1.GetEnumerator())
                    {
                        while (enumerator2.MoveNext())
                        {
                            string current2 = enumerator2.Current;
                            current1.References.Add(current2);
                        }
                    }
                    using (List <string> .Enumerator enumerator2 = stringList2.GetEnumerator())
                    {
                        while (enumerator2.MoveNext())
                        {
                            string current2 = enumerator2.Current;
                            current1.References.Remove(current2);
                        }
                    }
                }
            }
            string[]  array       = list.SelectMany <ProjectStateRestHandler.Island, string>((Func <ProjectStateRestHandler.Island, IEnumerable <string> >)(i => (IEnumerable <string>)i.MonoIsland._files)).Concat <string>(ProjectStateRestHandler.GetAllSupportedFiles()).Distinct <string>().ToArray <string>();
            string[]  projectPath = ProjectStateRestHandler.RelativeToProjectPath(ProjectStateRestHandler.FindEmptyDirectories(ProjectStateRestHandler.AssetsPath, array));
            JSONValue jsonValue1  = new JSONValue();

            jsonValue1["islands"]       = new JSONValue((object)list.Select <ProjectStateRestHandler.Island, JSONValue>((Func <ProjectStateRestHandler.Island, JSONValue>)(i => ProjectStateRestHandler.JsonForIsland(i))).Where <JSONValue>((Func <JSONValue, bool>)(i2 => !i2.IsNull())).ToList <JSONValue>());
            jsonValue1["basedirectory"] = (JSONValue)ProjectStateRestHandler.ProjectPath;
            JSONValue jsonValue2 = new JSONValue();

            jsonValue2["files"]            = Handler.ToJSON((IEnumerable <string>)array);
            jsonValue2["emptydirectories"] = Handler.ToJSON((IEnumerable <string>)projectPath);
            jsonValue1["assetdatabase"]    = jsonValue2;
            return(jsonValue1);
        }