public override Validate AfterInsert(ChamadoViewModel value) { EmpresaSecurity <SecurityContext> empresaSecurity = new EmpresaSecurity <SecurityContext>(); sessaoCorrente = empresaSecurity.getSessaoCorrente(); int _fuso_horario = int.Parse(db.Parametros.Find((int)DWM.Models.Enumeracoes.Enumeradores.Param.FUSO_HORARIO).valor); #region Alerta 1 AlertaRepository alerta = new AlertaRepository() { empresaId = sessaoCorrente.empresaId, usuarioId = (from al in db.AreaAtendimentos where al.areaAtendimentoId == value.areaAtendimentoId select al.usuario1Id).First(), sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now.AddHours(_fuso_horario), linkText = "<span class=\"label label-warning\">Atendimento</span>", url = "../Atendimento/Create?chamadoId=" + value.chamadoId.ToString() + "&fluxo=2", mensagemAlerta = "<b>" + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.assunto + "</p>" }; alerta.uri = value.uri; AlertaRepository r = empresaSecurity.InsertAlerta(alerta); if (r.mensagem.Code > 0) { throw new DbUpdateException(r.mensagem.Message); } #endregion #region Alerta 2 int?usuario2Id = (from al in db.AreaAtendimentos where al.areaAtendimentoId == value.areaAtendimentoId select al.usuario2Id).FirstOrDefault(); if (usuario2Id.HasValue) { AlertaRepository alerta2 = new AlertaRepository() { empresaId = sessaoCorrente.empresaId, usuarioId = usuario2Id.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now.AddHours(_fuso_horario), linkText = "<span class=\"label label-warning\">Atendimento</span>", url = "../Atendimento/Create?chamadoId=" + value.chamadoId.ToString() + "&fluxo=2", mensagemAlerta = "<b>" + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.assunto + "</p>" }; alerta2.uri = value.uri; AlertaRepository r2 = empresaSecurity.InsertAlerta(alerta2); if (r2.mensagem.Code > 0) { throw new DbUpdateException(r2.mensagem.Message); } } #endregion return(new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS }); }
public override Validate AfterInsert(RegisterViewModel value) { EmpresaSecurity <SecurityContext> empresaSecurity = new EmpresaSecurity <SecurityContext>(); int _sistemaId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["sistemaId"]); int _areaAtendimentoId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["secretariaId"]); // Inserir os alertas para os usuários da secretaria int[] _usuarioId = (from aa in db.AreaAtendimentos where aa.areaAtendimentoId == _areaAtendimentoId select aa.usuario1Id).ToArray(); // obtêm o chamadoId int?_chamadoId = (from cham in db.Chamados.AsEnumerable() where cham.associadoId == value.associadoId.Value select cham.chamadoId).LastOrDefault(); for (int i = 0; i <= _usuarioId.Count() - 1; i++) { AlertaRepository alerta = new AlertaRepository() { usuarioId = _usuarioId[i], sistemaId = _sistemaId, dt_emissao = DateTime.Now, linkText = "<span class=\"label label-warning\">Novo Usuário</span>", url = "../Atendimento/Create?chamadoId=" + _chamadoId.ToString() + "&fluxo=2", mensagemAlerta = "<b>" + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + chamadoViewModel.assunto + "</p>" }; alerta.uri = value.uri; AlertaRepository r = empresaSecurity.InsertAlerta(alerta); if (r.mensagem.Code > 0) { throw new DbUpdateException(r.mensagem.Message); } } return(new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS }); }
public override Validate AfterInsert(AtendimentoViewModel value) { int _fuso_horario = int.Parse(db.Parametros.Find((int)DWM.Models.Enumeracoes.Enumeradores.Param.FUSO_HORARIO).valor); EmpresaSecurity <SecurityContext> empresaSecurity = new EmpresaSecurity <SecurityContext>(); int?_usuarioId = null; sessaoCorrente = empresaSecurity.getSessaoCorrente(); #region Alerta 1 if (value.fluxo == "1") // 1-associado/sindmed (o alerta deve ser criado p/ o funcionário) { if (value.chamado.usuarioId == null) { _usuarioId = (from aa in db.AreaAtendimentos where aa.areaAtendimentoId == value.chamado.areaAtendimentoId select aa.usuario1Id).First(); } else { _usuarioId = value.chamado.usuarioId; } } else { _usuarioId = (from ass in db.Associados where ass.associadoId == value.chamado.associadoId select ass.usuarioId).First(); } AlertaRepository alerta = new AlertaRepository() { empresaId = sessaoCorrente.empresaId, usuarioId = _usuarioId.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now.AddHours(_fuso_horario), linkText = getLinkTextAlerta(), url = "../Atendimento/Create?chamadoId=" + value.chamadoId.ToString() + "&fluxo=" + (value.fluxo == "2" ? "1" : "2"), mensagemAlerta = "<b>" + DateTime.Now.AddHours(_fuso_horario).ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.chamado.assunto + "</p>" }; alerta.uri = value.uri; AlertaRepository r = empresaSecurity.InsertAlerta(alerta); if (r.mensagem.Code > 0) { throw new DbUpdateException(r.mensagem.Message); } #endregion #region Alerta 2 if (value.fluxo == "1" && value.chamado.usuarioId == null) // 1-associado/sindmed (o alerta deve ser criado p/ o funcionário) { _usuarioId = (from aa in db.AreaAtendimentos where aa.areaAtendimentoId == value.chamado.areaAtendimentoId select aa.usuario2Id).FirstOrDefault(); if (_usuarioId.HasValue) { AlertaRepository alerta2 = new AlertaRepository() { empresaId = sessaoCorrente.empresaId, usuarioId = _usuarioId.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now.AddHours(_fuso_horario), linkText = "<span class=\"label label-primary\">Resposta</span>", url = "../Atendimento/Create?chamadoId=" + value.chamadoId.ToString() + "&fluxo=2", mensagemAlerta = "<b>" + DateTime.Now.AddHours(_fuso_horario).ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.chamado.assunto + "</p>" }; alerta2.uri = value.uri; AlertaRepository r2 = empresaSecurity.InsertAlerta(alerta2); if (r2.mensagem.Code > 0) { throw new DbUpdateException(r2.mensagem.Message); } } } #endregion #region Enviar e-mail ao associado if (db.Parametros.Find((int)DWM.Models.Enumeracoes.Enumeradores.Param.HABILITA_EMAIL).valor == "S" && value.fluxo == "2") { int _sistemaId = int.Parse(db.Parametros.Find((int)DWM.Models.Enumeracoes.Enumeradores.Param.SISTEMA).valor); SendEmail sendMail = new SendEmail(); Empresa empresa = seguranca_db.Empresas.Find(sessaoCorrente.empresaId); Sistema sistema = seguranca_db.Sistemas.Find(_sistemaId); Associado associado = db.Associados.Find(value.chamado.associadoId); MailAddress sender = new MailAddress(empresa.nome + " <" + empresa.email + ">"); List <string> recipients = new List <string>(); recipients.Add(associado.nome + "<" + associado.email1 + ">"); string Subject = "Re: Chamado " + value.chamado.chamadoId.ToString() + "-" + value.chamado.assunto + " - " + empresa.nome; string Text = "<p>Atendimento de chamado</p>"; string Html = "<p><span style=\"font-family: Verdana; font-size: larger; color: #656464\">" + sistema.descricao + "</span></p>" + "<p><span style=\"font-family: Verdana; font-size: xx-large; color: #0094ff\">" + associado.nome.ToUpper() + "</span></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Essa é uma mensagem de notificação de atendimento de chamado. Sua solicitação foi respondida. Acesse o sistema para ler o retorno da administração.</span></p>"; Html += "<p></p>" + "<p> </p>" + "<p> </p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Obrigado,</span></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Administração " + empresa.nome + "</span></p>"; Validate result = sendMail.Send(sender, recipients, Html, Subject, Text); if (result.Code > 0) { result.MessageBase = "Resposta de chamado cadastrada com sucesso, mas por falhas de comunicação não foi possível enviar o e-mail de notificação ao usuário. "; throw new App_DominioException(result); } } #endregion return(new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS }); }
public override EnviarEmailViewModel ExecProcess(EnviarEmailViewModel value, Crud operation) { Validate result = new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS }; EmpresaSecurity <SecurityContext> empresaSecurity = new EmpresaSecurity <SecurityContext>(); #region Enviar e-mail ao usuário Empresa empresa = seguranca_db.Empresas.Find(value.empresaId); SendEmail sendMail = new SendEmail(); MailAddress sender = new MailAddress(empresa.nome + " <" + empresa.email + ">"); List <string> recipients = new List <string>(); List <string> carbon = new List <string>(); recipients.Add(empresa.nome + " <" + empresa.email + ">"); foreach (AssociadoViewModel a in value.Destinatarios) { if (a.email1 != null && a.email1.Trim() != "") { carbon.Add(a.nome + "<" + a.email1 + ">"); } } string Subject = value.assunto; string Text = "<p>Enviar e-mail ao associado</p>"; string Html = value.mensagemEmail; result = sendMail.Send(sender, recipients, Html, Subject, Text, carbon); if (result.Code > 0) { throw new ArgumentException(result.MessageBase); } #endregion #region Enviar alerta foreach (AssociadoViewModel a in value.Destinatarios.Where(info => info.usuarioId.HasValue)) { AlertaRepository alerta = new AlertaRepository() { usuarioId = a.usuarioId.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now, linkText = "<span class=\"label label-primary\">E-mail</span>", url = "#", mensagemAlerta = "<b>" + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.assunto + "</p>" }; alerta.uri = value.uri; AlertaRepository r = empresaSecurity.InsertAlerta(alerta); if (r.mensagem.Code > 0) { throw new DbUpdateException(r.mensagem.Message); } } return(value); #endregion }