public IActionResult Edit(EditArticleRequest model)
        {
            if (model == null)
            {
                return this.BadRequest();
            }

            var result = this.ArticleService.Edit(model);

            return this.ApiResponse(result);
        }
Esempio n. 2
0
        public OperationResult Edit(EditArticleRequest model)
        {
            using (var scope = new TransactionScope())
            using (var conn = this.OpenConnection())
            {
                string sql = @"
UPDATE TOP(1) Article
SET Title=@Title,Content=@Content,Summary=@Summary,UserID=@UserID,[From]=@From,PostDate=ISNULL(@PostDate,PostDate),Status=isnull(@Status,Status),AllowComment=@AllowComment
WHERE ID=@ID;
";
                var rows = conn.Execute(sql, new
                {
                    ID = model.ID.Value,
                    model.Title,
                    model.Content,
                    model.Summary,
                    model.UserID,
                    model.From,
                    PostDate = model.PostDate ?? DateTime.Now,
                    Status = model.Status,
                    model.AllowComment
                });

                if (rows == 0)
                {
                    return OperationResult.ErrorResult("不存在的文章");
                }

                sql = @"
DELETE FROM CategoryArticle WHERE ArticleID=@ID;
";

                conn.Execute(sql, new
                {
                    ID = model.ID.Value
                });

                if (model.CategoryIDList.Length > 0)
                {
                    var paras = model.CategoryIDList
                        .Select(t => new
                        {
                            ArticleID = model.ID.Value,
                            CategoryID = t
                        }).ToArray();

                    string insertCategorySql = @"
INSERT INTO [CategoryArticle] ( ArticleID, CategoryID )
VALUES ( @ArticleID, @CategoryID );
";

                    conn.Execute(insertCategorySql, paras);
                }

                scope.Complete();

                this.CategoryService.ClearCache();

                return OperationResult.SuccessResult();
            }
        }