Axiom.Components.Paging.PageManager.GetContentCollectionFactory C# (CSharp) Method

GetContentCollectionFactory() public method

public GetContentCollectionFactory ( string name ) : IPageContentCollectionFactory
name string
return IPageContentCollectionFactory
        public IPageContentCollectionFactory GetContentCollectionFactory(string name)
        {
            IPageContentCollectionFactory factory;
            mContentCollectionFactories.TryGetValue(name, out factory);
            return factory;
        }
        /// <summary>

Usage Example

Example #1
0
        protected virtual bool PrepareImpl(StreamSerializer stream, ref PageData dataToPopulate)
        {
            //now do the real loading
            if (stream.ReadChunkBegin(CHUNK_ID, CHUNK_VERSION, "Page") == null)
            {
                return(false);
            }

            // pageID check (we should know the ID we're expecting)
            int storedID = -1;

            stream.Read(out storedID);
            if (this.mID.Value != storedID)
            {
                LogManager.Instance.Write("Error: Tried to populate Page ID {0} with data corresponding to page ID {1}",
                                          this.mID.Value,
                                          storedID);
                stream.UndoReadChunk(CHUNK_ID);
                return(false);
            }

            PageManager mgr = Manager;

            while (stream.NextChunkId == Page.CHUNK_CONTENTCOLLECTION_DECLARATION_ID)
            {
                Chunk  collChunk = stream.ReadChunkBegin();
                string factoryName;
                stream.Read(out factoryName);
                stream.ReadChunkEnd(CHUNK_CONTENTCOLLECTION_DECLARATION_ID);
                //Supported type?
                IPageContentCollectionFactory collFact = mgr.GetContentCollectionFactory(factoryName);
                if (collFact != null)
                {
                    PageContentCollection collInst = collFact.CreateInstance();
                    if (collInst.Prepare(stream))
                    {
                        dataToPopulate.collectionsToAdd.Add(collInst);
                    }
                    else
                    {
                        LogManager.Instance.Write("Error preparing PageContentCollection type: {0} in {1}", factoryName, ToString());
                        collFact.DestroyInstance(ref collInst);
                    }
                }
                else
                {
                    LogManager.Instance.Write("Unsupported PageContentCollection type: {0} in {1}", factoryName, ToString());
                    //skip
                    stream.ReadChunkEnd(collChunk.id);
                }
            }

            this.mModified = false;
            return(true);
        }