private CurSearch CreateSearch()
        {
            var res = new CurSearch();

            var loadedAssemblies = publicApiStorage
                                   .LoadAssemblies();

            var namespaces = new HashSet <string>();

            res.searchItems = loadedAssemblies
                              .SelectMany(a => Prepare(a, namespaces))
                              .ToArray();

            {
                var search_strings = res.searchItems.Select(w => w.ClassName);
                res.stat = wSBuilder.BuildStat(search_strings);
                var index = wSBuilder.Index(search_strings.Select(w => new Bulk {
                    Sentence = w
                }), res.stat);
                res.classSearch = wSBuilder.CreateSearch(index);
            }
            res.BuildTime  = DateTime.UtcNow;
            res.Namespaces = namespaces
                             .OrderBy(w => w)
                             .Select(w => new Base.NamespaceInfo {
                Namespace = w, Levels = w.Split('.').Length + 1
            })
                             .ToArray();
            return(res);
        }
        public StorageSearch(IWSBuilder wSBuilder, InterfaceController interfaceController)
        {
            var model = interfaceController.GetInterfacesModel("");

            this.interfaces = model.Interfaces.ToArray();
            var stat  = wSBuilder.BuildStat(interfaces.Select(w => w.Name));
            var index = wSBuilder.Index(interfaces.Select(w => new Bulk {
                Sentence = w.Name
            }), stat);

            this.search = wSBuilder.CreateSearch(index);
        }