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"); } }
public ActionResult ExcluirHistoricoPassagem(ModeloDeEdicaoDeCarater modelo) { var retorno = this._servicoDeGestaoDeCaraters.ExcluirHistoricoPassagem(modelo, User.Logado()); this.AdicionarMensagemDeSucesso(retorno); return(RedirectToAction(nameof(Detalhar), new { id = modelo.Id })); }
public ActionResult ExcluirCarater(ModeloDeEdicaoDeCarater modelo) { var retorno = this._servicoDeGestaoDeCaraters.ExcluirCarater(modelo, User.Logado()); this.AdicionarMensagemDeSucesso(retorno); return(RedirectToAction(nameof(Index))); }
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 })); }
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."); }
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); } }
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); } }
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); } }