Пример #1
0
        public async Task <IActionResult> OnGetAsync(string slug = "")
        {
            if (string.IsNullOrEmpty(slug))
            {
                return(Page());
            }

            var request = new GetArticleQuery(slug);
            var result  = await _mediator.Send(request);

            if (result == null)
            {
                Article = new ArticleCreate
                {
                    Topic = UrlHelpers.SlugToTopic(slug)
                };
            }
            else
            {
                // TODO: Convert this to use a PageRoute
                return(Redirect($"/{slug}/Edit"));
            }

            return(Page());
        }
Пример #2
0
        public async Task <IActionResult> Create(ArticleCreate request)
        {
            var created = await Mediator.Send(request with
            {
                UserId = RequestUserId,
            });

            await SaveChangesAsync();

            return(CreatedAtAction(nameof(Get), new { id = created.Id }, created));
        }
        public bool Save(ArticleCreate value)
        {
            var images = new List <ArticleImage>();

            if (value.Images.Count > 0)
            {
                var destination = value.Url.Replace(" ", "-");
                foreach (var item in value.Images)
                {
                    var fileName = _fileService.Copy(item.Path, destination);
                    if (fileName == null)
                    {
                        continue;
                    }

                    images.Add(new ArticleImage()
                    {
                        Image = new Image()
                        {
                            Path      = fileName,
                            CreatedAt = DateTime.Now
                        }
                    });
                }
            }

            var catehories = new List <ArticleCategory>();

            foreach (var item in value.Categories)
            {
                catehories.Add(new ArticleCategory()
                {
                    CategoryId = item
                });
            }

            var article = new Article()
            {
                Description = value.Description,
                Title       = value.Title,
                Url         = value.Url,
                CreatedAt   = DateTime.Now,
                Images      = images,
                Categories  = catehories
            };

            return(_articleRepository.Save(article));
        }
        public IActionResult Add([FromBody] ArticleCreate articleCreate)
        {
            if (articleCreate == null)
            {
                throw new ApiException("Błąd danych");
            }

            if (!ModelState.IsValid)
            {
                throw new ApiValidationException("Walidacja");
            }

            if (!_articleService.Save(articleCreate))
            {
                throw new ApiException("Bład wykonano akcje zapisu artykułu");
            }

            return(new ResponseObjectResult("Pomyślnie wykonano akcje dodania artykułu"));
        }