Esempio n. 1
0
        public void SendNotificationEmailTask(TipoNotificacion tipoNotificacion, TipoComentario tipoComentario, TipoPQRS tipoPQRS, int RecordId, int Order, int DataId, int CommentId, string UsuarioNombre, string AppLink)
        {
            var formato = new Formato();

            try
            {
                formato = db.Recruitments.Include(d => d.UsuarioCreacion).Include(d => d.Analista).Where(d => d.RecruitmentId == DataId)
                          .Select(d => new Formato {
                    TipoPQRS       = tipoPQRS,
                    Id             = d.RecruitmentId,
                    AnalistaId     = (d.Analista == null) ? "" : d.Analista.UsuarioNombre,
                    AnalistaCorreo = (d.Analista == null) ? "" : d.Analista.UsuarioCorreo,
                    NroTracking    = (d.NroTracking == null) ? "" : d.NroTracking
                }).FirstOrDefault();

                List <Mails> mails = new List <Mails>();

                string subject = "AIS - ";
                subject += $"[{formato.NroTracking}]: {formato.Asunto}  ({tipoNotificacion.ToString()})";
                string msg    = $"The user <b>{UsuarioNombre}</b> ";
                string action = "Details";


                bool flagDestinatarios = false;
                //Primer paso ( se crear el ticket de PQRS)
                if (tipoNotificacion == TipoNotificacion.CreateFormat)
                {
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                    flagDestinatarios = true;
                }
                else if (tipoNotificacion == TipoNotificacion.Assign)
                {
                    /* msg += $"has assigned a new CS analyst ({formato.AnalistaId})";
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefault();
                     * msg += $"<b>Reason</b>: {step.MotivoPQRSNombre}<br />";
                     * var comment = db.PQRSRecordComentarios.Where(c => c.Id == CommentId).FirstOrDefault();
                     * msg += $"<b>Date Comment</b>: {comment.FechaCreacion}<br />";
                     * msg += $"<b>Comment</b>: {comment.Comentario}<br />";
                     * flagDestinatarios = step.EnviaCorreoDestinatarios ?? false;*/

                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                }
                else if (tipoNotificacion == TipoNotificacion.Comment)
                {
                    /* msg += $"has added a new comment";
                     *
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     *
                     * var comment = db.PQRSRecordComentarios.Where(c => c.Id == CommentId).FirstOrDefault();
                     * msg += $"<b>Date Comment</b>: {comment.FechaCreacion}<br />";
                     * msg += $"<b>Comment</b>: {comment.Comentario}<br />";*/

                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                }
                else if (tipoNotificacion == TipoNotificacion.CurrentStep)
                {
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";

                    /*
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefault();
                     * if (tipoComentario == TipoComentario.Approval)
                     * {
                     *  msg += $"has approved <b>Step:</b> {step.FlujoPQRSNombre} <b>Reason PQRS:</b> {step.MotivoPQRSNombre}";
                     * }
                     * else if (tipoComentario == TipoComentario.Rejection)
                     * {
                     *  msg += $"has rejected <b>Step:</b> {step.FlujoPQRSNombre} <b>Reason PQRS:</b> {step.MotivoPQRSNombre}";
                     * }
                     *
                     *
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     * msg += $"<b>Reason</b>: {step.MotivoPQRSNombre}<br />";
                     * var comment = db.PQRSRecordComentarios.Where(c => c.Id == CommentId).FirstOrDefault();
                     * msg += $"<b>Date Comment</b>: {comment.FechaCreacion}<br />";
                     * msg += $"<b>Comment</b>: {comment.Comentario}<br />";
                     * var userStep = db.PQRSRecordUsuarios
                     *                      .Include(ru => ru.Usuario)
                     *                      .Where(ru => ru.PQRSRecordId == RecordId && ru.PQRSRecordOrder == Order).ToList();
                     * foreach (var u in userStep)
                     * {
                     *  mails.Add(new Mails { to = u.Usuario.UsuarioCorreo, toName = u.Usuario.UsuarioNombre });
                     * }
                     * flagDestinatarios = step.EnviaCorreoDestinatarios ?? false;
                     */
                }
                else if (tipoNotificacion == TipoNotificacion.NextStep)
                {
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";

                    /*
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefaultAsync();
                     * msg = $"You have pending an action to do in system, please log in here to continue";
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     *
                     * var userStep = db.PQRSRecordUsuarios
                     *                      .Include(ru => ru.Usuario)
                     *                      .Where(ru => ru.PQRSRecordId == RecordId && ru.PQRSRecordOrder == Order).ToList();
                     * mails.Clear();
                     * foreach (var u in userStep)
                     * {
                     *  mails.Add(new Mails { to = u.Usuario.UsuarioCorreo, toName = u.Usuario.UsuarioNombre });
                     * }
                     * flagDestinatarios = false;
                     */
                }
                else if (tipoNotificacion == TipoNotificacion.Close)
                {
                    /*
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefault();
                     * msg = $"has closed  <b>Reason PQRS:</b> {step.MotivoPQRSNombre}";
                     * var comment = db.PQRSRecordComentarios.Where(c => c.Id == CommentId).FirstOrDefault();
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     * msg += $"<b>Date Comment</b>: {comment.FechaCreacion}<br />";
                     * msg += $"<b>Comment</b>: {comment.Comentario}<br />";
                     * flagDestinatarios = step.EnviaCorreoDestinatarios ?? false;
                     */
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                }
                else if (tipoNotificacion == TipoNotificacion.Complete)
                {
                    /*
                     * var step = db.PQRSRecords.Where(r => r.Id == RecordId && r.Order == Order).FirstOrDefault();
                     * msg += $"has completed  ";
                     *
                     * msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                     * msg += $"<b>Date</b>: {formato.FechaCreacion}<br />";
                     * msg += $"<b>Priority</b>: {formato.Prioridad.ToString()}<br />";
                     * msg += $"<b>Note</b>: {formato.Observacion}<br />";
                     *
                     * flagDestinatarios = step.EnviaCorreoDestinatarios ?? false;
                     */
                    msg += $"has created a new Recruitment({formato.TipoPQRS.ToString()})";
                    msg += $"<br /><br /><b>PQRS Information</b><br /><br />";
                    msg += $"<b>Testecorreo</b>: {formato.AnalistaCorreo}<br />";
                    msg += $"<b>Testeanalista</b>: {formato.AnalistaId}<br />";
                    msg += $"<b>Traking</b>: {formato.NroTracking}<br />";
                    msg += $"<b>Recruitment</b>: {formato.Id}<br />";
                }

                //Destinatario del formato
                if (flagDestinatarios)
                {
                    var destinatarios = formato.Destinatarios.Split(',');
                    foreach (var d in destinatarios)
                    {
                        if (d != null && d != "")
                        {
                            mails.Add(new Mails {
                                to = d, toName = d
                            });
                        }
                    }
                }

                //if (tipoNotificacion != TipoNotificacion.CreateFormat)
                msg += $"<br /><br /><a style='color:#22BCE5' href={{url}}/PQRS/{action}?TipoPQRS={tipoPQRS}&DataId={DataId}&RecordId={RecordId}>Click here to view the PQRS.</a>";

                foreach (var m in mails)
                {
                    Task.Run(() => Fn.SendHtmlEmail("*****@*****.**", "Cayo Diebe", subject, msg, AppLink));
                    //Task.Run(() => Fn.SendHtmlEmail(m.to, m.toName, subject, msg, AppLink));
                }
            }
            catch
            {
                return;
            }

            // await Task.Run(() => Fn.SendHtmlEmail(to, toName, subject, msg));
        }