public ModeloDeCaratersDaLista(Carater carater) { if (carater == null) { return; } this.Id = carater.Id; this.Descricao = carater.Descricao; this.ComplementoEndereco = carater.ComplementoEndereco; this.ComplementoEnderecoTradado = !String.IsNullOrEmpty(carater.ComplementoEndereco) ? $" - {carater.ComplementoEndereco}" : String.Empty; this.NomeCidade = carater.Cidade != null ? carater.Cidade.Descricao : String.Empty; this.NomeCidadeAbreviada = carater.Cidade != null ? carater.Cidade.Sigla : String.Empty; this.NomeCrime = carater.Crime != null ? $"{carater.Crime.Nome}" : String.Empty; this.DataDoFato = carater.DataHoraDoFato != null?carater.DataHoraDoFato.Value.ToString("dd/MM/yyyy HH:mm") : String.Empty; this.SituacaoDoCarater = carater.SituacaoDoCarater.ToString(); this.VeiculoLocalizado = carater.SituacaoDoCarater == Dominio.ObjetosDeValor.SituacaoDoCarater.Localizado ? true : false; this.CssTipoCrime = RetornaCssCrime(NomeCrime); this.SeloAtenas = carater.SeloAtenas; if (carater.Veiculo != null) { var chassi = !String.IsNullOrEmpty(carater.Veiculo.Chassi) ? carater.Veiculo.Chassi.Length > 4 ? $"({carater.Veiculo.Chassi.Substring(carater.Veiculo.Chassi.Length - 5)})" : carater.Veiculo.Chassi : String.Empty; this.NomeVeiculo = carater.Veiculo != null ? $"{carater.Veiculo.Marca} {carater.Veiculo.Modelo} {chassi}" : String.Empty; this.PlacaVeiculo = carater.Veiculo != null ? $"{carater.Veiculo.Placa} {carater.Veiculo.Uf}" : String.Empty; this.PlacaInicial = carater.Veiculo != null ? $"{carater.Veiculo.Placa.Substring(3,4)}" : String.Empty; this.PlacaFinal = carater.Veiculo != null ? $"{carater.Veiculo.Placa.Substring(0,3)}" : String.Empty; this.CorVeiculo = carater.Veiculo.Cor; this.UfVeiculo = !String.IsNullOrEmpty(carater.Veiculo.Uf) ? carater.Veiculo.Uf : String.Empty; this.ChassiVeiculo = carater.Veiculo.Chassi; this.AnoVeiculo = !String.IsNullOrEmpty(carater.Veiculo.Ano) ? carater.Veiculo.Ano.Split('/')[0].ToString() : String.Empty; } }
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 ModeloDeEdicaoDeCarater(Carater carater, bool ehCelular) { if (carater == null) { return; } this.DataHistorico = DateTime.Now.ToShortDateString(); var situacoesBaixas = new Dominio.ObjetosDeValor.SituacaoDoCarater[] { Dominio.ObjetosDeValor.SituacaoDoCarater.Localizado, Dominio.ObjetosDeValor.SituacaoDoCarater.BaixaAutomatica }; this.HistoricosDeCaraters = new List <ModeloDeHistoricoDeCaraterDaLista>(); this.HistoricosDePassagens = new List <ModeloDeHistoricoDePassagensDaLista>(); this.Fotos = new List <ModeloDeFotosDaLista>(); this.SituacoesDoCarater = ListaDeItensDeDominio.DoEnumComOpcaoPadrao <SituacaoDoCarater>(); var caminhoBlob = VariaveisDeAmbiente.Pegar <string>("azure:caminhoDoBlob"); this.Id = carater.Id; this.Descricao = carater.Descricao; this.ComplementoEndereco = carater.ComplementoEndereco; this.ComplementoEnderecoTradado = !String.IsNullOrEmpty(carater.ComplementoEndereco) ? $" - {carater.ComplementoEndereco}" : String.Empty; this.Cidade = carater.Cidade != null ? carater.Cidade.Id : 0; this.Crime = carater.Crime != null ? carater.Crime.Id : 0; this.NomeCrime = carater.Crime != null ? $"{carater.Crime.Nome}" : String.Empty; this.NomeCidade = carater.Cidade != null ? $"{carater.Cidade.Descricao}" : String.Empty; this.Data = carater.DataHoraDoFato.HasValue ? carater.DataHoraDoFato.Value.ToShortDateString() : String.Empty; this.Hora = carater.DataHoraDoFato.HasValue ? carater.DataHoraDoFato.Value.ToShortTimeString() : String.Empty; this.UrlImagem = $"{caminhoBlob}/{carater.UrlImagem}"; var usuario = carater.UsuarioQueAlterou != null ? carater.UsuarioQueAlterou.PerfilDeUsuario == PerfilDeUsuario.Atenas ? carater.UsuarioQueAlterou.PerfilDeUsuario.ToString() : carater.UsuarioQueAlterou.Nome.Valor : String.Empty; this.UsuarioCadastro = $"Cadastro por {usuario} no dia {carater.DataDoCadastro.ToString("dd/MM")} às {carater.DataDoCadastro.ToString("HH:mm")}"; this.SituacaoDoCarater = (int)carater.SituacaoDoCarater; this.CssTipoCrime = RetornaCssCrime(NomeCrime); if (carater.Veiculo != null) { this.Placa = carater.Veiculo.Placa; this.UfVeiculo = carater.Veiculo.Uf; this.MunicipioVeiculo = carater.Veiculo.Municipio; this.IdVeiculo = carater.Veiculo.Id; this.ModeloVeiculo = carater.Veiculo.Modelo; this.MarcaVeiculo = carater.Veiculo.Marca; this.AnoVeiculo = carater.Veiculo.Ano; this.CorVeiculo = carater.Veiculo.Cor; this.ChassiVeiculo = carater.Veiculo.Chassi; this.ChassiVeiculoTratado = !String.IsNullOrEmpty(carater.Veiculo.Chassi) ? carater.Veiculo.Chassi.Length > 4 ? carater.Veiculo.Chassi.Substring(carater.Veiculo.Chassi.Length - 5) : carater.Veiculo.Chassi : String.Empty; this.Renavam = carater.Veiculo.Renavam; this.Motor = carater.Veiculo.Motor; this.UltimoCRV = !String.IsNullOrEmpty(carater.Veiculo.UltimoCRV) ? Convert.ToDateTime(carater.Veiculo.UltimoCRV).ToShortDateString() : String.Empty; this.AtualizacaoVeiculo = carater.Veiculo.Atualizacao.ToString(); this.Situacao = carater.Veiculo.Situacao; if (carater.Veiculo.Proprietario != null) { this.Proprietario = new ModeloDeProprietario(carater.Veiculo.Proprietario); } if (carater.Veiculo.Possuidor != null) { this.Possuidor = new ModeloDePossuidor(carater.Veiculo.Possuidor); } } if (situacoesBaixas.Contains(carater.SituacaoDoCarater)) { this.RealizouBaixa = true; this.DescricaoLocalizacao = carater.DescricaoLocalizado; var dataHora = carater.DataHoraLocalizacao.HasValue ? carater.DataHoraLocalizacao.Value : DateTime.MinValue; this.CidadeLocalizacao = carater.CidadeLocalizado != null ? $" - Cidade: {carater.CidadeLocalizado.Descricao}" : String.Empty; this.UsuarioLocalizacao = $"Baixa por {usuario} no dia {dataHora.ToString("dd/MM")} às {dataHora.ToString("HH:mm")}"; } carater.HistoricosDeCaraters.Where(a => !a.Excluido).OrderByDescending(a => a.DataDoCadastro).ToList().ForEach(a => this.HistoricosDeCaraters.Add(new ModeloDeHistoricoDeCaraterDaLista(a, carater.Fotos.ToList()))); carater.HistoricosDePassagens.Where(a => !a.Excluido).OrderByDescending(a => a.DataDoCadastro).ToList().ForEach(a => this.HistoricosDePassagens.Add(new ModeloDeHistoricoDePassagensDaLista(a, ehCelular))); carater.Fotos.Where(a => a.Ativo).ToList().ForEach(a => this.Fotos.Add(new ModeloDeFotosDaLista(a))); this.SeloAtenas = carater.SeloAtenas; this.Excluido = carater.Excluido; }