Bloom.Book.BookStarter.UpdateEditabilityMetadata C# (CSharp) Method

UpdateEditabilityMetadata() private method

private UpdateEditabilityMetadata ( BookStorage storage ) : void
storage BookStorage
return void
        private void UpdateEditabilityMetadata(BookStorage storage)
        {
            //Here's the logic: If we're in a shell-making library, then it's safe to say that a newly-
            //created book is going to be a shell. Any derivatives will then act as shells.  But it won't
            //prevent us from editing it while in a shell-making collections, since we don't honor this
            //tag in shell-making collections.

            //The problem is, if you make a book in some vernacular library, then share it so that others
            //can use it as a shell, then (as of version 2) Bloom doesn't have a way of realizing that it's
            //being used as a shell. So everything is editable (not a big deal) but you're also locked out
            // of editing the acknowledgements for translated version.

            //It seems to me at the moment (May 2014) that the time to mark something as locked down should
            //be when the they create a book based on a source-with-content book. So the current approach
            //below, of pre-locking it, would go away.

            if(_isSourceCollection)
            {
                storage.Dom.UpdateMetaElement("lockedDownAsShell", "true");
            }

            #if maybe //hard to pin down when a story primer, dictionary, etc. also becomes a new "source for new shells"
            //things like picture dictionaries could be used repeatedly
            //but things from Basic Book are normally not.
            var x = GetMetaValue(storage.Dom, "DerivativesAreSuitableForMakingShells", "false");
            #else
            var x = false;
            #endif
            storage.MetaData.IsSuitableForMakingShells = x;
        }