private bool EnviarEmailConversa(PTVComunicador comunicador, BancoDeDados bancoDeDados) { try { Email email = null; PTVConversa conversa = comunicador.Conversas[0]; PTVComunicador comunicadorCompleto = _da.ObterComunicadorSemConversas(comunicador.PTVId, bancoDeDados); if (!String.IsNullOrEmpty(conversa.Texto)) { string textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailComunicadorSolicitacaoPTV); if (!String.IsNullOrWhiteSpace(textoEmail)) { Dictionary <String, String> emailKeys = new Dictionary <string, string>(); emailKeys.Add("[data da conclusão]", conversa.DataConversa.DataHoraTexto); emailKeys.Add("[número do PTV]", comunicadorCompleto.PTVNumero.ToString()); emailKeys.Add("[Situação]", _da.BuscarSituacaoPTV(comunicadorCompleto.PTVId, bancoDeDados)); foreach (string key in emailKeys.Keys) { textoEmail = textoEmail.Replace(key, emailKeys[key]); } email = new Email(); email.Assunto = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla); email.Texto = textoEmail; email.Tipo = eEmailTipo.ComunicadorPTV; email.Codigo = conversa.Id; } } if (email != null) { List <String> lstEmail = _da.ObterEmailsCredenciado(comunicador.PTVId, bancoDeDados); if (lstEmail != null && lstEmail.Count > 0) { email.Destinatario = String.Join(", ", lstEmail.ToArray()); EmailBus emailBus = new EmailBus(); emailBus.Enviar(email); } } } catch (Exception ex) { Validacao.AddErro(ex); } return(Validacao.EhValido); }
public bool Analisar(PTV eptv) { try { Tecnomapas.EtramiteX.Credenciado.Model.ModuloPTV.Business.PTVBus ptvCredenciadoBus = new Tecnomapas.EtramiteX.Credenciado.Model.ModuloPTV.Business.PTVBus(); PTV eptvBanco = ptvCredenciadoBus.Obter(eptv.Id); if (!_validar.Analisar(eptv, eptvBanco)) { return(false); } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDadosInterno = BancoDeDados.ObterInstancia(SchemaUsuarioInterno)) { bancoDeDadosInterno.IniciarTransacao(); using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(SchemaUsuarioCredenciado)) { bancoDeDadosCredenciado.IniciarTransacao(); _da.AnalizarEPTV(eptv, bancoDeDadosCredenciado); if (eptv.Situacao == (int)eSolicitarPTVSituacao.Aprovado) { eptvBanco.ValidoAte = eptv.ValidoAte; eptvBanco.ResponsavelTecnicoId = eptv.ResponsavelTecnicoId; eptvBanco.ResponsavelTecnicoNome = eptv.ResponsavelTecnicoNome; eptvBanco.LocalEmissaoId = eptv.LocalEmissaoId; eptvBanco.TemAssinatura = _da.ExisteAssinaturaDigital(eptv.ResponsavelTecnicoId); if (!_validar.Importar(eptvBanco)) { return(Validacao.EhValido); } if (eptvBanco.Anexos.Any()) { var arquivoBusCred = new ArquivoBus(eExecutorTipo.Credenciado); var arquivoBusInst = new ArquivoBus(eExecutorTipo.Interno); foreach (var anexo in eptvBanco.Anexos) { anexo.Arquivo = arquivoBusInst.Salvar(arquivoBusCred.Obter(anexo.Arquivo.Id.Value)); } } try { _da.Importar(eptvBanco, bancoDeDadosInterno); } catch (Exception exc) { if (exc.Message.Contains("UK_TAB_PTV_EPTV")) { Validacao.Add(new Mensagem { Texto = "O EPTV já foi importado para o institucional.", Tipo = eTipoMensagem.Advertencia }); return(Validacao.EhValido); } throw exc; } } string textoEmail = string.Empty; switch (eptv.Situacao) { case 3: eptvBanco.SituacaoTexto = "Aprovado"; textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailAprovarSolicitacaoPTV); break; case 4: eptvBanco.SituacaoTexto = "Rejeitado"; textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailRejeitarSolicitacaoPTV) + eptv.SituacaoMotivo; break; case 5: eptvBanco.SituacaoTexto = "Fiscalização Agendada"; textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailAgendarFiscalizacaoSolicitacaoPTV); break; } #region [ Enviar E-mail ] if (eptv.Situacao == (int)eSolicitarPTVSituacao.Bloqueado) { PTVComunicador comunicador = new PTVComunicador(); comunicador.Id = _da.ObterIDComunicador(eptv.Id); comunicador.PTVId = eptv.Id; comunicador.PTVNumero = eptv.Numero; comunicador.liberadoCredenciado = true; var conversa = new PTVConversa(); conversa.Texto = eptv.SituacaoMotivo; comunicador.Conversas.Add(conversa); SalvarConversa(comunicador, bancoDeDadosInterno, bancoDeDadosCredenciado); } else { var emailKeys = new Dictionary <string, string> { { "[data situacao]", DateTime.Today.ToShortDateString() }, { "[hora situacao]", DateTime.Now.ToShortTimeString() }, { "[numero]", eptvBanco.Numero.ToString() }, { "[local vistoria]", eptvBanco.LocalVistoriaTexto }, { "[hora vistoria]", eptv.DataHoraVistoriaTexto } }; foreach (var item in emailKeys) { textoEmail = textoEmail.Replace(item.Key, item.Value); } var email = new Email(); email.Assunto = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla); email.Texto = textoEmail; email.Tipo = eEmailTipo.AnaliseEPTV; email.Codigo = eptv.Id; List <String> lstEmail = _da.ObterEmailsCredenciado(eptv.Id, bancoDeDadosCredenciado); if (lstEmail != null && lstEmail.Count > 0) { email.Destinatario = String.Join(", ", lstEmail.ToArray()); EmailBus emailBus = new EmailBus(); emailBus.Enviar(email, bancoDeDadosInterno); } } #endregion bancoDeDadosInterno.Commit(); bancoDeDadosCredenciado.Commit(); } } } catch (Exception ex) { Validacao.AddErro(ex); } return(Validacao.EhValido); }