Exemplo n.º 1
0
        public async Task <Veiculo> AdicionarVeiculoAsync(Veiculo veiculoDTO)
        {
            veiculoDTO.Id           = Guid.NewGuid();
            veiculoDTO.DataCadastro = DateTime.Now;

            Veiculo retornoVeiculo = await _veiculoRepository.BuscarPelaPlacaAsync(veiculoDTO.Placa);

            if (retornoVeiculo != null)
            {
                _notificador.Add("Veiculo", "Já existe o Veiculo com essa Placa");
                return(null);
            }

            Estabelecimento retornoEstabelecimento = await _estabelecimentoRepository.BuscarPorIdAsync(veiculoDTO.EstabelecimentoId);

            if (retornoEstabelecimento == null)
            {
                _notificador.Add("Veiculo", "Não existe Veiculo com esse ID");
                return(null);
            }

            var veiculo = await _veiculoRepository.AdicionarAsync(veiculoDTO);

            return(veiculo);
        }
        public async Task <Estabelecimento> BuscarEstabelecimentoIdAsync(Guid id)
        {
            Estabelecimento retornoEstabelecimento = await _estabelecimentoRepository.BuscarPorIdAsync(id);

            if (retornoEstabelecimento == null)
            {
                _notificador.Add("Estabelecimento", "Estabelecimento não encontrado com esse Id");
                return(null);
            }
            return(retornoEstabelecimento);
        }
        public async Task <bool> ControleVeiculoAsync(ControleVeiculo controleVeiculo)
        {
            Veiculo retornoVeiculo = await _veiculoRepository.BuscarPorIdAsync(controleVeiculo.VeiculoId);

            if (retornoVeiculo == null)
            {
                _notificador.Add("Veiculo", "Não existe o Veiculo com esse ID");
                return(false);
            }

            Estabelecimento retornoEstabelecimento = await _estabelecimentoRepository.BuscarPorIdAsync(controleVeiculo.EstabelecimentoId);

            if (retornoEstabelecimento == null)
            {
                _notificador.Add("Veiculo", "Não existe estabelecimento com esse ID");
                return(false);
            }


            if (controleVeiculo.TipoControle == (int)ETipoControle.Entrada)
            {
                return(await EntradaVeiculoAsync(controleVeiculo, retornoEstabelecimento));
            }
            else
            {
                return(await SaidaVeiculoAsync(controleVeiculo, retornoEstabelecimento));
            }
        }