Esempio n. 1
0
        public ModeloDeEdicaoDeCarater BuscarCaraterPorId(int id, UsuarioLogado usuario, bool EhCelular = false)
        {
            try
            {
                var carater = this._servicoExternoDePersistencia.RepositorioDeCaraters.PegarPorId(id);
                if (carater != null)
                {
                    var alertas = this._servicoExternoDePersistencia.RepositorioDeCaraters.PegarTodosAlertaPorCarater(carater.Id);
                    if (alertas != null)
                    {
                        var usuarioBanco = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(usuario.Id);
                        foreach (var alerta in alertas)
                        {
                            var alertasUsuarios = this._servicoExternoDePersistencia.RepositorioDeCaraters.PegarAlertasUsuarios(usuario.Id, alerta.Id);
                            if (alertasUsuarios.Count == 0)
                            {
                                usuarioBanco.InserirAlertaUsuario(alerta);
                            }
                        }

                        this._servicoExternoDePersistencia.Persistir();
                    }
                }

                var modelo = new ModeloDeEdicaoDeCarater(carater, EhCelular);

                return(modelo);
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Erro ao consultar caráter");
            }
        }
Esempio n. 2
0
        public ActionResult ExcluirHistoricoPassagem(ModeloDeEdicaoDeCarater modelo)
        {
            var retorno = this._servicoDeGestaoDeCaraters.ExcluirHistoricoPassagem(modelo, User.Logado());

            this.AdicionarMensagemDeSucesso(retorno);
            return(RedirectToAction(nameof(Detalhar), new { id = modelo.Id }));
        }
Esempio n. 3
0
        public ActionResult ExcluirCarater(ModeloDeEdicaoDeCarater modelo)
        {
            var retorno = this._servicoDeGestaoDeCaraters.ExcluirCarater(modelo, User.Logado());

            this.AdicionarMensagemDeSucesso(retorno);
            return(RedirectToAction(nameof(Index)));
        }
Esempio n. 4
0
        public async Task <ActionResult> SalvarHistoricoPassagem(ModeloDeEdicaoDeCarater modelo, HttpPostedFileBase file)
        {
            var retorno = await this._servicoDeGestaoDeCaraters.AdicionarHistoricoPassagem(modelo, User.Logado(), file);

            this.AdicionarMensagemDeSucesso(retorno);
            return(RedirectToAction(nameof(Detalhar), new { id = modelo.Id }));
        }
Esempio n. 5
0
        public async Task <string> AdicionarHistoricoPassagem(ModeloDeEdicaoDeCarater modelo, UsuarioLogado usuario, HttpPostedFileBase imagem)
        {
            DateTime dataHoraFato = new DateTime();
            var      carater      = this._servicoExternoDePersistencia.RepositorioDeCaraters.PegarPorId(modelo.Id);
            var      usuarioBanco = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(usuario.Id);

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

            var historicoPassagem = new HistoricoDePassagem(dataHoraFato, modelo.DescricaoHistorico, carater.Veiculo != null ? carater.Veiculo.Placa : String.Empty, String.Empty, modelo.Latitude, modelo.Longitude);

            carater.AdicionarHistoricoPassagem(historicoPassagem, usuarioBanco);

            if (imagem != null)
            {
                int      MaxContentLength      = 1024 * 1024 * 3; //3 MB
                string[] AllowedFileExtensions = new string[] { ".jpg", ".png" };
                var      extensao = imagem.FileName.Substring(imagem.FileName.LastIndexOf('.'));

                if (!AllowedFileExtensions.Contains(imagem.FileName.Substring(imagem.FileName.LastIndexOf('.'))))
                {
                    throw new ExcecaoDeAplicacao("Extensão não permitida. Favor enviar somente: '.jpg', '.png'.");
                }

                if (imagem.ContentLength > MaxContentLength)
                {
                    throw new ExcecaoDeAplicacao("Permitido enviar no máximo 3mb.");
                }

                var caminho     = _servicoDeGeracaoDeHashSha.GerarParaStream(imagem.InputStream) + extensao;
                var caminhoBlob = $"fotos";

                historicoPassagem.Arquivo = caminho;
                this._servicoExternoDePersistencia.Persistir();

                try
                {
                    imagem.InputStream.Position = 0;
                    await this._servicoExternoDeArmazenamentoEmNuvem.EnviarArquivoAsync(imagem.InputStream, caminhoBlob, caminho);
                } catch (Exception ex)
                {
                    throw new ExcecaoDeAplicacao("Não foi possível salvar o arquivo:" + ex.InnerException);
                }
            }

            this._servicoExternoDePersistencia.Persistir();

            return("Histórico cadastrado com sucesso.");
        }
Esempio n. 6
0
        public string AdicionarHistoricoCarater(ModeloDeEdicaoDeCarater modelo, UsuarioLogado usuario)
        {
            try
            {
                var carater      = this._servicoExternoDePersistencia.RepositorioDeCaraters.PegarPorId(modelo.Id);
                var usuarioBanco = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(usuario.Id);

                carater.AdicionarHistorico(new HistoricoDeCarater("Incluiu histórico no caráter", modelo.DescricaoHistorico, TipoDeHistoricoDeCarater.HistoricoCarater, usuarioBanco, carater.Id));

                this._servicoExternoDePersistencia.Persistir();

                return("Histórico cadastrado com sucesso.");
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Não foi possível cadastrar o histórico: " + ex.InnerException);
            }
        }
Esempio n. 7
0
        public string AlterarDadosDoCarater(ModeloDeEdicaoDeCarater modelo, UsuarioLogado usuario)
        {
            try
            {
                DateTime dataHoraFato = new DateTime();
                var      carater      = this._servicoExternoDePersistencia.RepositorioDeCaraters.PegarPorId(modelo.Id);
                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 && !String.IsNullOrEmpty(modelo.Placa))
                {
                    veiculo = new Veiculo(modelo.Placa, modelo.MarcaVeiculo, modelo.ModeloVeiculo, modelo.AnoVeiculo, modelo.CorVeiculo, modelo.ChassiVeiculo, modelo.UfVeiculo);
                    this._servicoExternoDePersistencia.Persistir();
                }
                else
                {
                    veiculo.AlterarDadosVeiculo(modelo.MarcaVeiculo, modelo.ModeloVeiculo, modelo.AnoVeiculo, modelo.CorVeiculo, modelo.ChassiVeiculo, modelo.UfVeiculo);
                }

                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);
                }

                if (!carater.SeloAtenas && modelo.SeloAtenas)
                {
                    carater.AdicionarHistorico(new HistoricoDeCarater("Incluiu o selo Atenas ao Caráter", String.Empty, TipoDeHistoricoDeCarater.Historico, usuarioBanco, carater.Id));
                }

                carater.AlterarDados(modelo.Descricao, modelo.ComplementoEndereco, dataHoraFato, cidade, crime, veiculo, modelo.UrlImagem, usuarioBanco, modelo.SeloAtenas);

                this._servicoExternoDePersistencia.Persistir();

                return("Caráter alterado com sucesso.");
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Não foi possível alterar o Caráter: " + ex.InnerException);
            }
        }
Esempio n. 8
0
        public string ExcluirHistoricoPassagem(ModeloDeEdicaoDeCarater modelo, UsuarioLogado usuario)
        {
            try
            {
                var carater      = this._servicoExternoDePersistencia.RepositorioDeCaraters.PegarPorId(modelo.Id);
                var usuarioBanco = this._servicoExternoDePersistencia.RepositorioDeUsuarios.BuscarPorId(usuario.Id);

                if (carater.HistoricosDePassagens != null)
                {
                    carater.ExcluirHistoricoPassagem(modelo.IdHistorico);
                }

                carater.AdicionarHistorico(new HistoricoDeCarater("Excluiu histórico do caráter", modelo.DescricaoHistorico, TipoDeHistoricoDeCarater.Exclusao, usuarioBanco, carater.Id));

                this._servicoExternoDePersistencia.Persistir();
                return("Histórico excluído com sucesso.");
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Não foi possível excluir o histórico: " + ex.InnerException);
            }
        }