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)); } }
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); }
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); }
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)}" } )); }
public async Task <IActionResult> CreateArticleAsync() { if (!authorizationManager.IsAdmin()) { return(Unauthorized()); } return(Ok(await articleService.CreateArticleAsync())); }
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)); } }