Beispiel #1
0
        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();
 }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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")));
            }
        }
Beispiel #5
0
 public async Task <ReportVm> PostReport(ReportCreateRequest request)
 {
     return(await PostAsync <ReportCreateRequest, ReportVm>($"/api/knowledgeBases/{request.KnowledgeBaseId}/reports", request));
 }
Beispiel #6
0
        public async Task <IActionResult> PostReport([FromForm] ReportCreateRequest request)
        {
            var result = await _knowledgeBaseApiClient.PostReport(request);

            return(Ok(result));
        }