public void RegisterWithApiHandler(BloomApiHandler apiHandler) { apiHandler.RegisterEndpointHandler(kApiUrlPart + "requestState", request => { if (request.HttpMethod == HttpMethods.Get) { request.ReplyWithJson(CurrentStateString); } else // post { Debug.Fail("We shouldn't ever be using the 'post' version."); request.PostSucceeded(); } }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "addPage", request => { AddPageButton_Click(); request.PostSucceeded(); }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "duplicatePage", request => { _editingModel.OnDuplicatePage(); request.PostSucceeded(); }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "deletePage", request => { if (ConfirmRemovePageDialog.Confirm()) { _editingModel.OnDeletePage(); } request.PostSucceeded(); }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "lockBook", request => { _editingModel.SaveNow(); // BL-5421 lock and unlock lose typing _editingModel.CurrentBook.TemporarilyUnlocked = false; request.PostSucceeded(); UpdateState(); // because we aren't selecting a new page _editingModel.RefreshDisplayOfCurrentPage(); }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "unlockBook", request => { _editingModel.SaveNow(); // BL-5421 lock and unlock lose typing _editingModel.CurrentBook.TemporarilyUnlocked = true; request.PostSucceeded(); UpdateState(); // because we aren't selecting a new page _editingModel.RefreshDisplayOfCurrentPage(); }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "cleanup", request => { SendCleanupState(); request.PostSucceeded(); }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "zoomMinus", request => { _editingModel.AdjustPageZoom(-10); request.PostSucceeded(); }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "zoomPlus", request => { _editingModel.AdjustPageZoom(10); request.PostSucceeded(); }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "requestVideoPlaceHolder", request => { _editingModel.RequestVideoPlaceHolder(); request.PostSucceeded(); }, true); apiHandler.RegisterEndpointHandler(kApiUrlPart + "requestWidgetPlaceHolder", request => { _editingModel.RequestWidgetPlaceHolder(); request.PostSucceeded(); }, true); }