private void HandleBookSettings(ApiRequest request)
{
switch (request.HttpMethod)
{
case HttpMethods.Get:
dynamic settings = new ExpandoObject();
settings.isRecordedAsLockedDown = _bookSelection.CurrentSelection.RecordedAsLockedDown;
settings.unlockShellBook = _bookSelection.CurrentSelection.TemporarilyUnlocked;
settings.currentToolBoxTool = _bookSelection.CurrentSelection.BookInfo.CurrentTool;
settings.isTemplateBook = GetIsBookATemplate();
request.ReplyWithJson((object)settings);
break;
case HttpMethods.Post:
//note: since we only have this one value, it's not clear yet whether the panel involved here will be more of a
//an "edit settings", or a "book settings", or a combination of them.
settings = DynamicJson.Parse(request.RequiredPostJson());
_bookSelection.CurrentSelection.TemporarilyUnlocked = settings["unlockShellBook"];
_pageRefreshEvent.Raise(PageRefreshEvent.SaveBehavior.SaveBeforeRefresh);
if(((DynamicJson)settings).IsDefined("isTemplateBook"))
{
UpdateBookTemplateMode(settings.isTemplateBook);
}
request.Succeeded();
break;
default:
throw new ArgumentOutOfRangeException();
}
}