public async Task <IActionResult> Edit(ArticleEditBindingModel model)
        {
            var article = await this.articlesService.EditArticleAsync(model);

            SetSuccesfullMessage(EditedSuccessfully, ArticleConst);

            return(this.RedirectToAction("Details", new { id = article.Id, slug = article.Slug }));
        }
        public async Task <Article> EditArticleAsync(ArticleEditBindingModel model)
        {
            Validator.EnsureNotNull(model, ValidationConstants.ArticleDefinedMessage);
            Validator.EnsureStringNotNullOrEmpty(model.Title, ValidationConstants.ArticleTitleMessage);
            Validator.EnsureStringNotNullOrEmpty(model.Slug, ValidationConstants.ArticleSlugMessage);
            Validator.EnsureStringNotNullOrEmpty(model.Content, ValidationConstants.ArticleContentMessage);
            Validator.EnsureStringNotNullOrEmpty(model.AuthorId, ValidationConstants.ArticleAuthorMessage);
            Validator.EnsureStringNotNullOrEmpty(model.ArticleCategoryId.ToString(), ValidationConstants.ArticleCategoryMessage);

            var dbArticle = this.DbContext.Articles.Find(model.Id);

            dbArticle.ArticleCategoryId = model.ArticleCategoryId;
            dbArticle.AuthorId          = model.AuthorId;
            dbArticle.Content           = model.Content;
            dbArticle.Title             = model.Title;
            dbArticle.Slug = model.Slug;

            await this.DbContext.SaveChangesAsync();

            return(dbArticle);
        }