Bloom.Edit.ToolboxView.GetToolsToDisplay C# (CSharp) Method

GetToolsToDisplay() private static method

private static GetToolsToDisplay ( Book book, string idsOfToolsThisVersionKnowsAbout ) : List
book Bloom.Book.Book
idsOfToolsThisVersionKnowsAbout string
return List
        private static List<ToolboxTool> GetToolsToDisplay(Book.Book book, string[] idsOfToolsThisVersionKnowsAbout)
        {
            var toolsThatHaveDataInBookInfo =
                book.BookInfo.Tools.Where(t => idsOfToolsThisVersionKnowsAbout.Contains(t.ToolId)).ToList();
            var toolsToDisplay = toolsThatHaveDataInBookInfo;
            toolsToDisplay.AddRange(
                idsOfToolsThisVersionKnowsAbout.Except(
                    toolsThatHaveDataInBookInfo.Select(t => t.ToolId)).Select(ToolboxTool.CreateFromToolId));
            #if __MonoCS__
            // Until we get sound working on Linux, there's no point in showing a nonfunctional tool!
            toolsToDisplay = toolsToDisplay.Where(t => t.ToolId != TalkingBookTool.StaticToolId).ToList();
            #endif
            return toolsToDisplay.Where(t => t.Enabled || t.AlwaysEnabled).ToList();
        }