/// <summary> /// Evia o alerta de lançamento em atraso para todos os usuários /// </summary> /// <param name="email">boolean - se vai receber por e-mail ou não</param> /// <param name="sms">boolean - se vai receber por sms ou não</param> /// <param name="telegram">boolean - se vai receber por telegram ou não</param> /// <returns></returns> public virtual void EnviarTodosOsAlertas(bool email = true, bool sms = false) { var modelo = this.GetUsuariosComAtrasoNoEnvio(); if ((modelo == null) || (modelo.Count == 0)) { throw new Exception("O usuário não foi encontrado"); } bool erro = false; string mensagens = ""; foreach (var x in modelo) { try { if (email) { MailServices.Enviar(x.Usuario.EmailPreferencial, "Faz tempo que você não lança suas atividades", string.Format("Detectamos que faz {0} dias que você não lança suas atividades. Por favor lance hoje.", x.DiasUteisSemLancar)); } } catch (Exception err) { erro = true; mensagens += "Ocorreu um erro ao enviar o alerta via e-mail para " + x.Usuario.Login + ": " + err.Message + "<br/>\r\n"; LogServices.LogarException(err); } string smsResult = ""; try { if (sms && x.Usuario.Funcionario != null && !string.IsNullOrWhiteSpace(x.Usuario.Funcionario.Celular)) { smsResult = SMSServices.Enviar(x.Usuario.Funcionario.Celular, x.Usuario.FuncionarioNomeOuLogin, "Faz tempo que você não lança suas atividades", string.Format("Detectamos que faz {0} dias que você não lança suas atividades. Por favor lance hoje.", x.DiasUteisSemLancar)); LogServices.Logar(smsResult); } } catch (Exception err) { erro = true; mensagens += "Ocorreu um erro ao enviar o alerta via sms para " + x.Usuario.Login + ": " + err.Message + "<br/>\r\n"; LogServices.LogarException(err); } } if (erro) { throw new Exception("Erros ocorridos: " + mensagens); } }
/// <summary> /// Evia o alerta de lançamento em atraso para um usuário /// </summary> /// <param name="idUsuario">id do usuário que vai receber o alerta</param> /// <param name="email">boolean - se vai receber por e-mail ou não</param> /// <param name="sms">boolean - se vai receber por sms ou não</param> /// <param name="telegram">boolean - se vai receber por telegram ou não</param> /// <returns></returns> public virtual void EnviarAlerta(int idUsuario, bool email = true, bool sms = false) { string smsResult = ""; if (idUsuario == 0) { throw new Exception("O usuário não foi informado"); } var modelo = this.GetUltimosLancamentosById(idUsuario); if (modelo == null) { throw new Exception("O usuário não foi encontrado"); } try { if (email) { MailServices.Enviar(modelo.Usuario.EmailPreferencial, "Faz tempo que você não lança suas atividades", string.Format("Detectamos que faz {0} dias que você não lança suas atividades. Por favor lance hoje.", modelo.DiasUteisSemLancar)); } } catch (Exception err) { LogServices.LogarException(err); throw new Exception("Erro ao enviar email: " + err.Message, err); } try { if (sms && modelo.Usuario.Funcionario != null && !string.IsNullOrWhiteSpace(modelo.Usuario.Funcionario.Celular)) { smsResult = SMSServices.Enviar(modelo.Usuario.Funcionario.Celular, modelo.Usuario.FuncionarioNomeOuLogin, "Faz tempo que você não lança suas atividades", string.Format("Detectamos que faz {0} dias que você não lança suas atividades. Por favor lance hoje.", modelo.DiasUteisSemLancar)); LogServices.Logar(smsResult); } } catch (Exception err) { LogServices.LogarException(err); throw new Exception("Erro ao enviar sms: " + err.Message, err); } }