public async Task <ServiceResult <ComplaintDto> > CreateComplaintAsync(ComplaintAddRequest request, int userId) { if (!await _unitOfWork.PostRepository.IsExistById(request.PostId)) { return(ServiceResult <ComplaintDto> .Fail(EOperationResult.EntityNotFound, "Post with this Id doesn't exist")); } var complaint = await _unitOfWork.ComplaintRepository.GetSingleAsync(c => c.PostId == request.PostId && c.UserId == userId); if (complaint == null) { complaint = new Complaint() { UserId = userId, PostId = request.PostId }; _unitOfWork.ComplaintRepository.Add(complaint); await _unitOfWork.CommitAsync(); } return(ServiceResult <ComplaintDto> .Ok(_mapper.Map <Complaint, ComplaintDto>(complaint))); }
public async Task <ActionResult <ComplaintDto> > AddComplaintAsync(ComplaintAddRequest request) => _viewMapper.ServiceResultToContentResult( await _complaintService.CreateComplaintAsync(request, UserId));