Example #1
0
        public async Task <ActionResult <ArticleDTO> > AddArticle([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "articles")][RequestBodyType(typeof(UpdateArticleRequest), "product request")]
                                                                  HttpRequest request)
        {
            string requestBody = await new StreamReader(request.Body).ReadToEndAsync();

            var createdArticle = JsonConvert.DeserializeObject <UpdateArticleRequest>(requestBody);

            if (!createdArticle.IsValid(validationResults: out var validationResults))
            {
                return(new BadRequestObjectResult($"{nameof(ArticleDTO)} is invalid: {string.Join(", ", validationResults.Select(s => s.ErrorMessage))}"));
            }

            try
            {
                var article = await service.CreateArticleAsync(createdArticle);

                return(new OkObjectResult(article));
            }
            catch (ResourceHasConflictException ex)
            {
                return(new ConflictObjectResult(ex.Message));
            }
            catch (ResourceNotFoundException ex)
            {
                return(new NotFoundObjectResult(ex.Message));
            }
        }
Example #2
0
        public async void CreateArticleAsync_ShouldCreateAndAddArticlesToDatabase()
        {
            var options = new DbContextOptionsBuilder <TechAndToolsDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreateArticleAsync_ShouldCreateAndAddArticlesToDatabase")
                          .Options;

            TechAndToolsDbContext context = new TechAndToolsDbContext(options);

            IArticleService articleService = new ArticleService(context);

            string authorId = "998DC52A-7FA4-461F-9F79-3F9720D64C01";

            int articleId = 111;

            var actualResult = await articleService.CreateArticleAsync(new ArticleServiceModel
            {
                Id      = articleId,
                Title   = "title1",
                Content = "content1111111111111111111",
                Image   = new ImageServiceModel
                {
                    ArticleId = articleId,
                    ImageUrl  = "url"
                }
            }, authorId);

            int expectedCount = 1;
            var actualCount   = context.Articles.ToList().Count;

            Assert.Equal(actualCount, expectedCount);
        }
Example #3
0
        public async Task CreateArticle()
        {
            var request  = new FortnoxApiRequest(this.connectionSettings.AccessToken, this.connectionSettings.ClientSecret);
            var response = await ArticleService.CreateArticleAsync(request, new Article { Description = "TestArtikel" });

            Assert.AreEqual("TestArtikel", response.Description);

            await ArticleService.DeleteArticleAsync(request, response.ArticleNumber);
        }
Example #4
0
        protected async Task <ArticleSubset> CreateArticle()
        {
            var request = new FortnoxApiRequest(connectionSettings.AccessToken, connectionSettings.ClientSecret);

            return(await ArticleService.CreateArticleAsync(
                       request,
                       new Article { Description = $"Test{(new Random()).Next(0, 100000)}" }
                       ));
        }
Example #5
0
        public async Task <IActionResult> CreateArticleAsync()
        {
            if (!authorizationManager.IsAdmin())
            {
                return(Unauthorized());
            }

            return(Ok(await articleService.CreateArticleAsync()));
        }
Example #6
0
        public async Task <ActionResult <ArticleDTO> > AddArticle(UpdateArticleRequest createdArticle)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                var article = await articleService.CreateArticleAsync(createdArticle);

                return(CreatedAtAction("GetArticle", new { articleId = article.Id }, article));
            }
            catch (ResourceHasConflictException ex)
            {
                return(Conflict(ex.Message));
            }
            catch (ResourceNotFoundException ex)
            {
                return(NotFound(ex.Message));
            }
        }