Beispiel #1
0
        public async Task <IActionResult> OnGetAsync(string slug)
        {
            WikiPage = await _wikiPageService.FindBySlug(slug);

            if (WikiPage == null)
            {
                return(NotFound());
            }
            MostRecentRevision = await _revisionService.FindMostRecentByPageId(WikiPage.Id);

            return(Page());
        }
Beispiel #2
0
        public async Task <IActionResult> OnGetAsync(string slug, int revisionNumber)
        {
            WikiPage = await _wikiPageService.FindBySlug(slug);

            if (WikiPage == null)
            {
                return(NotFound());
            }
            Revision = await _revisionService.FindByRevisionNumber(WikiPage.Id, revisionNumber);

            if (Revision == null)
            {
                return(NotFound());
            }
            return(Page());
        }
Beispiel #3
0
 public EditApproved(WikiPageRevision revision)
 {
     if (revision == null) throw new ArgumentNullException("revision");
     Revision = revision;
 }
 public async Task AddRevision(WikiPageRevision revision)
 {
     await _collection.InsertOneAsync(revision);
 }
Beispiel #5
0
 public EditDenied(WikiPageRevision revision, string reason)
 {
     Revision = revision;
     Reason = reason;
 }
Beispiel #6
0
        /// <summary>
        ///   Set the body to a specific revision
        /// </summary>
        /// <param name="repository"> Used to parse links </param>
        /// <param name="revision"> Revision ot use </param>
        /// <param name="result"> Result from body parsing </param>
        public virtual void SetRevision(IPageRepository repository, WikiPageRevision revision, PreProcessorContext result)
        {
            if (repository == null) throw new ArgumentNullException("repository");
            if (revision == null) throw new ArgumentNullException("revision");
            if (result == null) throw new ArgumentNullException("result");

            UpdatedAt = revision.CreatedAt;
            UpdatedBy = revision.CreatedBy;
            RawBody = result.OriginalBody;
            HtmlBody = result.Body;
            DomainEvent.Publish(new PageUpdated(this));
            UpdateLinksInternal(result, repository);
        }
Beispiel #7
0
 private void AddPendingRevision(PreProcessorContext result, string comment, IPageRepository repository)
 {
     var revision = new WikiPageRevision(this, WikiContext.Current.User, result, comment) {ReviewRequired = true};
     repository.Save(revision);
     _revisions.Add(revision);
     DomainEvent.Publish(new RevisionModerationRequired(revision));
 }
Beispiel #8
0
        private void AddRevision(PreProcessorContext result, string comment, IPageRepository repository)
        {
            var isNew = !_revisions.Any();


            UpdatedAt = DateTime.Now;
            UpdatedBy = WikiContext.Current.User;
            RawBody = result.OriginalBody;
            HtmlBody = result.Body;
            repository.Save(this);

            if (isNew)
            {
                DomainEvent.Publish(new PageCreated(this));
            }
            else
            {
                DomainEvent.Publish(new PageUpdated(this));
            }

            var revision = new WikiPageRevision(this, comment);
            revision.Approve();
            repository.Save(revision);
            _revisions.Add(revision);
        }