public async Task <IActionResult> CreateAsync(int inquiryId, [FromBody] InquirySampleDto input, [FromServices] IGeocoderTranslation geocoderTranslation) { Address address = await geocoderTranslation.GetAddressIdAsync(input.Address); // Map. var inquirySample = _mapper.Map <InquirySample>(input); inquirySample.Address = address.Id; inquirySample.Inquiry = inquiryId; // Act. // FUTURE: Too much logic InquiryFull inquiry = await _inquiryRepository.GetByIdAsync(inquirySample.Inquiry); if (!inquiry.State.AllowWrite) { throw new EntityReadOnlyException(); } inquirySample = await _inquirySampleRepository.AddGetAsync(inquirySample); inquiry.State.TransitionToPending(); await _inquiryRepository.SetAuditStatusAsync(inquiry.Id, inquiry); // Map. var output = _mapper.Map <InquirySampleDto>(inquirySample); // Return. return(Ok(output)); }
public async Task <IActionResult> UpdateAsync(int inquiryId, int id, [FromBody] InquirySampleDto input) { // Map. var inquirySample = _mapper.Map <InquirySample>(input); inquirySample.Id = id; inquirySample.Inquiry = inquiryId; // Act. InquiryFull inquiry = await _inquiryRepository.GetByIdAsync(inquirySample.Inquiry); if (!inquiry.State.AllowWrite) { throw new EntityReadOnlyException(); } await _inquirySampleRepository.UpdateAsync(inquirySample); inquiry.State.TransitionToPending(); await _inquiryRepository.SetAuditStatusAsync(inquiry.Id, inquiry); // Return. return(NoContent()); }