public TM_GUI_Objects GetGUIObjects()
        {
            if (guiObjectsCacheOK &&  last_GUI_Objects.notNull())		// returns cached version on next calls
                return last_GUI_Objects;

            var guiObjects = new TM_GUI_Objects();
            var allGuidanceItems = javascriptProxy.GetAllGuidanceItems_XmlDB();
            foreach(var row in allGuidanceItems)
            {
                var guidanceItemMappings = "{0},{1},{2},{3},{4},{5},{6}".format(
                                                //guiObjects.add_UniqueString(row.guidanceItemId.str().hash().str()),	// this will shave off another 80k from the request
                                                guiObjects.add_UniqueString(row.guidanceItemId.str()),
                                                guiObjects.add_UniqueString(row.libraryId.str()),
                                                guiObjects.add_UniqueString(row.title),
                                                guiObjects.add_UniqueString(row.technology),
                                                guiObjects.add_UniqueString(row.phase),
                                                    guiObjects.add_UniqueString(row.rule_Type),
                                                guiObjects.add_UniqueString(row.category));

                guiObjects.GuidanceItemsMappings.Add(guidanceItemMappings);
            };
            last_GUI_Objects = guiObjects;
            //for the big library this is now a 360k string
            guiObjectsCacheOK = true;
            return guiObjects;
        }
Example #2
0
        public TM_GUI_Objects GetGUIObjects()
        {
            //   var sessionLibrary = "CWE";
            //   Session["Library"] = sessionLibrary;

            var libraryId = GetCurrentSessionLibrary();


            if (guiObjectsCacheOK && last_GUI_Objects.notNull())                        // returns cached version on next calls
            {
                return(last_GUI_Objects);
            }

            var guiObjects    = new TM_GUI_Objects();
            var guidanceItems = (libraryId == Guid.Empty)
                                        ? javascriptProxy.GetAllGuidanceItems_XmlDB()
                                        : javascriptProxy.GetGuidanceItemsInLibrary(libraryId);

            foreach (var row in guidanceItems)
            {
                var guidanceItemMappings = "{0},{1},{2},{3},{4},{5},{6}".format(
                    //guiObjects.add_UniqueString(row.guidanceItemId.str().hash().str()),	// this will shave off another 80k from the request
                    guiObjects.add_UniqueString(row.Metadata.Id.str()),
                    guiObjects.add_UniqueString(""),                                                                             //row.libraryId.str()),
                    guiObjects.add_UniqueString(row.Metadata.Title),
                    guiObjects.add_UniqueString(row.Metadata.Technology),
                    guiObjects.add_UniqueString(row.Metadata.Phase),
                    guiObjects.add_UniqueString(row.Metadata.Type),
                    guiObjects.add_UniqueString(row.Metadata.Category));

                guiObjects.GuidanceItemsMappings.Add(guidanceItemMappings);
            }
            ;
            last_GUI_Objects = guiObjects;
            //for the big library this is now a 360k string
            guiObjectsCacheOK = true;
            return(guiObjects);
        }
        public TM_GUI_Objects GetGUIObjects()
        {
            //   var sessionLibrary = "CWE";
             //   Session["Library"] = sessionLibrary;

            var libraryId = GetCurrentSessionLibrary();

            if (guiObjectsCacheOK &&  last_GUI_Objects.notNull())		// returns cached version on next calls
                return last_GUI_Objects;

            var guiObjects = new TM_GUI_Objects();
            var guidanceItems = (libraryId == Guid.Empty)
                                        ? javascriptProxy.GetAllGuidanceItems_XmlDB()
                                        : javascriptProxy.GetGuidanceItemsInLibrary(libraryId);
            foreach (var row in guidanceItems)
            {
                var guidanceItemMappings = "{0},{1},{2},{3},{4},{5},{6}".format(
                                                //guiObjects.add_UniqueString(row.guidanceItemId.str().hash().str()),	// this will shave off another 80k from the request
                                                guiObjects.add_UniqueString(row.Metadata.Id.str()),
                                                guiObjects.add_UniqueString(""), //row.libraryId.str()),
                                                guiObjects.add_UniqueString(row.Metadata.Title),
                                                guiObjects.add_UniqueString(row.Metadata.Technology),
                                                guiObjects.add_UniqueString(row.Metadata.Phase),
                                                guiObjects.add_UniqueString(row.Metadata.Type),
                                                guiObjects.add_UniqueString(row.Metadata.Category));

                guiObjects.GuidanceItemsMappings.Add(guidanceItemMappings);
            };
            last_GUI_Objects = guiObjects;
            //for the big library this is now a 360k string
            guiObjectsCacheOK = true;
            return guiObjects;
        }
 public bool ClearGUIObjects()
 {
     last_GUI_Objects = null;
     guiObjectsCacheOK = false;
     return last_GUI_Objects.isNull();
 }
        public static Library_V3 getFolderStructure_Library(this IJavascriptProxy javascriptProxy, Guid libraryId, TM_GUI_Objects guiObjects)
        {
            //pre-create this mapping since the view retrieval was a massive performance bottle neck
            var allViews = new Dictionary<Guid, View_V3>();
            foreach(var view in javascriptProxy.GetViews())
                allViews.Add(view.viewId, view);

            Action<Folder_V3> mapFolderViews =  null;

            Func<List<Guid>, List<View_V3>> mapViews =
                (viewGuids) =>
                            {
                                var views = new List<View_V3>();

                                foreach(var viewGuid in viewGuids)
                                {
                                    var view = 	allViews[viewGuid];

                                    /*// compress view.guidanceItems using guiObjects
                                    view.guidanceItems_Indexes = (from guid in view.guidanceItems
                                                                  select guiObjects.get_Index(guid.str()).str()).toList()
                                                                  .join(",").remove(" ");
                                    view.guidanceItems.Clear();*/
                                    views.add(view);
                                }
                                return views;
                            };

            mapFolderViews =
                (folder) => {
                                 var mappedViews = mapViews(folder.views.guids());
                                 folder.views.Clear();
                                 folder.views.add(mappedViews);
                                 foreach(var subFolder in folder.subFolders)
                                    mapFolderViews(subFolder);
                            };

            Action<List<Folder_V3>, List<Folder_V3>> mapFolders = (folders, parentFolder) =>
                {
                    foreach(var folder in folders)
                    {
                        var folderId = folder.folderId;
                        parentFolder.add(folder);
                        mapFolderViews(folder);
                    }
                };

            Func<Guid,string, Library_V3> mapLibrary =
                (_libraryId, libraryName)=> {
                                        var libraryV3 = new Library_V3()
                                                    {
                                                        libraryId = _libraryId,
                                                        name = libraryName
                                                    };
                                        mapFolders(javascriptProxy.GetFolders(_libraryId), libraryV3.subFolders);
                                        libraryV3.views.add(mapViews(javascriptProxy.GetViewsInLibraryRoot(libraryId.str()).guids()));
                                        libraryV3.guidanceItems = javascriptProxy.getGuidanceItemsIds_NotInViews(_libraryId);
                                        return libraryV3;
                                    };

            Func<Guid,Library_V3> getLibrary_TreeStructure =
                (_libraryId)=>{
                                var tmLibrary = javascriptProxy.GetLibraryById(_libraryId.str());
                                if (tmLibrary.isNull())
                                {
                                    "[in getLibraryFolderStructure] could not find library with id: {0}".error(_libraryId);
                                    return null;
                                }
                                return mapLibrary(_libraryId, tmLibrary.caption);
                            };
            return getLibrary_TreeStructure(libraryId);
        }
 public static List<Library_V3> getFolderStructure_Libraries(this IJavascriptProxy javascriptProxy, TM_GUI_Objects guiObjects)
 {
     return (from library in javascriptProxy.GetLibraries()
             select javascriptProxy.getFolderStructure_Library(library.Id,guiObjects)).toList();
 }
Example #7
0
 public bool ClearGUIObjects()
 {
     last_GUI_Objects  = null;
     guiObjectsCacheOK = false;
     return(last_GUI_Objects.isNull());
 }
Example #8
0
        public static Library_V3 getFolderStructure_Library(this IJavascriptProxy javascriptProxy, Guid libraryId, TM_GUI_Objects guiObjects)
        {
            //pre-create this mapping since the view retrieval was a massive performance bottle neck
            var allViews = new Dictionary <Guid, View_V3>();

            foreach (var view in javascriptProxy.GetViews())
            {
                allViews.Add(view.viewId, view);
            }

            Action <Folder_V3> mapFolderViews = null;

            Func <List <Guid>, List <View_V3> > mapViews =
                (viewGuids) =>
            {
                var views = new List <View_V3>();

                foreach (var viewGuid in viewGuids)
                {
                    var view = allViews[viewGuid];

                    /*// compress view.guidanceItems using guiObjects
                     * view.guidanceItems_Indexes = (from guid in view.guidanceItems
                     *                                                    select guiObjects.get_Index(guid.str()).str()).toList()
                     *                                                        .join(",").remove(" ");
                     * view.guidanceItems.Clear();*/
                    views.add(view);
                }
                return(views);
            };

            mapFolderViews =
                (folder) => {
                var mappedViews = mapViews(folder.views.guids());
                folder.views.Clear();
                folder.views.add(mappedViews);
                foreach (var subFolder in folder.subFolders)
                {
                    mapFolderViews(subFolder);
                }
            };

            Action <List <Folder_V3>, List <Folder_V3> > mapFolders = (folders, parentFolder) =>
            {
                foreach (var folder in folders)
                {
                    var folderId = folder.folderId;
                    parentFolder.add(folder);
                    mapFolderViews(folder);
                }
            };

            Func <Guid, string, Library_V3> mapLibrary =
                (_libraryId, libraryName) => {
                var libraryV3 = new Library_V3()
                {
                    libraryId = _libraryId,
                    name      = libraryName
                };
                mapFolders(javascriptProxy.GetFolders(_libraryId), libraryV3.subFolders);
                libraryV3.views.add(mapViews(javascriptProxy.GetViewsInLibraryRoot(libraryId.str()).guids()));
                libraryV3.guidanceItems = javascriptProxy.getGuidanceItemsIds_NotInViews(_libraryId);
                return(libraryV3);
            };


            Func <Guid, Library_V3> getLibrary_TreeStructure =
                (_libraryId) => {
                var tmLibrary = javascriptProxy.GetLibraryById(_libraryId.str());
                if (tmLibrary.isNull())
                {
                    "[in getLibraryFolderStructure] could not find library with id: {0}".error(_libraryId);
                    return(null);
                }
                return(mapLibrary(_libraryId, tmLibrary.caption));
            };

            return(getLibrary_TreeStructure(libraryId));
        }
Example #9
0
 public static List <Library_V3> getFolderStructure_Libraries(this IJavascriptProxy javascriptProxy, TM_GUI_Objects guiObjects)
 {
     return((from library in javascriptProxy.GetLibraries()
             select javascriptProxy.getFolderStructure_Library(library.Id, guiObjects)).toList());
 }