public async Task <ActionResult <MovimentacaoVeiculoResource> > RegistrarEntradaVeiculo([FromBody] SaveMovimentacaoVeiculoResource saveMovimentacaoVeiculoResource) { var validator = new SaveMovimentacaoVeiculoResourceValidator(); var validationResult = await validator.ValidateAsync(saveMovimentacaoVeiculoResource); var veiculo = await _veiculoService.GetVeiculoById(saveMovimentacaoVeiculoResource.VeiculoId); var movimentacaoExistente = await _movimentacaoVeiculoService.GetMovimentacaoPorPlaca(veiculo.Placa); if (movimentacaoExistente != null) { ValidationFailure failure = new ValidationFailure("dataSaida", String.Format("Saída Pendente para o Veículo de placa {0}", veiculo.Placa)); validationResult.Errors.Add(failure); } if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var movimentacaoToCreate = _mapper.Map <SaveMovimentacaoVeiculoResource, MovimentacaoVeiculo>(saveMovimentacaoVeiculoResource); var newMovimentacao = await _movimentacaoVeiculoService.CreateMovimentacao(movimentacaoToCreate); var movimentacao = await _movimentacaoVeiculoService.GetMovimentacaoById(newMovimentacao.Id); var movimentacaoVeiculoResource = _mapper.Map <MovimentacaoVeiculo, MovimentacaoVeiculoResource>(movimentacao); return(Ok(movimentacaoVeiculoResource)); }
public async Task <ActionResult <MovimentacaoVeiculoResource> > RegistrarSaidaVeiculo(int id, [FromBody] SaveMovimentacaoVeiculoResource saveMovimentacaoVeiculoResource) { var validator = new SaveMovimentacaoVeiculoResourceValidator(); var validationResult = await validator.ValidateAsync(saveMovimentacaoVeiculoResource); if (saveMovimentacaoVeiculoResource.DataSaida == null) { ValidationFailure failure = new ValidationFailure("dataSaida", "É necessário preencher a Data de Saída do Veículo"); validationResult.Errors.Add(failure); } if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var movimentacaoToBeUpdated = await _movimentacaoVeiculoService.GetMovimentacaoById(id); if (movimentacaoToBeUpdated == null) { return(NotFound()); } var movimentacao = _mapper.Map <SaveMovimentacaoVeiculoResource, MovimentacaoVeiculo>(saveMovimentacaoVeiculoResource); await _movimentacaoVeiculoService.RegistrarSaidaVeiculo(movimentacaoToBeUpdated, movimentacao); var updatedMovimentacaoVeiculo = await _movimentacaoVeiculoService.GetMovimentacaoById(id); var updatedMovimentacaoVeiculoResource = _mapper.Map <MovimentacaoVeiculo, MovimentacaoVeiculoResource>(updatedMovimentacaoVeiculo); return(Ok(updatedMovimentacaoVeiculoResource)); }