public async Task <ActionResult <SampleDto> > AddSample([FromBody] SampleForCreationDto sampleForCreation) { var validationResults = new SampleForCreationDtoValidator().Validate(sampleForCreation); validationResults.AddToModelState(ModelState, null); if (!ModelState.IsValid) { return(BadRequest(new ValidationProblemDetails(ModelState))); //return ValidationProblem(); } var sample = _mapper.Map <Sample>(sampleForCreation); await _sampleRepository.AddSample(sample); var saveSuccessful = await _sampleRepository.SaveAsync(); if (saveSuccessful) { var sampleFromRepo = await _sampleRepository.GetSampleAsync(sample.SampleId); var sampleDto = _mapper.Map <SampleDto>(sampleFromRepo); var response = new Response <SampleDto>(sampleDto); return(CreatedAtRoute("GetSample", new { sampleDto.SampleId }, response)); } return(StatusCode(500)); }
public async Task <ActionResult <SampleDto> > AddSample([FromBody] SampleForCreationDto sampleForCreation) { // add error handling var command = new AddSampleCommand(sampleForCreation); var commandResponse = await _mediator.Send(command); var response = new Response <SampleDto>(commandResponse); return(CreatedAtRoute("GetSample", new { commandResponse.SampleId }, response)); }
public AddSampleCommand(SampleForCreationDto sampleToAdd) { SampleToAdd = sampleToAdd; }