Esempio n. 1
0
        public async Task <IActionResult> GetVeiculo([FromBody] Veiculo veiculo)
        {
            if (veiculo == null)
            {
                throw new ArgumentNullException(nameof(veiculo));
            }

            var veiculoDb = _veiculoService.GetQuery().Where(v => v.Placa == veiculo.Placa).FirstOrDefault();

            if (veiculoDb == null)
            {
                var validates = _validator.Validate(veiculo);
                if (!validates.IsValid)
                {
                    return(BadRequest(GetMessages(validates.Errors)));
                }
                if (string.IsNullOrEmpty(veiculo.Descricao))
                {
                    return(Ok());
                }
                try
                {
                    await _veiculoService.CreateAsync(veiculo);

                    return(Ok(veiculo));
                }
                catch (ModelValidateException ex)
                {
                    return(BadRequest(ex.Results.Errors));
                }
            }
            return(Ok(veiculoDb));
        }
        public EntradaVeiculoViewModelValidation(ITabelaPrecosService tabelaPrecosService, IVeiculoServices veiculoServices)
        {
            RuleFor(v => v).Custom((t, context) =>
            {
                var tab = tabelaPrecosService.GetQuery().Where(w => t.DataEntrada >= w.Inicio && t.DataEntrada <= w.Fim).FirstOrDefault();
                if (tab == null)
                {
                    context.AddFailure(new ValidationFailure(nameof(t.DataEntrada), "Não existe tabela de preços vigente para a Data de Entrada informada!"));
                }

                var veiculo = veiculoServices.GetQuery().Where(v => v.Id == t.VeiculoId).FirstOrDefault();
                if (veiculo == null)
                {
                    context.AddFailure(new ValidationFailure(nameof(t.VeiculoId), $"Não foi encontrado veículo {t.VeiculoId} informado na inclusão!"));
                }
            });
        }
Esempio n. 3
0
        public async Task SaveEntradaAsync(EntradaVeiculoViewModel viewModel)
        {
            var results = _validatorEntrada.Validate(viewModel);

            if (!results.IsValid)
            {
                throw new ModelValidateException("Não foi possível registrar a entrada!", results);
            }

            var tab = await _tabelaPrecosService.GetQuery().Where(w => viewModel.DataEntrada >= w.Inicio && viewModel.DataEntrada <= w.Fim).FirstOrDefaultAsync();

            var veiculo = await _veiculoServices.GetQuery().Where(v => v.Id == viewModel.VeiculoId).FirstOrDefaultAsync();

            var movimentacao = new Movimentacao()
            {
                Entrada   = viewModel.DataEntrada,
                VeiculoId = viewModel.VeiculoId,
                //TabelaPreco = tab,
                TabelaPrecoId = tab.Id,
                Valor         = tab.Preco,
                //Veiculo = veiculo
            };
            await _movimentacaoService.CreateAsync(movimentacao);
        }