Пример #1
0
        public async Task <IActionResult> Create([FromForm] ArticleCreationModel model)
        {
            var result = await _articleService.CreateAsync(User.GetId(), model);

            if (result.Success)
            {
                return(Created($"{Contracts.V1.ApiRoutes.Articles.GetSingle.FillRouteParameters(result.Payload.Id)}", _mapper.Map <ArticleDetailsModel>(result.Payload)));
            }

            return(BadRequest());
        }
Пример #2
0
        public async Task <RequestWithPayloadResult <Article> > CreateAsync(string authorId, ArticleCreationModel articleModel)
        {
            var article = new Article
            {
                CreationDate    = DateTime.UtcNow,
                LastUpdatedDate = null,
                Title           = articleModel.Title,
                Body            = articleModel.Body,
                Description     = articleModel.Description,
                AuthorId        = authorId
            };

            if (articleModel.Tags != null)
            {
                var tagsFromDatabase = await _tagService.CreateRangeAsync(articleModel.Tags.Split(","));

                AttachArticleTags(article, tagsFromDatabase);
            }

            if (articleModel.FeaturedImage != null)
            {
                article.FeaturedImage = await ImageUtilities.ProcessUploadedFile(articleModel.FeaturedImage, _imageSettings.FeaturedImage.Location,
                                                                                 _imageSettings.FeaturedImage.Format, _imageSettings.FeaturedImage.Width, _imageSettings.FeaturedImage.Height);
            }

            await _context.Articles.AddAsync(article);

            var savedSuccesfully = await _context.SaveChangesAsync() > 0;

            article = await GetAsync(article.Id);

            if (savedSuccesfully)
            {
                return(new RequestWithPayloadResult <Article>
                {
                    Success = savedSuccesfully,
                    Payload = article
                });
            }

            return(new RequestWithPayloadResult <Article>());
        }