public void EnviarEmailConfirmacao(TicketMensagemRequest request,
                                    TicketMensagem ticketMensagem,
                                    TicketResponse ticket,
                                    AtendenteEmpresa atendenteEmpresa,
                                    UsuarioCliente usuarioCliente,
                                    List <AtendenteEmpresa> listaAtendentes)
 {
     //Se for mensagem enviada pelo atendimento (suporte) e interno
     if (request.UserType == "S" && request.Interno)
     {
         //Se for nova mensagem interna criada pelo suporte
         Emailer.EnviarEmailInterno(ticket, ticketMensagem, atendenteEmpresa, listaAtendentes);
     }
     else
     {
         if (request.UserType == "S" && !request.Interno)
         {
             //Se for nova mensagem (não interna) criada pelo suporte
             Emailer.EnviarEmailNovaMensagemCliente(ticket, ticketMensagem);
         }
         else
         {
             if (request.UserType == "C")
             {
                 //Se for nova mensagem criada pelo cliente
                 Emailer.EnviarEmailNovaMensagemSuporte(ticket, ticketMensagem, usuarioCliente, listaAtendentes);
             }
         }
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Método que envia email para o cliente, confirmando envio de uma nova mensagem
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="ticketMensagem"></param>
        public static void EnviarEmailNovaMensagemCliente(TicketResponse ticket, TicketMensagem ticketMensagem)
        {
            var subject   = string.Empty;
            var emailFrom = string.Empty;

            try
            {
                subject   = "Confirmação de envio de nova mensagem - Ticket #" + ticket.Id.ToString();
                emailFrom = ConfigurationManager.AppSettings["EmailSuporte"].ToString();

                Email.SendNetEmail(emailFrom, ticket.UsuarioCliente.Email, null, Email.FormatarCorpoNovaMensagemCliente(ticket, ticketMensagem), subject, true, System.Net.Mail.MailPriority.High);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Método que envia email para o suporte, informando de nova mensagem interna
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="ticketMensagem"></param>
        /// <param name="atendenteEmpresa"></param>
        /// <param name="listaAtendentes"></param>
        public static void EnviarEmailInterno(TicketResponse ticket, TicketMensagem ticketMensagem, AtendenteEmpresa atendenteEmpresa, List <AtendenteEmpresa> listaAtendentes)
        {
            var subject       = string.Empty;
            var emailFrom     = string.Empty;
            var emailsEmCopia = MontarListaEmailsEmCopia(listaAtendentes);

            try
            {
                subject   = "Confirmação de novo atendimento interno - Ticket #" + ticket.Id.ToString();
                emailFrom = ConfigurationManager.AppSettings["EmailSuporte"].ToString();

                Email.SendNetEmail(emailFrom, atendenteEmpresa.Email, emailsEmCopia, Email.FormatarCorpoNovaMensagemInterna(ticket, ticketMensagem, atendenteEmpresa), subject, true, System.Net.Mail.MailPriority.High);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Método que envia email para o suporte, confirmando nova mensagem
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="ticketMensagem"></param>
        /// <param name="usuarioCliente"></param>
        /// <param name="listaAtendentes"></param>
        public static void EnviarEmailNovaMensagemSuporte(TicketResponse ticket, TicketMensagem ticketMensagem, UsuarioCliente usuarioCliente, List <AtendenteEmpresa> listaAtendentes)
        {
            var subject       = string.Empty;
            var emailFrom     = string.Empty;
            var emailsEmCopia = MontarListaEmailsEmCopia(listaAtendentes);

            try
            {
                subject   = "Confirmação de envio de nova mensagem - Ticket #" + ticket.Id.ToString();
                emailFrom = ConfigurationManager.AppSettings["EmailSuporte"].ToString();

                //Envia email para todos os atendentes
                foreach (var atendente in listaAtendentes)
                {
                    Email.SendNetEmail(emailFrom, atendente.Email, null, Email.FormatarCorpoNovaMensagemSuporte(ticket, usuarioCliente, ticketMensagem), subject, true, System.Net.Mail.MailPriority.High);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
 public bool Update(TicketMensagem entity)
 {
     return(_repository.Update(entity));
 }
 public void Insert(ref TicketMensagem entity)
 {
     _repository.Insert(ref entity);
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Método que formata o corpo do email
        /// enviado para o suporte com os dados
        /// do atendimento solicitado no site Algorix
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="usuarioCliente"></param>
        /// <param name="ticketMensagem"></param>
        /// <returns></returns>
        public static string FormatarCorpoNovaMensagemSuporte(TicketResponse ticket, UsuarioCliente usuarioCliente, TicketMensagem ticketMensagem)
        {
            var corpo = new StringBuilder();

            var logo = ConfigurationManager.AppSettings["LogoCabecalho"];

            corpo.Append("<html>");
            corpo.Append("<head>");
            corpo.Append("<title>SAC - Sistema de Atendimento ao Cliente</title>");
            corpo.Append("<style type=\"text/css\">");
            corpo.Append("body");
            corpo.Append("{");
            corpo.Append("    margin:0px;");
            corpo.Append("    padding:0px;");
            corpo.Append("    font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;");
            corpo.Append("    height:100%;");
            corpo.Append("    width:100%;");
            corpo.Append("    font-size:11pt;");
            corpo.Append("}");
            corpo.Append("</style>");
            corpo.Append("</head>");
            corpo.Append("<body>");
            corpo.Append("<table cellspacing=\"4\" cellpadding=\"4\" border=\"0\" style=\"width:700px;\">");
            corpo.Append("<tr><td style=\"text-align: left; vertical-align: middle\"><img src=\"" + logo + "\" alt=\"\" /></td></tr>");
            corpo.Append("<tr><td><br />");
            corpo.Append("Prezado(a) Suporte,<br /><br />");

            corpo.Append("Confirmado o recebimento de nova mensagem de atendimento - Ticket " + ticket.Titulo + " - (#" + ticket.Id + "), criado pelo usuário " + usuarioCliente.Nome + ".<br /><br />");

            corpo.Append("</td></tr>");
            corpo.Append("<tr><td><br />");

            corpo.Append("<h3>Ticket</h3><hr><br />");

            corpo.Append("<table style=\"width: 70%;\" cellpadding=\"4\" cellspacing=\"4\">");
            corpo.Append("    <tr><td style=\"width:20%; vertical-align:top\"><strong>Usuário</strong></td>");
            corpo.Append("        <td style=\"width:80%\">" + ticket.UsuarioCliente.Nome + " (" + ticket.UsuarioCliente.Email + ")</td></tr>");
            corpo.Append("    <tr><td style=\"width:20%; vertical-align:top\"><strong>Classificação</strong></td>");
            corpo.Append("        <td>" + ticket.Classificacao.Nome + "</td></tr>");
            corpo.Append("    <tr><td style=\"width:20%; vertical-align:top\"><strong>Categoria</strong></td>");
            corpo.Append("        <td>" + ticket.Categoria.Nome + "</td></tr>");
            corpo.Append("    <tr><td style=\"width:20%; vertical-align:top\"><strong>Título</strong></td>");
            corpo.Append("        <td>" + ticket.Titulo + "</td></tr>");
            corpo.Append("    <tr><td style=\"width:20%; vertical-align:top\"><strong>Descrição</strong></td>");
            corpo.Append("        <td>" + ticket.Descricao.Replace("\n", "<br />").Replace("\r", "") + "</td></tr>");
            corpo.Append("</table>");

            corpo.Append("</td></tr>");
            corpo.Append("<tr><td><br />");

            corpo.Append("<h3>Nova Mensagem</h3><hr><br />");
            corpo.Append("<p>" + ticketMensagem.Descricao.Replace("\n", "<br />").Replace("\r", "") + "</p><br />");

            corpo.Append("Acesse o <a href='" + ConfigurationManager.AppSettings["SistemaAtendimentoAssinatura"] + "'>sistema de atendimento</a> para dar prosseguimento ao suporte.<br /><br />");

            corpo.Append("</td></tr>");
            corpo.Append("<tr><td><br />");

            corpo.Append("Atenciosamente,<br />");
            corpo.Append(ConfigurationManager.AppSettings["TextoAssinatura"] + "<br />");
            corpo.Append("<a href='" + ConfigurationManager.AppSettings["UrlAssinatura"] + "'>" + ConfigurationManager.AppSettings["SiteAssinatura"] + "</a><br />");
            corpo.Append(ConfigurationManager.AppSettings["TelefonesAssinatura"] + "<br />");
            corpo.Append("</td></tr>");
            corpo.Append("</table>");
            corpo.Append("</body>");
            corpo.Append("</html>");

            return(corpo.ToString());
        }