コード例 #1
0
ファイル: DeleteListener.cs プロジェクト: nwendel/brickpile
        /// <summary>
        ///     Invoked before the delete request is sent to the server.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="entityInstance">The entity instance.</param>
        /// <param name="metadata">The metadata.</param>
        public void BeforeDelete(string key, object entityInstance, RavenJObject metadata)
        {
            var entity = entityInstance as IPage;

            if (entity == null)
            {
                return;
            }

            if (DocumentListenerContext.IsInDocumentListenerContext)
            {
                return;
            }

            using (DocumentListenerContext.Enter())
            {
                this.onDocumentDelete(key, entity, metadata);
            }
        }
コード例 #2
0
        /// <summary>
        ///     Invoked before the store request is sent to the server.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="entityInstance">The entity instance.</param>
        /// <param name="metadata">The metadata.</param>
        /// <param name="original">The original document that was loaded from the server</param>
        /// <returns>
        ///     Whatever the entity instance was modified and requires us re-serialize it.
        ///     Returning true would force re-serialization of the entity, returning false would
        ///     mean that any changes to the entityInstance would be ignored in the current SaveChanges call.
        /// </returns>
        public bool BeforeStore(string key, object entityInstance, IMetadataDictionary metadata, IMetadataDictionary original)
        {
            var entity = entityInstance as IPage;

            if (entity == null)
            {
                return(false);
            }

            if (DocumentListenerContext.IsInDocumentListenerContext)
            {
                return(false);
            }

            var action = HttpContext.Current.Items["storeAction"] as StoreAction?;

            using (DocumentListenerContext.Enter())
            {
                switch (action)
                {
                case StoreAction.None:
                    return(false);

                case StoreAction.Save:
                    //_onPageSave(key, entity, metadata);
                    this.onPagePublish(key, entity, metadata);
                    break;

                case StoreAction.Publish:
                    this.onPagePublish(key, entity, metadata);
                    break;

                case StoreAction.UnPublish:
                    //_onPageUnpublish(key, entity, metadata);
                    return(false);

                default:
                    return(false);
                }
                return(true);
            }
        }