public async Task <IActionResult> PostReport(int knowledgeBaseId, [FromBody] ReportCreateRequest request) { var report = new Report() { Content = request.Content, KnowledgeBaseId = knowledgeBaseId, ReportUserId = request.ReportUserId, IsProcessed = false }; _context.Reports.Add(report); var knowledgeBase = await _context.KnowledgeBases.FindAsync(knowledgeBaseId); if (knowledgeBase != null) { return(BadRequest(new ApiBadRequestResponse($"Cannot found knowledge base with id {knowledgeBaseId}"))); } knowledgeBase.NumberOfComments = knowledgeBase.NumberOfReports.GetValueOrDefault(0) + 1; _context.KnowledgeBases.Update(knowledgeBase); var result = await _context.SaveChangesAsync(); if (result > 0) { return(Ok()); } else { return(BadRequest(new ApiBadRequestResponse($"Create report failed"))); } }
public ReportCreateRequestValidatorTest() { request = new ReportCreateRequest() { CaptchaCode = "abc", Content = "test", KnowledgeBaseId = 1, }; validator = new ReportCreateRequestValidator(); }
public async Task <IActionResult> PostReport([FromForm] ReportCreateRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!Captcha.ValidateCaptchaCode(request.CaptchaCode, HttpContext)) { ModelState.AddModelError("", "Mã xác nhận không đúng"); return(BadRequest(ModelState)); } var result = await _knowledgeBaseApiClient.PostReport(request); return(Ok(result)); }
public async Task <IActionResult> PostReport(int knowledgeBaseId, [FromBody] ReportCreateRequest request) { //// CREATE A CONSTANCE OF REPORT WITH INFORS ARE INPUT DATA var report = new Report() { Content = request.Content, KnowledgeBaseId = knowledgeBaseId, ReportUserId = User.GetUserId(), IsProcessed = false }; //// INSERT NEW REPORT INTO DATABASE _context.Reports.Add(report); //// GET KNOWLEDGE BASE WITH ID, IF KEY NOT EXIST RETURN STATUS 400 var knowledgeBase = await _context.KnowledgeBases.FindAsync(knowledgeBaseId); if (knowledgeBase == null) { return(BadRequest(new ApiBadRequestResponse($"Cannot found knowledge base with key {knowledgeBaseId}"))); } //// UPDATE NUMBER OF REPORT IS INCREASE 1 AND SAVE CHANGES knowledgeBase.NumberOfReports = knowledgeBase.NumberOfReports.GetValueOrDefault(0) + 1; _context.KnowledgeBases.Update(knowledgeBase); var result = await _context.SaveChangesAsync(); //// IF RESULT AFTER INSERT IS GREATER THAN 0 (TRUE), RETURN STATUS 200, ELSE RETURN STATUS 400 if (result > 0) { return(Ok()); } else { return(BadRequest(new ApiBadRequestResponse($"Create report failed"))); } }
public async Task <ReportVm> PostReport(ReportCreateRequest request) { return(await PostAsync <ReportCreateRequest, ReportVm>($"/api/knowledgeBases/{request.KnowledgeBaseId}/reports", request)); }
public async Task <IActionResult> PostReport([FromForm] ReportCreateRequest request) { var result = await _knowledgeBaseApiClient.PostReport(request); return(Ok(result)); }