public async Task <IActionResult> UpdateAsync(int id, [FromBody] InquiryDto input) { // Map. var inquiry = _mapper.Map <InquiryFull>(input); inquiry.Id = id; InquiryFull inquiry_existing = await _inquiryRepository.GetByIdAsync(id); if (inquiry_existing.Attribution.Creator == input.Reviewer) { throw new AuthorizationException(); } // Act. await _inquiryRepository.UpdateAsync(inquiry); // FUTURE: Does this make sense? // Only when this item was rejected can we move into // a pending state after update. if (inquiry.State.AuditStatus == AuditStatus.Rejected) { // Transition. inquiry.State.TransitionToPending(); // Act. await _inquiryRepository.SetAuditStatusAsync(inquiry.Id, inquiry); } // Return. return(NoContent()); }