Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }