Ejemplo n.º 1
0
        public IActionResult Add(AddArticleRequest model)
        {
            if (model == null)
            {
                return this.BadRequest();
            }

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

            return this.ApiResponse(result);
        }
Ejemplo n.º 2
0
        public OperationResult<int?> Add(AddArticleRequest model)
        {
            using (var scope = new TransactionScope())
            {
                using (var conn = this.OpenConnection())
                {
                    string sql = @"
INSERT INTO [Article] ( Title,Content,Summary,UserID,[From],PostDate,Status,AllowComment )
VALUES (@Title, @Content, @Summary, @UserID, @From, @PostDate, ISNULL(@Status,1), @AllowComment);

SELECT @@IDENTITY;
";

                    var id = conn.ExecuteScalar<int>(sql, new
                    {
                        model.Title,
                        model.Content,
                        model.Summary,
                        model.UserID,
                        model.From,
                        PostDate = model.PostDate ?? DateTime.Now,
                        Status = model.Status,
                        model.AllowComment
                    });

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

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

                        conn.Execute(insertCategorySql, paras);
                    }

                    scope.Complete();

                    this.CategoryService.ClearCache();

                    return OperationResult<int?>.SuccessResult(id);
                }
            }
        }