예제 #1
0
            public async Task <Unit> Handle(Command message, CancellationToken cancellationToken)
            {
                var article = await _context.Articles.FirstOrDefaultAsync(x => x.Slug == message.Slug, cancellationToken);

                if (article == null)
                {
                    // throw new RestException(HttpStatusCode.NotFound, new {Article= Constants.NOT_FOUND});
                }
                // Remove the deleted article from the context
                _context.Articles.Remove(article);
                await _context.SaveChangesAsync(cancellationToken);

                return(Unit.Value);
            }
예제 #2
0
            // public async Task<ArticleEnvelope> Handle (Command message, CancellationToken cancellationToken) {
            // var author = await _context.Persons.FirstAsync (x => x.Username == _currentUser.GetCurrentUsername (), cancellationToken);

            // var tags = new List<Tag> ();
            // foreach (var tag in (message.Article.TagList ?? Enumerable.Empty<string> ())) {
            //     var t = await _context.Tags.FindAsync (tag);
            //     if (t == null) {
            //         t = new Tag () {
            //         TagId = tag
            //         };
            //         await _context.Tags.AddAsync (t, cancellationToken);
            //         // Save immediately for reuse
            //         await _context.SaveChangesAsync (cancellationToken);
            //     }
            //     tags.Add (t);
            // }

            // var article = new Article () {
            //     // Author = author,
            //  //   Body = message.Article.Body,
            //  //   Description = message.Article.Title,
            //     CreatedAt = DateTime.UtcNow,
            //     UpdatedAt = DateTime.UtcNow,
            //     // Slug = message.Article.Title.GenerateSlug ()

            // };

            // await _context.Articles.AddAsync (article, cancellationToken);

            // await _context.ArticleTags.AddRangeAsync (tags.Select (x => new ArticleTag () {

            //     Article = article,
            //         Tag = x
            // }), cancellationToken);

            // await _context.SaveChangesAsync (cancellationToken);

            // return new ArticleEnvelope (article);
            // }

            public async Task <ArticleEnvelope> Handle(Command request, CancellationToken cancellationToken)
            {
                var article = new Article()
                {
                    // Id = request.Id,
                    Title       = request.Article.Title,
                    Body        = request.Article.Body,
                    Description = request.Article.Description,
                    CreatedAt   = DateTime.UtcNow,
                    UpdatedAt   = DateTime.UtcNow,
                };

                await _context.Articles.AddAsync(article, cancellationToken);

                await _context.SaveChangesAsync(cancellationToken);

                return(new ArticleEnvelope(article));
            }