public async Task <IActionResult> OnPostDeleteAsync() { var article = await Service.FindByIdAsync(ArticleId.ToString()); if (article == null) { return(NotFound()); } var result = await Service.DeleteAsync(article); if (result.Successfull) { if (PageId == null) { return(RedirectToPage("/Articles/Index")); } return(RedirectToPage("/WebPage/Articles/Index", new { pageId = PageId })); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Message); } return(await OnGetAsync(article.Id)); }
public async Task <IActionResult> OnPostUpdateAsync() { var article = await Service.FindByIdAsync(ArticleId.ToString()); if (article == null) { return(NotFound()); } var formDict = Request.Form.ToDictionary(k => k.Key.ToString(), k => k.Value); article.MarkdownText = MarkdownText; var result = await Service.UpdateAsync(article, formDict); if (result.Successfull) { return(RedirectToPage(new { id = article.Id })); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Message); } return(await OnGetAsync(article.Id)); }
public WikiArticleInfoViewModel( RequestContext requestContext, ArticleId articleId, UserManager <WikiDownUser> userManager) : base(requestContext, articleId, activeTab: HeaderTab.Info) { if (userManager == null) { throw new ArgumentNullException("userManager"); } if (this.Article == null) { throw new ArticleNotFoundException("articleId"); } this.userManager = userManager; this.ActiveArticleRevisionId = this.Article.ActiveRevisionId; var redirects = CurrentRepository.GetArticleRedirectsList(articleId); this.Redirects = redirects.Select(x => new KeyValuePair <string, string>(x.Slug, x.Title)).ToList(); this.Tags = (this.Article.Tags ?? Enumerable.Empty <string>()).ToList(); var articleRevisions = CurrentRepository.GetArticleRevisionsList(articleId); this.Revisions = articleRevisions.Select(x => new ArticleRevisionListItem(x, this.userManager)).ToList(); }
public void Delete(ArticleId id) { var article = _context.Articles.Find(id); _context.Articles.Remove(article); _context.SaveChanges(); }
public static string WikiDeleteArticleRevision( this UrlHelper urlHelper, ArticleId articleId, ArticleRevisionDate revisionDate) { return(urlHelper.RouteUrl(RouteNames.WikiArticleRevisionDelete, new { slug = articleId.Slug, revisionDate })); }
public Article Get(ArticleId id) { var article = _articleRepository.GetById(id); _eventPublisher.PublishRetrievalOf(article); return(article); }
public WikiSearchViewModel(RequestContext requestContext, string searchTerm) { this.SearchTerm = searchTerm ?? string.Empty; var searchTermArticleId = new ArticleId(this.SearchTerm); this.SearchTermFormatted = Capitalize(searchTermArticleId.Title); var repository = RepositoryRequestInstance.Get(requestContext); var searchResult = repository.SearchArticles(this.SearchTerm); this.SearchResults = searchResult.Items.Select(x => new SearchItem(x)).ToList(); this.Suggestions = searchResult.Suggestions; var articleExists = repository.GetArticleExists(searchTermArticleId); this.ArticleExists = (articleExists != null); bool isRedirect = (articleExists != null) && (articleExists.Title != SearchTermFormatted); this.ArticleTitle = (articleExists != null) ? (isRedirect ? articleExists.Title : this.SearchTermFormatted) : this.SearchTermFormatted; this.ArticleRedirectedFromTitle = (articleExists != null && isRedirect) ? this.SearchTermFormatted : null; }
public Article(ArticleId id, AuthorId authorId, Title title, Content content) { Id = id; AuthorId = authorId; Title = title; Content = content; }
public InputMessageArticle(ArticleId id, String?name, String?dosageForm, String?packagingUnit, int?maxSubItemQuantity, IEnumerable <ProductCode>?productCodes, IEnumerable <InputMessagePack>?packs) { maxSubItemQuantity?.ThrowIfNegative(); this.Id = id; this.Name = name; this.DosageForm = dosageForm; this.PackagingUnit = packagingUnit; this.MaxSubItemQuantity = maxSubItemQuantity; if (productCodes is not null) { this.ProductCodes.AddRange(productCodes); } if (packs is not null) { this.Packs.AddRange(packs); } }
public void Publish(ArticleId articleId) { var article = _articleRepository.FindById(articleId); article.Publish(); _articleRepository.Save(article); }
public Comment(CommentId commentId, ArticleId articleId, string description, string author) { CommentId = commentId; ArticleId = articleId; Description = description; Author = author; }
public static string WikiArticleEdit( this UrlHelper urlHelper, ArticleId articleId, ArticleRevisionDate revisionDate = null) { return(urlHelper.RouteUrl(RouteNames.WikiArticleEdit, new { slug = articleId.Slug, revisionDate })); }
public ArticleRevisionDiffApiModel( ArticleId articleId, ArticleRevisionDate oldRevisionDate, ArticleRevisionDate newRevisionDate, Repository repository) { var oldRevision = repository.GetArticleRevision(articleId, oldRevisionDate); string oldHtml = ((oldRevision != null) ? MarkdownService.MakeTextHtmlLinebreaks(oldRevision.MarkdownContent) : null) ?? string.Empty; var newRevision = repository.GetArticleRevision(articleId, newRevisionDate); string newHtml = ((newRevision != null) ? MarkdownService.MakeTextHtmlLinebreaks(newRevision.MarkdownContent) : null) ?? string.Empty; var diff = new Helpers.HtmlDiff(oldHtml, newHtml); string diffHtml = diff.Build(); this.HtmlDiff = diffHtml; this.OldText = (oldRevision != null) ? oldRevision.CreatedAt.ToString(ArticleRevisionDate.FormattedDateTimeFormat) : null; this.NewText = (newRevision != null) ? newRevision.CreatedAt.ToString(ArticleRevisionDate.FormattedDateTimeFormat) : null; }
public WikiArticleViewModelBase( RequestContext requestContext, ArticleId articleId, ArticleRevisionDate articleRevisionDate = null, HeaderTab activeTab = HeaderTab.None) { if (requestContext == null) { throw new ArgumentNullException("requestContext"); } if (articleId == null) { throw new ArgumentNullException("articleId"); } this.CurrentRepository = RepositoryRequestInstance.Get(requestContext); this.CurrentPrincipal = requestContext.HttpContext.User; this.ArticleId = articleId; this.DisplayArticleId = articleId; this.ArticleRevisionDate = articleRevisionDate; this.ActiveTab = activeTab; this.Article = this.CurrentRepository.GetArticle(articleId); this.CanEditArticle = (this.Article == null) || this.Article.CanEdit(this.CurrentPrincipal); }
public void ArtileId_with_same_id_should_be_equal() { var id1 = new ArticleId(new Guid("dddddddddddddddddddddddddddddddd")); var id2 = new ArticleId(new Guid("dddddddddddddddddddddddddddddddd")); Assert.AreEqual(id1, id2); }
public override IDocEntity SaveChanges(bool ignoreCache, DocConstantPermission permission) { ArticleId = ArticleId?.TrimAndPruneSpaces(); ArticleLink = ArticleLink?.TrimAndPruneSpaces(); SearchLink = SearchLink?.TrimAndPruneSpaces(); return(base.SaveChanges(ignoreCache, permission)); }
public StockInfoArticle(ArticleId id, int quantity, String?name, String?dosageForm, String?packagingUnit, int?maxSubItemQuantity, IEnumerable <ProductCode>?productCodes, IEnumerable <StockInfoPack>?packs) { quantity.ThrowIfNotPositive(); maxSubItemQuantity?.ThrowIfNegative(); this.Id = id; this.Quantity = quantity; this.Name = name; this.DosageForm = dosageForm; this.PackagingUnit = packagingUnit; this.MaxSubItemQuantity = maxSubItemQuantity; if (productCodes is not null) { this.ProductCodes.AddRange(productCodes); } if (packs is not null) { this.Packs.AddRange(packs); } }
public static bool Equals(OutputArticle?left, OutputArticle?right) { bool result = ArticleId.Equals(left?.Id, right?.Id); result &= (result ? (left?.Packs.SequenceEqual(right?.Packs)).GetValueOrDefault() : false); return(result); }
public WikiArticleEditViewModel( RequestContext requestContext, ArticleId articleId, ArticleRevisionDate articleRevisionDate = null) : base(requestContext, articleId, articleRevisionDate, HeaderTab.Edit) { this.IsCreateMode = (this.Article == null || string.IsNullOrWhiteSpace(this.Article.Id)); }
public IReadOnlyCollection <string> SaveRedirects( [FromUri] ArticleId slug, [FromBody] IEnumerable <string> redirects) { var savedRedirects = this.CurrentRepository.SaveArticleRedirects(slug, redirects); return(savedRedirects.Select(x => x.RedirectFromArticleSlug).ToList()); }
public static bool Equals(ArticlePriceResponseArticle?left, ArticlePriceResponseArticle?right) { bool result = ArticleId.Equals(left?.Id, right?.Id); result &= (result ? (left?.PriceInformations.SequenceEqual(right?.PriceInformations)).GetValueOrDefault() : false); return(result); }
public IReadOnlyCollection <string> GetTags([FromUri] ArticleId slug) { var article = this.GetEnsuredArticle(slug); var tags = article.Tags ?? Enumerable.Empty <string>(); return(tags.ToList()); }
public Article(ArticleId articleId, string title, string body, string summary, string author) { ArticleId = articleId; Title = title; Body = body; Summary = summary; Author = author; }
public ArticleRevisionDiffApiModel GetDiff([FromUri] ArticleId slug, [FromUri] ArticleRevisionDate oldRevisionDate, [FromUri] ArticleRevisionDate newRevisionDate) { var model = new ArticleRevisionDiffApiModel(slug, oldRevisionDate, newRevisionDate, this.CurrentRepository); return(model); }
public ActionResult <ArticleResponse> Get( [FromRoute][Required] Guid articleId) { var id = new ArticleId(articleId); var articleResponse = _articles.Get(id); return(Ok(articleResponse)); }
public static bool Equals(InitiateInputRequestArticle?left, InitiateInputRequestArticle?right) { bool result = ArticleId.Equals(left?.Id, right?.Id); result &= (result ? String.Equals(left?.FmdId, right?.FmdId, StringComparison.OrdinalIgnoreCase) : false); result &= (result ? (left?.Packs.SequenceEqual(right?.Packs)).GetValueOrDefault() : false); return(result); }
public ArticleDetailResultDto GetDetail(ArticleGetDetailQuery query) { var articleId = new ArticleId(query.ArticleId); var article = articleRepository.Find(articleId); var transformer = new ArticleToDtoTransformer(); var dto = article.Match(x => Option <ArticleDto> .Create(x.Transform(transformer)), Option <ArticleDto> .None); return(new ArticleDetailResultDto(dto)); }
public void DeleteRevision([FromUri] ArticleId slug, [FromUri] ArticleRevisionDate revisionDate) { bool deleteSuccess = this.CurrentRepository.DeleteArticleRevision(slug, revisionDate); if (!deleteSuccess) { throw new HttpResponseException(HttpStatusCode.NotFound); } }
public dynamic GetRevisionPreview([FromUri] ArticleId slug, [FromUri] ArticleRevisionDate revisionDate) { var articleRevision = this.GetEnsuredArticleRevision(slug, revisionDate); var text = articleRevision.CreatedAt.ToString(ArticleRevisionDate.FormattedDateTimeFormat); var htmlContent = MarkdownService.MakeTextHtmlLinebreaks(articleRevision.MarkdownContent); return(new { text, htmlContent }); }
public void RevertToDraft([FromUri] ArticleId slug) { bool revertSuccess = this.CurrentRepository.RevertArticleToDraft(slug); if (!revertSuccess) { throw new HttpResponseException(HttpStatusCode.NotFound); } }
public void GetArticleResult_WithSlugContainingSpace_ShouldThrowArticleIdNotEnsuredException() { var repository = RepositoryTestHelper.GetMockRepository(); string urlContainingSpace = "URL WITH SPACE"; string exceptionEnsuredSlug = null; string exceptionOriginalSlug = null; try { repository.GetArticleResult(urlContainingSpace); } catch (ArticleIdNotEnsuredException ex) { exceptionEnsuredSlug = ex.EnsuredSlug; exceptionOriginalSlug = ex.OriginalSlug; } var expectedEnsuredId = new ArticleId(urlContainingSpace); Assert.AreEqual(expectedEnsuredId.Slug, exceptionEnsuredSlug); Assert.AreEqual(urlContainingSpace, exceptionOriginalSlug); }