Example #1
0
        private void EstacionarMoto(OcorrenciaResultado resultado, Estabelecimento estabelecimento, Ocorrencia ocorrencia)
        {
            if (estabelecimento.PosicoesVagasMotos > 0)
            {
                resultado.Status = OcorrenciaStatus.VeiculoEstacionadoComSucesso;
                estabelecimento.PosicoesVagasMotos--;
                _incluirOcorrrenciaService.Executar(ocorrencia);
            }

            else
            {
                resultado.Status = OcorrenciaStatus.EstacionamentoLotado;
            }
        }
Example #2
0
        public OcorrenciaResultado Executar(Ocorrencia ocorrencia)
        {
            OcorrenciaResultado resultado = new OcorrenciaResultado();

            resultado.EstabelecimentoId = ocorrencia.EstabelecimentoId;

            var veiculo = _veiculoService.Selecionar(ocorrencia.VeiculoId).Result;

            if (veiculo == null)
            {
                resultado.Status = OcorrenciaStatus.VeiculoNaoCadastrado;
            }
            else
            {
                var estabelecimento = _estabelecimentoService.Selecionar(ocorrencia.EstabelecimentoId).Result;

                switch (veiculo.Tipo)
                {
                case VeiculoTipo.Carro:
                    if (ocorrencia.Movimento == TipoMovimento.entrada)
                    {
                        EstacionarCarro(resultado, estabelecimento, ocorrencia);
                    }
                    else
                    {
                        LiberarCarro(resultado, estabelecimento, ocorrencia);
                    }
                    break;

                case VeiculoTipo.Moto:
                    if (ocorrencia.Movimento == TipoMovimento.entrada)
                    {
                        EstacionarMoto(resultado, estabelecimento, ocorrencia);
                    }
                    else
                    {
                        LiberarMoto(resultado, estabelecimento, ocorrencia);
                    }
                    break;
                }

                _estabelecimentoService.Atualizar(ocorrencia.EstabelecimentoId, estabelecimento);

                resultado.PosicoesVagasCarrosAtualizada = estabelecimento.PosicoesVagasCarros;
                resultado.PosicoesVagasMotosAtualizada  = estabelecimento.PosicoesVagasMotos;
            }

            return(resultado);
        }
Example #3
0
 private void LiberarCarro(OcorrenciaResultado resultado, Estabelecimento estabelecimento, Ocorrencia ocorrencia)
 {
     resultado.Status = OcorrenciaStatus.VeiculoLiberado;
     estabelecimento.PosicoesVagasCarros++;
     _incluirOcorrrenciaService.Executar(ocorrencia);
 }