public void Process(Message message, MailTemplateEnums mailTemplateEnums)
        {
            try
            {
                //System.Diagnostics.Debugger.Launch();
                MailTemplate mailTemplate = CommunicationContainer.MailTemplatesBuilder
                                            .GetMailTemplateById((int)mailTemplateEnums);
                var    to    = SetSendTo(mailTemplate, message);
                var    param = GetParam(message);
                string body  = PrepareBodyMessage(param, mailTemplate.EmailContent);

                if (mailTemplate.EmailDisclaimerNeeded)
                {
                    body += mailTemplate.EmailDisclaimerContent;
                }

                if (!string.IsNullOrEmpty(message.ImageBase64))
                {
                    body = body.Replace("<img style=\"width: 150px\" src=\"cid:image1\"/>", "");
                }

                CommunicationContainer.MailClient.Send(body, mailTemplate.Title.Replace("{DaysLeft}", "").Replace("{TimeInterval}", message.TimeInterval ?? ""), to,
                                                       mailTemplate.SenderEmail, true, message.ImageBase64, message.MailAttachments);
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public void Process(Message message, MailTemplateEnums mailTemplateEnums)
        {
            SmsTemplate smsTemplate = CommunicationContainer.MailTemplatesBuilder
                                      .GetSmsTemplateById((int)mailTemplateEnums);

            string expiringDates = String.Empty;

            if (message.ExpiringDates != null)
            {
                expiringDates = message.ExpiringDates.ToString();
            }

            Dictionary <string, string> param = new Dictionary <string, string>()
            {
                ["{User Name}"]        = message.UserName ?? "",
                ["{Confirmation}"]     = message.ConfirmationNumber ?? "N/A",
                ["{Employee Name}"]    = message.EmployeeName ?? "",
                ["{Substitute Name}"]  = message.SubstituteName ?? "",
                ["{Position}"]         = message.Position ?? "",
                ["{Date}"]             = message.DateToDisplayInSMS ?? "",
                ["{Start Time}"]       = message.StartTimeSMS ?? "",
                ["{End Time}"]         = message.EndTimeSMS ?? "",
                ["{Leave Type}"]       = message.Reason ?? "",
                ["{Admin Name}"]       = message.ApprovedBy ?? "",
                ["{Subject}"]          = !string.IsNullOrEmpty(message.Subject) ? message.Subject + "-" : "N/A-",
                ["{Grade}"]            = !string.IsNullOrEmpty(message.Grade) ? message.Grade : "N/A",
                ["{StartDateAndTime}"] = !string.IsNullOrEmpty(message.StartTime) ? message.StartTime + " " + message.StartDate : "",
                ["{EndDateAndTime}"]   = !string.IsNullOrEmpty(message.EndTime) ? message.EndTime + " " + message.EndDate : "",
                ["{Location}"]         = !string.IsNullOrEmpty(message.School) && message.School != "N/A" ? message.School : !string.IsNullOrEmpty(message.Location) && message.School == "N/A" ? message.Location : "",
                ["{Notes}"]            = !string.IsNullOrEmpty(message.Notes) ? message.Notes : "",
                ["{Duration}"]         = message.Duration ?? "",
                ["{AcceptUrl}"]        = message.AcceptUrl ?? "",
                ["{DeclineUrl}"]       = message.DeclineUrl ?? "",
                ["{resetPasswordKey}"] = !string.IsNullOrEmpty(message.resetPassUrl) ? message.resetPassUrl : "",
                ["{photo}"]            = !string.IsNullOrEmpty(message.ProfilePicUrl) ? message.ProfilePicUrl : "",
                ["{newLine}"]          = Environment.NewLine,
            };

            string body = PrepareBodyMessage(param, smsTemplate.TextContent);

            if (!string.IsNullOrEmpty(message.FromPhoneNumber))
            {
                CommunicationContainer.MessagingClient.SendMessage(message.FromPhoneNumber.Trim(), message.PhoneNumber, body, message.AbsenceId);
            }
            else
            {
                CommunicationContainer.MessagingClient.SendMessage(message.PhoneNumber, body, message.AbsenceId);
            }
        }
        public async Task ProcessAsync(Message message, MailTemplateEnums mailTemplateEnums)
        {
            var data      = DataProtectionProvider.Create("Subzz");
            var protector = data.CreateProtector("secretAdmin@0192837465");

            try
            {
                var configurationBuilder = new ConfigurationBuilder();
                var path = Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json");
                configurationBuilder.AddJsonFile(path, false);
                var    root   = configurationBuilder.Build();
                string apiUrl = root.GetSection("URL").GetSection("api").Value;
                string web    = root.GetSection("URL").GetSection("web").Value;
                //Private Key
                var desKey = root.GetSection("KEY").GetSection("SECkey").Value;

                // Encryption
                var encEmail     = EncryptProvider.DESEncrypt(message.SendTo, desKey);
                var encPassword  = EncryptProvider.DESEncrypt(message.Password, desKey);
                var encAbsenceId = EncryptProvider.DESEncrypt(message.AbsenceId.ToString(), desKey);
                message.ProfilePicUrl     = apiUrl + "/Profile/" + message.Photo;
                message.UnsubscriptionUrl = web + "/unsubscribed/?email=" + message.SendTo;
                if (message.TemplateId == 14)
                {
                    message.ApproveUrl = web + "/?pa=" + encPassword + "&email=" + encEmail + "&job=" + encAbsenceId + "&ac=" + 3;
                    message.DenyUrl    = web + "/?pa=" + encPassword + "&email=" + encEmail + "&job=" + encAbsenceId + "&ac=" + 4;
                }
                if (message.TemplateId == 1 || message.TemplateId == 7)
                {
                    message.AcceptUrl  = web + "/?pa=" + encPassword + "&email=" + encEmail + "&job=" + encAbsenceId + "&ac=" + 1;
                    message.DeclineUrl = web + "/?pa=" + encPassword + "&email=" + encEmail + "&job=" + encAbsenceId + "&ac=" + 2;
                }
                if (message.TemplateId == 9)
                {
                    message.resetPassUrl = web + "/resetPassword/?email=" + message.SendTo + "&key=" + message.ActivationCode;
                }
                if (message.TemplateId == 25)
                {
                    //message.Password = EncryptProvider.DESEncrypt(message.Password, desKey);
                    //var EmailId = EncryptProvider.DESEncrypt(message.SendTo, desKey);
                    message.VerifyUrl = web + "/?pa=" + encPassword + "&email=" + encEmail + "&ac=" + 5;
                }
                MailTemplate mailTemplate = await CommunicationContainer.MailTemplatesBuilder
                                            .GetMailTemplateByIdAsync((int)mailTemplateEnums);

                string[] to;
                to = new string[] { message.SendTo };
                var    param = GetParam(message);
                string body  = PrepareBodyMessage(param, mailTemplate.EmailContent);
                if (mailTemplate.EmailDisclaimerNeeded)
                {
                    body += mailTemplate.EmailDisclaimerContent;
                }
                if (string.IsNullOrEmpty(message.AttachedFileName))
                {
                    await CommunicationContainer.MailClient.SendAsync(body, mailTemplate.Title, to,
                                                                      mailTemplate.SenderEmail, true, message.ImageBase64);
                }
                else
                {
                    await CommunicationContainer.MailClient.SendRawEmail(body, mailTemplate.Title, to,
                                                                         mailTemplate.SenderEmail, true, message.AttachedFileName, message.FileContentType);
                }
                DateTime updatedOn = DateTime.Now;
                CommunicationContainer.Logger.LogEmail(message.SendTo, body, mailTemplate.Notes, null, updatedOn, Convert.ToString(message.AbsenceId), "OK");
            }
            catch (System.Exception ex)
            {
                DateTime updatedOn = DateTime.Now;
                CommunicationContainer.Logger.LogEmail(message.SendTo, null, "Subzz Job Notification", Convert.ToString(ex), updatedOn, Convert.ToString(message.AbsenceId), "FAIL");
                //CommunicationContainer.Logger.LogError(ex, "Process", "EmailProcessor");
                //throw ex;
            }
            finally
            {
                protector = null;
            }
        }