Ejemplo n.º 1
0
        public async Task <Tuple <string, int> > CadastrarCarater(ModeloDeCadastroDeCarater modelo, UsuarioLogado usuario)
        {
            var mensagemErro = String.Empty;

            try
            {
                var caraterCadastrado = this._servicoExternoDePersistencia.RepositorioDeCaraters.PegarCaraterPorPlaca(modelo.Placa);
                if (caraterCadastrado != null)
                {
                    mensagemErro = "Já existe um caráter para o mesmo veículo.";
                    throw new ExcecaoDeAplicacao("Já existe um caráter para o mesmo veículo.");
                }

                DateTime dataHoraFato = new DateTime();
                var      usuarioBanco = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(usuario.Id);
                var      crime        = this._servicoExternoDePersistencia.RepositorioDeCrimes.BuscarPorId(modelo.Crime);
                var      cidade       = this._servicoExternoDePersistencia.RepositorioDeCidades.PegarPorId(modelo.Cidade);
                var      veiculo      = this._servicoExternoDePersistencia.RepositorioDeVeiculos.PegarPorPlaca(modelo.Placa);

                if (veiculo == null)
                {
                    var dadosVeiculo = await this._servicoDeBuscaDeVeiculos.BuscarPlacaCompleta(modelo.Placa, usuario);

                    var modeloParaCadastro = new ModeloDeBuscaDaLista(dadosVeiculo);

                    if (dadosVeiculo != null)
                    {
                        veiculo = this._servicoDeGestaoDeVeiculos.CadastrarProprietarioPossuidor(modeloParaCadastro, usuario);
                    }
                    else
                    {
                        veiculo = new Veiculo(modelo.Placa, modelo.MarcaVeiculo, modelo.ModeloVeiculo, modelo.AnoVeiculo, modelo.CorVeiculo, modelo.ChassiVeiculo, modelo.UfVeiculo);
                    }

                    this._servicoExternoDePersistencia.Persistir();
                }

                if (!string.IsNullOrEmpty(modelo.Data) && !string.IsNullOrEmpty(modelo.Hora))
                {
                    var data = Convert.ToDateTime(modelo.Data);
                    var hora = Convert.ToDateTime(modelo.Hora);
                    dataHoraFato = new DateTime(data.Year, data.Month, data.Day, hora.Hour, hora.Minute, 0);
                }

                var novoCarater = new Carater(modelo.Descricao, modelo.ComplementoEndereco, dataHoraFato, veiculo, cidade, crime, modelo.UrlImagem, usuarioBanco);

                this._servicoExternoDePersistencia.RepositorioDeCaraters.Inserir(novoCarater);
                this._servicoExternoDePersistencia.Persistir();

                novoCarater.AdicionarHistorico(new HistoricoDeCarater("Criou o Caráter", "", TipoDeHistoricoDeCarater.Criacao, usuarioBanco, novoCarater.Id));
                this._servicoExternoDePersistencia.Persistir();

                return(new Tuple <string, int>("Caráter incluído com sucesso.", novoCarater.Id));
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Não foi possível incluir o Caráter: " + ex.InnerException + mensagemErro);
            }
        }
        public async Task <ModeloDeBuscaDaLista> DetalharVeiculo(ModeloDeFiltroDeBusca filtro, UsuarioLogado usuario)
        {
            try
            {
                var veiculo = await this.BuscarPlacaCompleta(filtro.Placa, usuario);

                if (veiculo == null)
                {
                    new ExcecaoDeAplicacao("Veículo não encontrado.");
                }

                var modelo = new ModeloDeBuscaDaLista(veiculo);
                return(modelo);
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Erro ao consultar os caráters");
            }
        }
Ejemplo n.º 3
0
        public Veiculo CadastrarProprietarioPossuidor(ModeloDeBuscaDaLista modelo, UsuarioLogado usuario)
        {
            try
            {
                var proprietario = modelo.Proprietario;
                var possuidor    = modelo.Possuidor;
                var veiculo      = this._servicoExternoDePersistencia.RepositorioDeVeiculos.PegarPorPlaca(modelo.Placa);
                var marca        = modelo.MarcaModelo.Split('/')[0];
                var modeloCaro   = modelo.MarcaModelo.Split('/')[1];

                if (veiculo == null)
                {
                    veiculo = new Veiculo(modelo.Placa, marca, modeloCaro, modelo.AnoModelo, modelo.Cor, modelo.Municipio, modelo.Uf,
                                          modelo.Renavam, modelo.Chassi, modelo.Motor, modelo.UltimoCRV, modelo.AtualizacaoData, modelo.Situacao);
                    this._servicoExternoDePersistencia.RepositorioDeVeiculos.Inserir(veiculo);
                }
                else
                {
                    veiculo.AlterarDadosVeiculo(marca, modeloCaro, modelo.AnoModelo, modelo.Cor, modelo.Municipio, modelo.Uf,
                                                modelo.Renavam, modelo.Chassi, modelo.Motor, modelo.UltimoCRV, modelo.AtualizacaoData, modelo.Situacao);
                }

                this._servicoExternoDePersistencia.Persistir();

                if (veiculo.Proprietario == null)
                {
                    CadastrarProprietario(veiculo, proprietario);
                }

                if (veiculo.Possuidor == null)
                {
                    CadastrarPossuidor(veiculo, possuidor);
                }

                this._servicoExternoDePersistencia.Persistir();
                return(veiculo);
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Não foi possível cadastrar o proprietário: " + ex.InnerException);
            }
        }