Beispiel #1
0
        public async Task SendEmail(SendEmailMessage message, bool sandboxMode)
        {
            var mailjetRequest = new MailjetSendEmailsRequest
            {
                SandboxMode = sandboxMode,
                Messages = new List<MailjetEmail>
                {
                    new MailjetEmail
                    {
                        To = new List<MailjetContact>
                        {
                            new MailjetContact
                            {
                                Email = message.To.Email,
                                Name = message.To.Name
                            }
                        },
                        From = new MailjetContact
                        {
                            Email = _config.MailjetConfig.FromAddress,
                            Name = _config.MailjetConfig.FromName
                        },
                        Subject = message.Subject,
                        HTMLPart = message.Body
                    }
                }
            };

            var basicAuthHeader = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes($"{_config.MailjetConfig.ApiKey}:{_config.MailjetConfig.ApiSecret}"));

            await PostJsonAsync(new Uri(_config.MailjetConfig.SendMailUrl, UriKind.Absolute), mailjetRequest, new[] { ("Authorization", basicAuthHeader) });
Beispiel #2
0
        public static string SendEmail2Invitee(string host, string partyName, string inviteeEmail,
                                               string projectName, string inviterName, IEmailService emailService)
        {
            var url      = host;
            var partyStr = String.Empty;

            if (!String.IsNullOrEmpty(partyName))
            {
                partyStr = "作为“" + partyName + "”";
            }
            string temp = "<p>尊敬的用户,您好!</p>"
                          + "<p>" + inviterName + "已通过【DBWorld】邀请您," + partyStr + "参与到“" + projectName + "”中,请点击下方地址及时查看。</p>"
                          + "<a href='" + HttpUtility.HtmlEncode(url) + "'>" + HttpUtility.HtmlEncode(url) + "</a>"
                          + "<p>(如无法打开链接,请复制上面的链接粘贴到浏览器地址栏。)</p>"
                          + "<p>感谢您对DBWorld工程云的关注!DBWorld祝您一切顺利!</p>"
                          + "<p>来自:DBWorld工程云【DBWorld】</p>";

            temp = temp.Replace("+", "%2B");//+号会解析为空所以这里转换下

            var message = new SendEmailMessage
            {
                MailTo = inviteeEmail,
                Title  = "您已被邀请到" + projectName + "项目",
                Body   = temp,
                IsHtml = true
            };
            //Log.Info("API开始发送邀请邮件...");
            var sendEmailRes = ProjectMembersController.SendInvitationEmail(message, emailService);

            if (String.IsNullOrEmpty(sendEmailRes))
            {
                return(string.Empty);
            }
            return(sendEmailRes);
        }
Beispiel #3
0
        public virtual ActionResult ForgotPassword(string email, bool captchaValid, string captchaErrorMessage)
        {
            if (!captchaValid)
            {
                ModelState.AddModelError("captcha", captchaErrorMessage);
            }

            if (ModelState.IsValid)
            {
                var user = YouConfDbContext.UserProfiles
                           .FirstOrDefault(x => x.Email == email);

                if (user != null && user.UserId > 0 && OAuthWebSecurity.HasLocalAccount(user.UserId))
                {
                    string token = WebSecurity.GeneratePasswordResetToken(user.UserName);

                    //Send them an email
                    UserMailer mailer         = new UserMailer();
                    var        mvcMailMessage = mailer.PasswordReset(user.Email, user.UserName, token);
                    var        emailMessage   = new SendEmailMessage()
                    {
                        Body    = mvcMailMessage.Body,
                        To      = user.Email,
                        Subject = "Password reset request"
                    };
                    SendQueueMessage(emailMessage);


                    return(View("PasswordResetEmailSent"));
                }
            }
            return(View());
        }
Beispiel #4
0
        private void SendEmail(string email, string name, int storedEmailId)
        {
            var sendEmailMessage = new SendEmailMessage()
            {
                From = new EmailContact
                {
                    Name  = _emailParametersProvider.DocumentEmailSenderName,
                    Email = _emailParametersProvider.DocumentEmailSenderAddress
                },

                To = new List <EmailContact>
                {
                    new EmailContact
                    {
                        Name  = name,
                        Email = email
                    }
                },

                Subject  = MailSubject,
                TextPart = MailTextPart,
                HTMLPart = MailTextPart,
                Payload  = new EmailPayload
                {
                    Id         = storedEmailId,
                    Trackable  = true,
                    InstanceId = _instanceId
                }
            };

            var emailAttachments = new List <EmailAttachment>();

            foreach (var attachment in ObservableAttachments)
            {
                emailAttachments.Add(new EmailAttachment
                {
                    ContentType   = MimeMapping.GetMimeMapping(attachment.FileName),
                    Filename      = attachment.FileName,
                    Base64Content = Convert.ToBase64String(attachment.ByteFile)
                });
            }

            sendEmailMessage.Attachments = emailAttachments;

            var serializedMessage = JsonSerializer.Serialize(sendEmailMessage);
            var sendingBody       = Encoding.UTF8.GetBytes(serializedMessage);

            var logger            = new Logger <RabbitMQConnectionFactory>(new NLogLoggerFactory());
            var connectionFactory = new RabbitMQConnectionFactory(logger);
            var connection        = connectionFactory.CreateConnection(_configuration.MessageBrokerHost, _configuration.MessageBrokerUsername,
                                                                       _configuration.MessageBrokerPassword, _configuration.MessageBrokerVirtualHost);
            var channel    = connection.CreateModel();
            var properties = channel.CreateBasicProperties();

            properties.Persistent = true;

            channel.BasicPublish(_configuration.EmailSendExchange, _configuration.EmailSendKey, false, properties, sendingBody);
        }
        public void EmailSender([QueueTrigger(QueueNames.SendEmail, Connection = "StorageProdIden")]
                                SendEmailMessage emailMessage, ILogger log)
        {
            log.LogInformation($"Sending email to: {emailMessage.Email} {emailMessage.Title}");

            _emailService.SendEmailAsync(emailMessage.Email, emailMessage.Title, emailMessage.HtmlMessage);

            log.LogInformation($"Email sent to: {emailMessage.Email} {emailMessage.Title}");
        }
Beispiel #6
0
        public void NotifyEmployee(string orderNumber, string signature)
        {
            var configuration = _uow.GetAll <InstanceMailingConfiguration>().FirstOrDefault();

            string messageText = $"Оповещение о пришедшей оплате с неверной подписью: {signature}" +
                                 $"для платежа по заказу №{orderNumber}";

            var sendEmailMessage = new SendEmailMessage
            {
                From = new EmailContact
                {
                    Name  = _emailParametersProvider.DocumentEmailSenderName,
                    Email = _emailParametersProvider.DocumentEmailSenderAddress
                },

                To = new List <EmailContact>
                {
                    new EmailContact
                    {
                        Name  = "Уважаемый пользователь",
                        Email = _emailParametersProvider.InvalidSignatureNotificationEmailAddress
                    }
                },

                Subject = $"Неккоректная подпись успешной оплаты заказа №{orderNumber}",

                TextPart = messageText,
                HTMLPart = messageText,
                Payload  = new EmailPayload
                {
                    Id        = 0,
                    Trackable = false
                }
            };

            var serializedMessage = JsonSerializer.Serialize(sendEmailMessage);
            var sendingBody       = Encoding.UTF8.GetBytes(serializedMessage);

            var Logger = new Logger <RabbitMQConnectionFactory>(new NLogLoggerFactory());

            var connectionFactory = new RabbitMQConnectionFactory(Logger);
            var connection        = connectionFactory.CreateConnection(
                configuration.MessageBrokerHost,
                configuration.MessageBrokerUsername,
                configuration.MessageBrokerPassword,
                configuration.MessageBrokerVirtualHost);
            var channel = connection.CreateModel();

            var properties = channel.CreateBasicProperties();

            properties.Persistent = true;

            channel.BasicPublish(configuration.EmailSendExchange, configuration.EmailSendKey, false, properties, sendingBody);
        }
Beispiel #7
0
        public void PublishToSubscriber(Message pMessage)
        {
            EmailService eService = new EmailService();

            if (pMessage is SendEmailMessage)
            {
                SendEmailMessage lMessage = pMessage as SendEmailMessage;
                SendEmailMessageToEmailMessage lVisitor = new SendEmailMessageToEmailMessage();
                lMessage.Accept(lVisitor);
                eService.SendEmail(lVisitor.Result);
            }
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            var msg = new SendEmailMessage {
                FromEmail = "*****@*****.**",
                ToEmails  = "*****@*****.**",
                Subject   = "Covariance is hard",
                Body      = "Lets hope this example works"
            };

            var q = new Queue();

            q.Enqueue(msg);

            var msgOut = q.Dequeue();
        }
 public void Visit(IVisitable pVisitable)
 {
     if (pVisitable is SendEmailMessage)
     {
         SendEmailMessage lMsg = pVisitable as SendEmailMessage;
         Result = new EmailMessage()
         {
             ToAddresses   = lMsg.ToAddresses,
             FromAddresses = lMsg.FromAddresses,
             CCAddresses   = lMsg.CCAddresses,
             BCCAddresses  = lMsg.BCCAddresses,
             Date          = lMsg.Date,
             Message       = lMsg.Message,
         };
     }
 }
 public void PublishToSubscriber(Common.Model.Message pMessage)
 {
     if (pMessage is Common.Model.SendEmailMessage)
     {
         SendEmailMessage lMessage = pMessage as SendEmailMessage;
         EmailProvider.SendEmail(
             MessageTypeConverter.Instance.Convert <
                 global::EmailService.MessageTypes.EmailMessage,
                 global::EmailService.Business.Entities.EmailMessage>(new MessageTypes.EmailMessage()
         {
             Message     = lMessage.Message,
             ToAddresses = lMessage.ToAddresses,
             Date        = DateTime.Now
         })
             );
     }
 }
Beispiel #11
0
 public void Visit(IVisitable pVisitable)
 {
     if (pVisitable is EmailMessageItem)
     {
         EmailMessageItem lItem = pVisitable as EmailMessageItem;
         Result = new SendEmailMessage()
         {
             ToAddresses   = lItem.ToAddresses,
             FromAddresses = lItem.FromAddresses,
             CCAddresses   = lItem.CCAddresses,
             BCCAddresses  = lItem.BCCAddresses,
             Date          = lItem.Date,
             Message       = lItem.Message,
             Topic         = lItem.Topic
         };
     }
 }
Beispiel #12
0
        public static EmailSendingModel ToSendingModel(this SendEmailMessage message)
        {
            if (message == null)
            {
                return(null);
            }
            Encoding encoding = new UTF8Encoding();

            if (!String.IsNullOrWhiteSpace(message.EncodingName))
            {
                encoding = Encoding.GetEncoding(message.EncodingName);
            }
            return(new EmailSendingModel
            {
                MailTo = message.MailTo,
                Title = message.Title,
                Body = message.Body,
                IsHtml = message.IsHtml,
                TextEncoding = encoding
            });
        }
Beispiel #13
0
        public async Task SendSMSesViaEagle(string smsEagleEmailAddress, string smsEagleName, List <string> recipientPhoneNumbers, string body) =>
        await Task.WhenAll(recipientPhoneNumbers.Select(recipientPhoneNumber =>
        {
            var sendEmail = new SendEmailMessage
            {
                To = new Contact
                {
                    Email = smsEagleEmailAddress,
                    Name  = smsEagleName
                },
                Body           = body,
                Subject        = recipientPhoneNumber,
                SendAsTextOnly = true
            };

            var message = new Message(Encoding.UTF8.GetBytes(JsonSerializer.Serialize(sendEmail)))
            {
                Label = "RX.Nyss.ReportApi"
            };

            return(_sendEmailQueueClient.SendAsync(message));
        }));
Beispiel #14
0
        static void Main(string[] args)
        {
            var q = new MessageQueue();

            #region in another process
            var msg = new SendEmailMessage()
            {
                EmailAddress = "*****@*****.**"
            };

            q.SendMessage(msg);

            #endregion

            var outMsg = q.GetNextMessage();

            var handlerFactory = new MessageHandlerFactory();

            var handler = handlerFactory.Create(msg);

            handler.ProcessMessage(msg);
        }
Beispiel #15
0
        public async Task SendEmailWithMailjet(SendEmailMessage message, string whitelistedEmailAddresses, string whitelistedPhoneNumbers)
        {
            if (message.SendAsTextOnly)
            {
                if (_config.MailjetConfig.EnableFeedbackSms)
                {
                    var sandboxMode = !(_config.MailjetConfig.SendFeedbackSmsToAll || IsWhiteListedPhoneNumber(message.Subject, whitelistedPhoneNumbers));
                    await _emailClient.SendEmailAsTextOnly(message, sandboxMode);
                }
            }
            else
            {
                var sandboxMode = false;
                if (!_config.MailjetConfig.SendToAll)
                {
                    sandboxMode = !IsWhitelistedEmailAddress(whitelistedEmailAddresses, message.To.Email);
                }

                _logger.LogDebug($"Sending email to '{message.To.Email.Substring(0, Math.Min(message.To.Email.Length, 4))}...' SandboxMode: {sandboxMode}");
                await _emailClient.SendEmail(message, sandboxMode);
            }
        }
Beispiel #16
0
        private static SendEmailMessage GenerateMessage(string host, string partyName, string inviteEmail, string email,
                                                        string projectName, long projectId, long userId, long partyId)
        {
            var url = host + "/Account/LoginForInvite?projectName=" + EncipherAndDecrypt.EncryptText(projectName)
                      + "&projectId=" + EncipherAndDecrypt.EncryptText(projectId.ToString())
                      + "&userId=" + EncipherAndDecrypt.EncryptText(userId.ToString())
                      + "&inviteEmail=" + EncipherAndDecrypt.EncryptText(inviteEmail)
                      + "&email=" + EncipherAndDecrypt.EncryptText(email)
                      + "&partyId=" + EncipherAndDecrypt.EncryptText(partyId.ToString());

            var partyStr = String.Empty;

            if (!String.IsNullOrEmpty(partyName))
            {
                partyStr = "作为“" + partyName + "”";
            }
            //var ssoUrl = AuthUtility.GetSSORegisterUri();
            //var dbworldHomeUrl = AuthUtility.GetHomeHost().TrimEnd('/');
            string temp = "<p>尊敬的用户,您好!</p>"
                          + "<p>有人通过【DBWorld】邀请您," + partyStr + "参与到“" + projectName + "”中,点击下方地址申请加入该项目,或者将以下地址直接复制到地址栏回车</p>"
                          + "<a href='" + HttpUtility.HtmlEncode(url) + "'>" + HttpUtility.HtmlEncode(url) + "</a>"
                          + "<p>(如无法打开链接,请复制上面的链接粘贴到浏览器地址栏完成邀请。)</p>"
                          //+ "<p>DBWorld工程云客户端下载地址:<a href='" + dbworldHomeUrl + "/intro/product/" + "'>客户端下载</a></p>"
                          //+ "<p>DBWorld工程云账号注册地址:<a href='" + ssoUrl + "'>注册账户</a></p>"
                          + "<p>感谢您对DBWorld工程云的关注!DBWorld祝您一切顺利!</p>"
                          + "<p>来自:DBWorld工程云【DBWorld】</p>";

            temp = temp.Replace("+", "%2B");//+号会解析为空所以这里转换下

            var message = new SendEmailMessage
            {
                MailTo = inviteEmail,
                Title  = "请加入" + projectName + "项目",
                Body   = temp,
                IsHtml = true
            };

            return(message);
        }
Beispiel #17
0
        public void TestSendingEmailViaOperator()
        {
            Telegraph.Instance.UnRegisterAll();

            DateTime sent            = DateTime.Now;
            long     emailOperatorId = Telegraph.Instance.Register(new OutlookEmailPublisherOperator(emailAccount, accountPassword));

            Telegraph.Instance.Register <SendEmailMessage>(emailOperatorId);

            SendEmailMessage msg = new SendEmailMessage();

            msg.Subject        = "Testing email for operator sent message";
            msg.ToEmailAddress = emailAccount;

            if (!Telegraph.Instance.Ask(msg).Wait(new TimeSpan(0, 0, 45)))
            {
                Assert.Fail("Waited too long to send a message");
            }

            bool found = DoesEmailExistInInbox(msg);

            Assert.IsTrue(found, "We did not find the item in the inbox");
        }
Beispiel #18
0
        public ActionResult Register(RegisterModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                try
                {
                    WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Email = model.Email });
                    WebSecurity.Login(model.UserName, model.Password);

                    //Send them an email
                    UserMailer mailer         = new UserMailer();
                    var        mvcMailMessage = mailer.Welcome(model.UserName);
                    var        emailMessage   = new SendEmailMessage()
                    {
                        Body    = mvcMailMessage.Body,
                        To      = model.Email,
                        Subject = "Welcome to YouConf"
                    };
                    SendQueueMessage(emailMessage);

                    if (!String.IsNullOrWhiteSpace(returnUrl))
                    {
                        return(RedirectToLocal(returnUrl));
                    }
                    return(RedirectToAction("Index", "Home"));
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Beispiel #19
0
        public void TestSendingEmail()
        {
            Telegraph.Instance.UnRegisterAll();

            Telegraph.Instance.Register <SendEmailMessage, SendEmail>(() => new SendEmail(emailAccount, accountPassword, "Test Friendly Name"));

            SendEmailMessage msg = new SendEmailMessage();

            msg.Subject        = "Testing email for actor message";
            msg.ToEmailAddress = emailAccount;

            var askTask = Telegraph.Instance.Ask(msg);

            if (!askTask.Wait(new TimeSpan(0, 0, 45)))
            {
                Assert.Fail("Waited too long to send a message");
            }

            Assert.IsTrue(askTask.Status == System.Threading.Tasks.TaskStatus.RanToCompletion);

            bool found = DoesEmailExistInInbox(msg);

            Assert.IsTrue(found, "We did not find the item in the inbox");
        }
Beispiel #20
0
    public void btnSubmit_Click(object sender, EventArgs e)
    {
        DropDownList ddlinstaller = (DropDownList)Installers.FindControl("ddlInstallers");

        if (enablePostCodeSearch == false)
        {
            Session[enumSessions.InstallerCompanyID.ToString()] = ddlinstaller.SelectedValue;
            Session[enumSessions.SelectedInstaller.ToString()]  = ddlinstaller.SelectedItem;
        }
        db = new LinqToSqlDataContext();
        string mycheck = "";

        if (Request["dr"].ToString() == "d" || Request["dr"].ToString() == "u" || Request["dr"].ToString() == "r")
        {
            if (chkConfirm.Checked)
            {
                mycheck = "true";
            }
            else
            {
                mycheck = "false";
            }
        }
        else
        {
            mycheck = "true";
        }
        if (mycheck == "true")
        {
            lblSubmitConfirm.Visible = false;
            string UserEmail   = "";
            string CompanyName = "";
            string UserName    = "";
            string dr          = Request["dr"].ToString();

            if (dr == "u")
            {
                dr = "Upgrade";
            }
            else if (dr == "u")
            {
                dr = "Downgrade";
            }
            else
            {
                dr = "Regrade";
            }

            UserName    = Session[enumSessions.User_Name.ToString()].ToString();
            UserEmail   = Session[enumSessions.User_Email.ToString()].ToString();
            CompanyName = CSLOrderingARCBAL.BAL.ArcBAL.GetARCName(Session[enumSessions.ARC_Id.ToString()].ToString());
            MailMessage Message = new MailMessage();
            if (UserName.Length == 0)
            {
                UserName = Session["UserId"].ToString();
            }



            string id   = Session[enumSessions.User_Id.ToString()].ToString();
            var    Data = (from d in db.UpDowngrades
                           where d.UserId == id && d.Emailed == false &&
                           (d.ISEmizonUnit == false || (d.ISEmizonUnit == true && Convert.ToBoolean(d.NeedsEngineer) == true))
                           select d);
            db.SubmitChanges();
            if (Data.Any())
            {
                String EmailDevicelist = "<table cellspacing='1' cellpadding='1' border='1' width=\"100%\"><tr><td style=\"color: #888;\"><b>Request Type</b></td><td style=\"color: #888;\"><b>From</b></td><td style=\"color: #888;\"><b>To</b></td><td style=\"color: #888;\"><b>Reason</b></td><td style=\"color: #888;\"><b>ESN/SIM</b></td><td style=\"color: #888;\"><b>NUA/Data</b></td><td style=\"color: #888;\"><b>Chip Number</b></td><td style=\"color: #888;\"><b>EM No</b></td><td style=\"color: #888;\"><b>Installer</b></td><td style=\"color: #888;\"><b>ARC Ref</b></td></tr>";
                foreach (var ud in Data)
                {
                    EmailDevicelist += "<tr>";
                    // EmailDevicelist += "<td>" + dr + "</td>";
                    if (dr == "Upgrade")
                    {
                        EmailDevicelist += "<td td style=\"color: #0099cc;\">" + dr + "</td>";     //blue
                    }
                    else if (dr == "Downgrade")
                    {
                        EmailDevicelist += "<td td style=\"color: #000000;\">" + dr + "</td>";  //black
                    }
                    else
                    {
                        EmailDevicelist += "<td>" + dr + "</td>";  //black
                    }
                    string szReason = "";
                    if (Request["dr"].ToString() == "u")
                    {
                        szReason = "n/a";
                    }
                    else
                    {
                        szReason = ud.Reason;
                    }
                    EmailDevicelist += "<td>" + ud.ItemFrom + "</td>";
                    EmailDevicelist += "<td>" + ud.ItemTo + "</td>";
                    EmailDevicelist += "<td>" + szReason + "</td>";
                    EmailDevicelist += "<td>" + ud.Simno + "</td>";
                    EmailDevicelist += "<td>" + ud.Datano + "</td>";
                    EmailDevicelist += "<td>" + ud.Chipno + "</td>";
                    EmailDevicelist += "<td>" + ud.EMNo + "</td>";
                    string selectedInstaller = GetInstallerName(ud.Installer);
                    if (string.IsNullOrEmpty(selectedInstaller))
                    {
                        EmailDevicelist += "<td>n/a</td>";
                    }
                    else
                    {
                        EmailDevicelist += "<td>" + selectedInstaller + "</td>";
                    }
                    EmailDevicelist += "<td>" + ud.ARCRef + "</td>";
                    EmailDevicelist += "</tr>";
                }

                EmailDevicelist += "</table>";
                //begin sonam
                String        mailHtml   = ReadTemplates.ReadMailTemplate(Server.MapPath("Template"), "EmailGrade.html");
                StringBuilder objBuilder = new StringBuilder();
                objBuilder.Append(mailHtml);
                objBuilder.Replace("{UserName}", UserName);
                objBuilder.Replace("{ArcName}", CompanyName);
                objBuilder.Replace("{UserEmail}", UserEmail);
                objBuilder.Replace("{DateofRequest}", DateTime.Now.ToString());
                objBuilder.Replace("{Devicelist}", EmailDevicelist);
                //end sonam
                if (string.IsNullOrEmpty((string)HttpRuntime.Cache["EmailCC"]))
                {
                    ApplicationDTO appdto;
                    AppSettings    appsett = new AppSettings();
                    appdto = appsett.GetAppValues();
                    mailCC = appdto.mailCC;
                }
                else
                {
                    mailCC = (string)HttpRuntime.Cache["EmailCC"];
                }

                string subjectMessage = "";
                if (Request["dr"].ToString() == "u")
                {
                    subjectMessage = "Upgrade Request";
                }
                else if (Request["dr"].ToString() == "d")
                {
                    subjectMessage = "Downgrade Request";
                }
                else
                {
                    subjectMessage = "Regrade Request : Needs Engineer Visit";
                }

                SendEmailMessage sendEmail       = new SendEmailMessage();
                EmailMessage     cslEmailMessage = new EmailMessage();
                cslEmailMessage.From    = mailFrom;
                cslEmailMessage.To      = mailTO;
                cslEmailMessage.CC      = UserEmail + ";" + mailCC + ";" + GetArcCcEmail(Session[enumSessions.ARC_Id.ToString()].ToString());
                cslEmailMessage.BCC     = "";
                cslEmailMessage.Subject = subjectMessage;
                cslEmailMessage.Message = Convert.ToString(objBuilder.ToString());
                sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage);
                //End Code sending email  to msmq.

                db = new LinqToSqlDataContext();
                var upData = (from data in db.UpDowngrades
                              where data.UserId == Session[enumSessions.User_Id.ToString()].ToString() &&
                              (data.ISEmizonUnit == false || (data.ISEmizonUnit == true && Convert.ToBoolean(data.NeedsEngineer) == true))
                              select data);
                foreach (var d in upData)
                {
                    d.Emailed = true;
                }
                db.SubmitChanges();
            }

            // ** Flag Emizon units
            var EmizonUnits = (from data in db.UpDowngrades
                               where data.UserId == Session[enumSessions.User_Id.ToString()].ToString() &&
                               data.ISEmizonUnit == true && Convert.ToBoolean(data.NeedsEngineer) == false
                               select data);

            if (EmizonUnits.Any())
            {
                foreach (var r in EmizonUnits)
                {
                    r.AwaitingtobeProcessed = true;
                }
                db.SubmitChanges();
            }


            pnlForm.Visible    = false;
            divuc1.Visible     = false;
            divuc2.Visible     = false;
            pnlConfirm.Visible = true;
            PnlAwaitingtoBeProcessed.Visible = false;
        }
        else
        {
            lblSubmitConfirm.Visible = true;
        }

        Session[enumSessions.InstallerCompanyID.ToString()] = null;
        Session[enumSessions.SelectedInstaller.ToString()]  = null;
    }
Beispiel #21
0
 public object Any(SendEmailMessage request)
 {
     return(new SendEmailResponse {
         Result = $"Hello, {request.Name}!"
     });
 }
Beispiel #22
0
 public Task <HttpResponseMessage> SendActivateCodeEmail(SendEmailMessage model, TokenModel token)
 {
     TokenClient.RefreshToken(_client, token);
     return(_client.PostAsJsonAsync(_routePrefix + "/SendActivateCodeEmail", model));
 }
Beispiel #23
0
 public Task <HttpResponseMessage> SendForgotPasswordEmail(SendEmailMessage model)
 {
     return(_client.PostAsJsonAsync(_routePrefix + "/SendForgotPasswordEmail", model));
 }
Beispiel #24
0
        private bool SendCredentialsToEmail(string login, string password, string mailAddress, string fullName, IUnitOfWork unitOfWork)
        {
            var instanceId = Convert.ToInt32(unitOfWork.Session
                                             .CreateSQLQuery("SELECT GET_CURRENT_DATABASE_ID()")
                                             .List <object>()
                                             .FirstOrDefault());

            var configuration = unitOfWork.GetAll <InstanceMailingConfiguration>().FirstOrDefault();

            string messageText =
                $"Логин: { login }\n" +
                $"Пароль: { password }";

            var sendEmailMessage = new SendEmailMessage()
            {
                From = new EmailContact
                {
                    Name  = _emailParametersProvider.DocumentEmailSenderName,
                    Email = _emailParametersProvider.DocumentEmailSenderAddress
                },

                To = new List <EmailContact>
                {
                    new EmailContact
                    {
                        Name  = fullName,
                        Email = mailAddress
                    }
                },

                Subject = "Учетные данные для входа в программу Доставка Воды",

                TextPart = messageText,
                HTMLPart = messageText,
                Payload  = new EmailPayload
                {
                    Id         = 0,
                    Trackable  = false,
                    InstanceId = instanceId
                }
            };

            try
            {
                var serializedMessage = JsonSerializer.Serialize(sendEmailMessage);
                var sendingBody       = Encoding.UTF8.GetBytes(serializedMessage);

                var Logger = new Logger <RabbitMQConnectionFactory>(new NLogLoggerFactory());

                var connectionFactory = new RabbitMQConnectionFactory(Logger);
                var connection        = connectionFactory.CreateConnection(configuration.MessageBrokerHost, configuration.MessageBrokerUsername, configuration.MessageBrokerPassword, configuration.MessageBrokerVirtualHost);
                var channel           = connection.CreateModel();

                var properties = channel.CreateBasicProperties();
                properties.Persistent = true;

                channel.BasicPublish(configuration.EmailSendExchange, configuration.EmailSendKey, false, properties, sendingBody);

                return(true);
            }
            catch (Exception e)
            {
                _logger.Error(e, e.Message);
                return(false);
            }
        }
        private async Task PrepareAndSendEmails()
        {
            try
            {
                var sendingMessage = new SendEmailMessage();

                using (var unitOfWork = UnitOfWorkFactory.CreateWithoutRoot("Document prepare worker"))
                {
                    var emailsToSend = _emailRepository.GetEmailsForPreparingOrderDocuments(unitOfWork);

                    sendingMessage.From = new EmailContact
                    {
                        Name  = _emailParametersProvider.DocumentEmailSenderName,
                        Email = _emailParametersProvider.DocumentEmailSenderAddress
                    };

                    foreach (var counterpartyEmail in emailsToSend)
                    {
                        try
                        {
                            _logger.LogInformation($"Found message to prepare for stored email: { counterpartyEmail.StoredEmail.Id }");

                            sendingMessage.To = new List <EmailContact>
                            {
                                new EmailContact
                                {
                                    Name  = counterpartyEmail.Counterparty.FullName,
                                    Email = counterpartyEmail.StoredEmail.RecipientAddress
                                }
                            };

                            var document = counterpartyEmail.EmailableDocument;

                            if (document == null)
                            {
                                counterpartyEmail.StoredEmail.State       = StoredEmailStates.SendingError;
                                counterpartyEmail.StoredEmail.Description = "Missing/deleted emailable document";
                                unitOfWork.Save(counterpartyEmail.StoredEmail);
                                unitOfWork.Commit();

                                continue;
                            }

                            var template = document.GetEmailTemplate();

                            sendingMessage.Subject  = $"{ template.Title } { document.Title }";
                            sendingMessage.TextPart = template.Text;
                            sendingMessage.HTMLPart = template.TextHtml;

                            var inlinedAttachments = new List <InlinedEmailAttachment>();

                            foreach (var item in template.Attachments)
                            {
                                inlinedAttachments.Add(new InlinedEmailAttachment
                                {
                                    ContentID     = item.Key,
                                    ContentType   = item.Value.MIMEType,
                                    Filename      = item.Value.FileName,
                                    Base64Content = item.Value.Base64Content
                                });
                            }

                            sendingMessage.InlinedAttachments = inlinedAttachments;

                            var attachments = new List <EmailAttachment>
                            {
                                await PrepareDocument(document, counterpartyEmail.Type)
                            };

                            sendingMessage.Attachments = attachments;

                            sendingMessage.Payload = new EmailPayload
                            {
                                Id         = counterpartyEmail.StoredEmail.Id,
                                Trackable  = true,
                                InstanceId = _instanceId
                            };

                            var serializedMessage = JsonSerializer.Serialize(sendingMessage);
                            var sendingBody       = Encoding.UTF8.GetBytes(serializedMessage);

                            var properties = _channel.CreateBasicProperties();
                            properties.Persistent = true;

                            _channel.BasicPublish(_emailSendExchange, _emailSendKey, properties, sendingBody);

                            counterpartyEmail.StoredEmail.State = StoredEmailStates.WaitingToSend;
                            unitOfWork.Save(counterpartyEmail.StoredEmail);
                            unitOfWork.Commit();
                        }
                        catch (Exception ex)
                        {
                            _logger.LogError($"Failed to process counterparty email { counterpartyEmail.Id }: { ex.Message }");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }
        }
 public async Task SendEmailAsync(string email, string subject, string htmlMessage)
 {
     var emailMessage = new SendEmailMessage(email, subject, htmlMessage);
     await _queueService.SendMessageAsync(QueueNames.SendEmail, emailMessage);
 }
Beispiel #27
0
    public static void SendEmailWithPrice(string OrderNo, string mailTO, SendEmailDTO sendEmailDTO,
                                          string mailFrom, string mailCC, bool isEmailFromViewOrders, bool?hasEmizonProducts, int orderID)
    {
        try
        {
            String           ProductsList    = "";
            bool             instadd_differs = false;
            string           subjectsuffix   = string.Empty;
            string           templatePath    = "Template";
            SendEmailMessage sendEmail       = new SendEmailMessage();
            EmailMessage     cslEmailMessage = new EmailMessage();
            string           emizonQueuePath = ConfigurationManager.AppSettings["EmizonQueue"].ToString();//could have used AppSettings but no point as another one is using config

            string mailSubject = "Order Confirmation - Order Ref: " + OrderNo;
            if (isEmailFromViewOrders)
            {
                if (mailTO.EndsWith("@csldual.com"))
                {
                    subjectsuffix = "; Email Resent";
                }

                mailSubject  = mailSubject + subjectsuffix;
                templatePath = "../Template";
            }

            String        mailHtml   = ReadTemplates.ReadMailTemplate(System.Web.HttpContext.Current.Server.MapPath(templatePath), "EmailTemplate.html");
            StringBuilder objBuilder = new StringBuilder();
            objBuilder.Append(mailHtml);
            objBuilder.Replace("{OrderNo}", OrderNo);
            objBuilder.Replace("{OrderDate}", string.IsNullOrEmpty(sendEmailDTO.orderDate) ? "." : sendEmailDTO.orderDate);
            objBuilder.Replace("{OrderRef}", string.IsNullOrEmpty(sendEmailDTO.ARCOrderRefNo) ? "." : sendEmailDTO.ARCOrderRefNo);

            ARC    arc    = ArcBAL.GetArcInfoByUserId(new Guid(sendEmailDTO.userID));
            string arcAdd = "";

            if (arc != null)
            {
                arcAdd  = arc.CompanyName == null ? "" : arc.CompanyName + ",&nbsp;";
                arcAdd += arc.AddressOne + ", <br /> ";
                arcAdd += string.IsNullOrEmpty(arc.AddressTwo) ? "" : arc.AddressTwo + ",&nbsp;";
                arcAdd += string.IsNullOrEmpty(arc.Town) ? "" : arc.Town + ",<br /> ";
                arcAdd += string.IsNullOrEmpty(arc.County) ? "" : arc.County + ", ";
                arcAdd += string.IsNullOrEmpty(arc.PostCode) ? "" : arc.PostCode + " <br />";
                objBuilder.Replace("{Fax}", string.IsNullOrEmpty(arc.Fax) ? "." : arc.Fax);
                objBuilder.Replace("{Tel}", string.IsNullOrEmpty(arc.Telephone) ? "." : arc.Telephone);
                objBuilder.Replace("{ARC}", arcAdd);
            }

            objBuilder.Replace("{Username}", sendEmailDTO.userName);
            objBuilder.Replace("{UserEmail}", sendEmailDTO.userEmail);

            // OrderDetails
            LinqToSqlDataContext db = new LinqToSqlDataContext();
            var products            = db.USP_GetBasketProducts(Convert.ToInt32(sendEmailDTO.orderID)).ToList();

            if (products != null && products.Count > 0)
            {
                string chipNos     = "";
                int    countOption = 1;

                foreach (var prod in products)
                {
                    int rowCount = db.USP_GetBasketProductsOnCheckOut(Convert.ToInt32(sendEmailDTO.orderID)).Where(i => i.ProductCode == prod.ProductCode.Trim()).Count();
                    ProductsList += "<tr><td style=\"background: #FFF7F7\">" + prod.ProductCode + "</td><td>" + prod.ProductName + "</td> <td style=\"background: #FFF7F7\">" + prod.ProductQty + "</td><td>£" + prod.Price;

                    if (prod.ProductType == "Product")
                    {
                        chipNos = "";
                        var ChipNumbers = db.USP_GetBasketGPRSChipNumbersByProductId(Convert.ToInt32(sendEmailDTO.orderID), prod.ProductId, prod.CategoryId).ToList();

                        if (ChipNumbers != null)
                        {
                            foreach (var chipno in ChipNumbers)
                            {
                                chipNos += string.IsNullOrEmpty(chipno.GPRSNo) ? "" : chipno.GPRSNo + "-";
                                chipNos += string.IsNullOrEmpty(chipno.PSTNNo) ? "" : chipno.PSTNNo + "-";
                                chipNos += string.IsNullOrEmpty(chipno.GSMNo) ? "" : chipno.GSMNo + "-";  //added GSM NO(PanelID) in email
                                chipNos += string.IsNullOrEmpty(chipno.OptionName) ? "" : chipno.OptionName;
                                chipNos += ",";

                                if (chipno.PSTNNo == "" &&
                                    chipno.OptionName == "" &&
                                    chipno.GSMNo == "" &&
                                    chipNos.Length > 0
                                    )//added GSM NO(PanelID) in email
                                {
                                    chipNos = chipNos.Remove(chipNos.Length - 1, 1);
                                }
                            }


                            if (chipNos != "")
                            {
                                chipNos       = chipNos.Substring(0, chipNos.Length - 1);
                                ProductsList += "</td> <td style=\"background: #FFF7F7\">" + chipNos + "</td> </td></tr>";
                            }
                            else
                            {
                                ProductsList += "</td> <td style=\"background: #FFF7F7\">Chip Numbers : Not Provided</td></tr>";
                            }
                        }

                        if (rowCount == 1)
                        {
                            var dependentproducts = db.USP_GetBasketDependentProductsByProductId(Convert.ToInt32(sendEmailDTO.orderID), prod.ProductId, prod.CategoryId).ToList();
                            if (dependentproducts != null && dependentproducts.Count > 0)
                            {
                                foreach (var dp in dependentproducts)
                                {
                                    ProductsList += "<tr><td>" + dp.ProductCode + "</td><td>" + dp.ProductName + "</td><td>" + dp.ProductQty + "</td><td>£" + dp.Price + "</tr>";
                                }
                            }
                            countOption = 0;
                        }
                        else if (rowCount == countOption)
                        {
                            var dependentproducts = db.USP_GetBasketDependentProductsByProductId(Convert.ToInt32(sendEmailDTO.orderID), prod.ProductId, prod.CategoryId).ToList();
                            if (dependentproducts != null && dependentproducts.Count > 0)
                            {
                                foreach (var dp in dependentproducts)
                                {
                                    ProductsList += "<tr><td>" + dp.ProductCode + "</td><td>" + dp.ProductName + "</td><td>" + dp.ProductQty + "</td><td>£" + dp.Price + "</tr>";
                                }
                            }
                        }
                    }
                    countOption++;
                }
            }

            OrderDTO objorder = CSLOrderingARCBAL.BAL.OrdersBAL.GetOrderDetail(Convert.ToInt32(sendEmailDTO.orderID));
            //objBuilder.Replace("{OrderTotal}", Convert.ToDecimal(lblDtlsOrderTotal.Text).ToString("c"));
            objBuilder.Replace("{OrderTotal}", "£" + Convert.ToDecimal(objorder.OrderTotal));
            //objBuilder.Replace("{DeliveryTotal}", Convert.ToDecimal(lblDtlsDeliveryTotal.Text).ToString("c"));
            objBuilder.Replace("{DeliveryTotal}", "£" + Convert.ToDecimal(objorder.DeliveryCost));
            //objBuilder.Replace("{VAT}", Convert.ToDecimal(lblDtlsVAT.Text).ToString("c"));
            objBuilder.Replace("{VAT}", "£" + Convert.ToDecimal(objorder.VATAmount));
            //objBuilder.Replace("{TotalToPay}", Convert.ToDecimal(lblDtlsTotalToPay.Text).ToString("c"));
            objBuilder.Replace("{TotalToPay}", "£" + Convert.ToDecimal(objorder.TotalAmountToPay));
            objBuilder.Replace("{DeliveryTypeName}", string.IsNullOrEmpty(sendEmailDTO.DdeliveryType) ? "" : sendEmailDTO.DdeliveryType);
            objBuilder.Replace("{DeliveryTypePrice}", "£" + sendEmailDTO.deliveryCost);
            objBuilder.Replace("{Installer}", InstallerBAL.GetAddressHTML2LineForEmail(new Guid(sendEmailDTO.installerID)));

            if (objorder.InstallationAddressId > 0)
            {
                instadd_differs = true;
            }
            else
            {
                instadd_differs = false;
            }
            if (instadd_differs)// || sendEmailDTO.InstallationAddId != 0)
            {
                //string InsAdd = InstallerBAL.GetAddressHTML2LineForEmail(Convert.ToInt32(Session[enumSessions.PreviousOrderId.ToString()].ToString()));
                string InsAdd = objorder.InstallationAddressId.HasValue ? InstallerBAL.GetAddressHTML2LineForEmail(objorder.InstallationAddressId.Value) : "Not Available";
                objBuilder.Replace("{InstallerAddress}", "<td><div style=\"width: 100%; margin: 0; padding: 0;\"><table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\"><tr><td style=\"text-align: left\"> <font color=\"#888\" size=\"2\" face=\"Arial\">" + InsAdd + " </font></td></tr></table></div></td>");
                objBuilder.Replace("{HeadingInstallerAdd}", "<td><h3 style=\"font-size:11px; text-align: center; margin: 0; padding: 5px auto;\">Installation Address</h3></td>");
            }
            else
            {
                objBuilder.Replace("{InstallerAddress}", "");
                objBuilder.Replace("{HeadingInstallerAdd}", "");
            }
            objBuilder.Replace("{DeliveredTo}", OrdersBAL.GetDeliveryAddressHTML2Line(Convert.ToInt32(sendEmailDTO.orderID)));
            objBuilder.Replace("{SpecialInstructions}", sendEmailDTO.specialInstructions);
            if (isEmailFromViewOrders)
            {
                objBuilder.Append("Email Resent");
            }
            var distinctProduct = products.Select(i => i.ProductCode).Distinct();

            foreach (var pro in distinctProduct)
            {
                products = db.USP_GetBasketProducts(Convert.ToInt32(sendEmailDTO.orderID)).Where(p => p.ProductCode == pro).Take(1).ToList();

                foreach (var prod in products)
                {
                    if (prod.IsCSDUser == true)
                    {
                        ProductsList += "<tr><td>" + prod.ProductCode + "</td><td>" + prod.Message + "</td></tr>";
                    }
                }
            }
            objBuilder.Replace("{ProductList}", ProductsList);
            if (mailTO != "" && mailTO.Trim() != "")
            {
                string[] mailFromList = mailFrom.Split(',');
                string[] mailCCList   = mailCC.Split(',');
                string   emailCC      = string.Empty;

                foreach (string email in mailCCList)
                {
                    emailCC += email + ",";
                }
                if (!string.IsNullOrEmpty(emailCC))
                {
                    emailCC = emailCC.TrimEnd(',');
                }


                //PUSH TO EMIZON QUEUE
                if (hasEmizonProducts.HasValue && hasEmizonProducts.Value)
                {
                    EmizonOrderController.AddAPIRequestToQueue(emizonQueuePath, new Emizon.APIModels.MSMQTypes.QueueOrderMessage()
                    {
                        From          = mailFrom,
                        To            = mailTO,
                        CC            = mailCC,
                        BCC           = mailCC,
                        Subject       = mailSubject,
                        OrderHTMLBody = objBuilder.ToString(),
                        orderID       = orderID
                    });
                }
                else
                {
                    //Add below code to send the email message via msmq not smtp -Priya 15/06/2017
                    //Remove Emizon placeholder
                    objBuilder.Replace("{EmizonData}", "");

                    cslEmailMessage.From    = mailFrom;
                    cslEmailMessage.To      = mailTO;
                    cslEmailMessage.CC      = emailCC;
                    cslEmailMessage.BCC     = emailCC;
                    cslEmailMessage.Subject = mailSubject;
                    cslEmailMessage.Message = objBuilder.ToString();

                    sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage);
                }
                //End Code sending email  to msmq.
            }
            ApplicationDTO appSettings     = new AppSettings().GetAppValues();
            List <string>  lstProductCodes = new List <string>();
            lstProductCodes = appSettings.ConnectionOnlyCodes.Split(',').ToList();

            bool connectionProductCodeExist = false;
            foreach (var x in distinctProduct)
            {
                if (lstProductCodes.Exists(e => e.EndsWith(x)))
                {
                    connectionProductCodeExist = true;
                }
            }
            StringBuilder strURL = new StringBuilder();

            if (connectionProductCodeExist)
            {
                #region buildURLs

                List <DCCCompany> lstDCCCompany = db.DCCCompanies.ToList();

                foreach (DCCCompany company in lstDCCCompany)
                {
                    var tableCodes = company.Productcode.Split(',').ToList();

                    foreach (string s in tableCodes)
                    {
                        if (distinctProduct.Contains(s)) //only create a link if the product exist in the basket items.
                        {
                            strURL.Append(" please <a href='" + company.InstructionsUrl + "'>Click here for " + company.company_name + "</a> or ");
                            break; // once we add
                        }
                    }
                }


                #endregion


                string mailSubjectConnectionOnly = "ARC Connection Only - Order Confirmation - Order Ref: " + OrderNo;
                if (isEmailFromViewOrders)
                {
                    if (mailTO.EndsWith("@csldual.com"))
                    {
                        subjectsuffix = "; Email Resent";
                    }

                    mailSubjectConnectionOnly = mailSubjectConnectionOnly + subjectsuffix;
                }

                String mailHtmlConnectionOnly = ReadTemplates.ReadMailTemplate(System.Web.HttpContext.Current.Server.MapPath(templatePath), "EmailTemplate_ConnectionOrders.html");
                //  String mailHtmlConnectionOnly = ReadTemplates.ReadMailTemplate(System.Web.HttpContext.Current.Server.MapPath(templatePath), "EmailTemplate_v2_ConnectionOrders.html");
                StringBuilder objBuilderConnectionOnly = new StringBuilder();
                objBuilderConnectionOnly.Append(mailHtmlConnectionOnly);

                objBuilderConnectionOnly.Replace("{InstallationURL}", strURL.ToString().TrimEnd(' ', 'o', 'r') + '.');
                objBuilderConnectionOnly.Replace("{OrderNo}", OrderNo);
                objBuilderConnectionOnly.Replace("{OrderDate}", sendEmailDTO.orderDate);
                objBuilderConnectionOnly.Replace("{OrderRef}", string.IsNullOrEmpty(sendEmailDTO.ARCOrderRefNo) ? "." : sendEmailDTO.ARCOrderRefNo);
                objBuilderConnectionOnly.Replace("{OrderTotal}", "£" + objorder.OrderTotal);
                objBuilderConnectionOnly.Replace("{DeliveryTotal}", "£" + objorder.DeliveryCost);
                objBuilderConnectionOnly.Replace("{VAT}", "£" + objorder.VATAmount);
                objBuilderConnectionOnly.Replace("{TotalToPay}", "£" + objorder.TotalAmountToPay);
                objBuilderConnectionOnly.Replace("{DeliveryTypeName}", sendEmailDTO.DdeliveryType.ToString().TrimEnd(' '));
                // objBuilderConnectionOnly.Replace("{DeliveryTypePrice}", "£" + sendEmailDTO.deliveryCost);
                objBuilderConnectionOnly.Replace("{Installer}", InstallerBAL.GetAddressHTML2LineForEmail(new Guid(sendEmailDTO.installerID)));


                if (arc != null)
                {
                    objBuilderConnectionOnly.Replace("{Fax}", string.IsNullOrEmpty(arc.Fax) ? "." : arc.Fax);
                    objBuilderConnectionOnly.Replace("{Tel}", string.IsNullOrEmpty(arc.Telephone) ? "." : arc.Telephone);
                    objBuilderConnectionOnly.Replace("{ARC}", arcAdd);
                }

                objBuilderConnectionOnly.Replace("{Username}", sendEmailDTO.userName);
                objBuilderConnectionOnly.Replace("{UserEmail}", sendEmailDTO.userEmail);

                //comment below line if new RAc connection only template is approved
                if (instadd_differs)
                {
                    string InsAddConnection = objorder.InstallationAddressId.HasValue ? InstallerBAL.GetAddressHTML2LineForEmail(objorder.InstallationAddressId.Value) : "Not Available";
                    //string InsAddConnection= InstallerBAL.GetInstallationAddressHTML2LineForEmail(Convert.ToInt32(Session[enumSessions.OrderId.ToString()].ToString()));
                    objBuilderConnectionOnly.Replace("{InstallerAddress}", "<td><div style=\"width: 100%; margin: 0; padding: 0;\"><table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\"><tr><td style=\"text-align: left\"> <font color=\"#888\" size=\"2\" face=\"Arial\">" + InsAddConnection + " </font></td></tr></table></div></td>");
                    objBuilderConnectionOnly.Replace("{HeadingInstallerAdd}", "<td><h3 style=\"font-size:11px; text-align: center; margin: 0; padding: 5px auto;\">Installation Address</h3></td>");
                }
                else
                {
                    //objBuilderConnectionOnly.Replace("{InstallerAddress}", "");
                    // objBuilderConnectionOnly.Replace("{HeadingInstallerAdd}", "");
                    objBuilderConnectionOnly.Replace("{InstallerAddress}", "");
                    objBuilderConnectionOnly.Replace("{HeadingInstallerAdd}", "");
                }

                //

                objBuilderConnectionOnly.Replace("{DeliveredTo}", OrdersBAL.GetDeliveryAddressHTML2Line(Convert.ToInt32(sendEmailDTO.orderID)));
                objBuilderConnectionOnly.Replace("{SpecialInstructions}", string.IsNullOrEmpty(sendEmailDTO.specialInstructions.Trim()) ? "." : sendEmailDTO.specialInstructions.Trim());

                ProductsList = Regex.Replace(ProductsList, @"(?i)<(table|tr|td)(?:\s+(?:""[^""]*""|'[^']*'|[^""'>])*)?>", "<$1>");
                objBuilderConnectionOnly.Replace("{ProductList}", ProductsList);

                LinqToSqlDataContext dbe = new LinqToSqlDataContext();
                var connInstallerEmail   = (from o in dbe.Orders
                                            join i in dbe.Installers on o.InstallerUnqCode equals i.UniqueCode.ToString()
                                            join ia in dbe.InstallerAddresses on i.AddressID equals ia.AddressID
                                            where o.OrderNo == OrderNo
                                            select ia.Email).Single();

                if (string.IsNullOrEmpty(connInstallerEmail))
                {
                    connInstallerEmail = ConfigurationManager.AppSettings["TeleSalesEmail"].ToString();
                }
                cslEmailMessage.From    = mailFrom;
                cslEmailMessage.To      = connInstallerEmail;
                cslEmailMessage.CC      = mailCC;
                cslEmailMessage.BCC     = mailCC;
                cslEmailMessage.Subject = mailSubjectConnectionOnly;
                cslEmailMessage.Message = Convert.ToString(objBuilderConnectionOnly.ToString());

                sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage);
            }

            db.Dispose();
            HttpContext.Current.ApplicationInstance.CompleteRequest();
        }
        catch (Exception objException)
        {
            CSLOrderingARCBAL.LinqToSqlDataContext db;
            db = new CSLOrderingARCBAL.LinqToSqlDataContext();
            db.USP_SaveErrorDetails(System.Web.HttpContext.Current.Request.Url.ToString(), "SendEmailWithPrice",
                                    Convert.ToString(objException.Message), Convert.ToString(objException.InnerException),
                                    Convert.ToString(objException.StackTrace), "", HttpContext.Current.Request.UserHostAddress, false,
                                    Convert.ToString(HttpContext.Current.Session[enumSessions.User_Id.ToString()]));
        }
    }
Beispiel #28
0
    private void SendEmailConfirmation()
    {
        try
        {
            string dr = Request["dr"].ToString();

            if (dr == "d")
            {
                dr = "Disconnect";
            }
            else
            {
                dr = "Reconnect";
            }
            UserName    = Session[enumSessions.User_Name.ToString()].ToString();
            UserEmail   = Session[enumSessions.User_Email.ToString()].ToString();
            CompanyName = GetARCName(Session[enumSessions.ARC_Id.ToString()].ToString());

            using (db = new LinqToSqlDataContext())
            {
                // ** NOn-edited ones
                var DrData = from d in db.DRs
                             join ins in db.Installers on d.Installer equals ins.InstallerCompanyID.ToString()
                                 where d.UserId == Session[enumSessions.User_Id.ToString()].ToString() && d.Emailed == false &&
                             d.ISEmizonUnit == false && d.FreeTextEntry != true
                             orderby d.DrId
                             select new { d.Reason, d.Simno, d.Datano, d.Chipno, d.Installer, ins.CompanyName };
                if (DrData.Any())
                {
                    String EmailDevicelist = "<table cellspacing='1' cellpadding='1' border='1' Width=\"60%\"><tr ><td style=\"color: #888;\"><b>Request Type</b></td><td style=\"color: #888;\"><b>Reason</b></td><td style=\"color: #888;\"><b>ESN/SIM</b></td><td style=\"color: #888;\"><b>NUA/Data</b></td><td style=\"color: #888;\"><b>Chip Number</b></td><td style=\"color: #888;\"><b>Installer</b></td></tr>";
                    foreach (var d in DrData)
                    {
                        EmailDevicelist += "<tr>";
                        if (dr == "Reconnect")
                        {
                            EmailDevicelist += "<td td style=\"color: #45b010;\">" + dr + "</td>"; //green
                        }
                        else if (dr == "Disconnect")
                        {
                            EmailDevicelist += "<td td style=\"color: #f64114;\">" + dr + "</td>"; //red
                        }
                        string szReason = "";
                        if (Request["dr"].ToString() == "r")
                        {
                            szReason = "n/a";
                        }
                        else
                        {
                            szReason = d.Reason;
                        }
                        EmailDevicelist += "<td>" + szReason + "</td>";
                        EmailDevicelist += "<td>" + d.Simno + "</td>";
                        EmailDevicelist += "<td>" + d.Datano + "</td>";
                        EmailDevicelist += "<td>" + d.Chipno + "</td>";
                        EmailDevicelist += "<td>" + GetInstallerName(d.Installer) + "</td>";
                        EmailDevicelist += "</tr>";
                    }
                    EmailDevicelist += "</table>";
                    String        mailHtml   = ReadTemplates.ReadMailTemplate(Server.MapPath("Template"), "EmailGrade.html");
                    StringBuilder objBuilder = new StringBuilder();
                    objBuilder.Append(mailHtml);
                    objBuilder.Replace("{UserName}", UserName);
                    objBuilder.Replace("{ArcName}", CompanyName);
                    objBuilder.Replace("{UserEmail}", UserEmail);
                    objBuilder.Replace("{DateofRequest}", DateTime.Now.ToString());
                    objBuilder.Replace("{Devicelist}", EmailDevicelist);
                    string szMess = "";
                    if (Request["dr"].ToString() == "r")
                    {
                        szMess = "Reconnection Request";
                    }
                    else
                    {
                        szMess = "Disconnection Request";
                    }
                    SendEmailMessage sendEmail       = new SendEmailMessage();
                    EmailMessage     cslEmailMessage = new EmailMessage();
                    cslEmailMessage.From    = mailFrom;
                    cslEmailMessage.To      = UserEmail + ";" + (Request["dr"].ToString() == "r" ? mailTO : string.Empty);
                    cslEmailMessage.CC      = mailCC + ";" + GetArcCcEmail(Session[enumSessions.ARC_Id.ToString()].ToString());
                    cslEmailMessage.BCC     = "";
                    cslEmailMessage.Subject = szMess;
                    cslEmailMessage.Message = Convert.ToString(objBuilder.ToString());
                    //adding emails to MSMQ
                    sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage);
                }
                // ** Free Text  ones

                var DrDataFreeText = from d in db.DRs
                                     join ins in db.Installers on d.Installer equals ins.InstallerCompanyID.ToString()
                                         where d.UserId == Session[enumSessions.User_Id.ToString()].ToString() && d.Emailed == false &&
                                     d.ISEmizonUnit == false && d.FreeTextEntry == true
                                     orderby d.DrId
                                     select new { d.Reason, d.Simno, d.Datano, d.Chipno, d.Installer, ins.CompanyName };
                if (DrDataFreeText.Any())
                {
                    String EmailDevicelistFreeText = "<table cellspacing='1' cellpadding='1' border='1' Width=\"60%\"><tr ><td style=\"color: #888;\"><b>Request Type</b></td><td style=\"color: #888;\"><b>Reason</b></td><td style=\"color: #888;\"><b>ESN/SIM</b></td><td style=\"color: #888;\"><b>NUA/Data</b></td><td style=\"color: #888;\"><b>Chip Number</b></td><td style=\"color: #888;\"><b>Installer</b></td></tr>";
                    foreach (var d in DrDataFreeText)
                    {
                        EmailDevicelistFreeText += "<tr>";
                        if (dr == "Reconnect")
                        {
                            EmailDevicelistFreeText += "<td td style=\"color: #45b010;\">" + dr + "</td>";     //green
                        }
                        else if (dr == "Disconnect")
                        {
                            EmailDevicelistFreeText += "<td td style=\"color: #f64114;\">" + dr + "</td>";     //red
                        }
                        string szReason = "";
                        if (Request["dr"].ToString() == "r")
                        {
                            szReason = "n/a";
                        }
                        else
                        {
                            szReason = d.Reason;
                        }
                        EmailDevicelistFreeText += "<td>" + szReason + "</td>";
                        EmailDevicelistFreeText += "<td>" + d.Simno + "</td>";
                        EmailDevicelistFreeText += "<td>" + d.Datano + "</td>";
                        EmailDevicelistFreeText += "<td>" + d.Chipno + "</td>";
                        EmailDevicelistFreeText += "<td>" + GetInstallerName(d.Installer) + "</td>";
                        EmailDevicelistFreeText += "</tr>";
                    }
                    EmailDevicelistFreeText += "</table>";
                    String        mailHtmlFreeText   = ReadTemplates.ReadMailTemplate(Server.MapPath("Template"), "EmailGrade.html");
                    StringBuilder objBuilderFreeText = new StringBuilder();
                    objBuilderFreeText.Append(mailHtmlFreeText);
                    objBuilderFreeText.Replace("{UserName}", UserName);
                    objBuilderFreeText.Replace("{ArcName}", CompanyName);
                    objBuilderFreeText.Replace("{UserEmail}", UserEmail);
                    objBuilderFreeText.Replace("{DateofRequest}", DateTime.Now.ToString());
                    objBuilderFreeText.Replace("{Devicelist}", EmailDevicelistFreeText);
                    string szMessFreeText = "";
                    if (Request["dr"].ToString() == "r")
                    {
                        szMessFreeText = "Reconnection Request";
                    }
                    else
                    {
                        szMessFreeText = "Disconnection Request";
                    }
                    SendEmailMessage sendEmailFreeText       = new SendEmailMessage();
                    EmailMessage     cslEmailMessageFreeText = new EmailMessage();
                    cslEmailMessageFreeText.From    = mailFrom;
                    cslEmailMessageFreeText.To      = UserEmail;
                    cslEmailMessageFreeText.CC      = mailTO + ";" + mailCC + ";" + GetArcCcEmail(Session[enumSessions.ARC_Id.ToString()].ToString());
                    cslEmailMessageFreeText.BCC     = "";
                    cslEmailMessageFreeText.Subject = szMessFreeText;
                    cslEmailMessageFreeText.Message = Convert.ToString(objBuilderFreeText.ToString());
                    //adding emails to MSMQ
                    sendEmailFreeText.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessageFreeText);
                }


                var upData = (from data in db.DRs
                              where data.UserId == Session[enumSessions.User_Id.ToString()].ToString() && data.Emailed == false &&
                              data.ISEmizonUnit == false
                              select data);
                foreach (var r in upData)
                {
                    r.Emailed = true;
                }
                db.SubmitChanges();

                // ** Flag Emizon units
                var EmizonUnits = (from data in db.DRs
                                   where data.UserId == Session[enumSessions.User_Id.ToString()].ToString() &&
                                   data.ISEmizonUnit == true
                                   select data);

                if (EmizonUnits.Any())
                {
                    foreach (var r in EmizonUnits)
                    {
                        r.AwaitingtobeProcessed = true;
                    }
                    db.SubmitChanges();
                }
            }
            pnlForm.Visible    = false;
            pnlConfirm.Visible = true;
            divuc1.Visible     = false;
            divuc2.Visible     = false;
            txtChipNo.Text     = "";
        }
        catch (Exception objException)
        {
            using (db = new LinqToSqlDataContext())
            {
                db.USP_SaveErrorDetails(Request.Url.ToString(), "btnSubmit_Click", Convert.ToString(objException.Message), Convert.ToString(objException.InnerException), Convert.ToString(objException.StackTrace), "", HttpContext.Current.Request.UserHostAddress, false, Convert.ToString(HttpContext.Current.Session[enumSessions.User_Id.ToString()]));
            }
        }
    }
Beispiel #29
0
 public async Task SendEmail(
     [ServiceBusTrigger("%SERVICEBUS_SENDEMAILQUEUE%", Connection = "SERVICEBUS_CONNECTIONSTRING")] SendEmailMessage message,
     [Blob("%WhitelistedPhoneNumbersBlobPath%", FileAccess.Read)] string whitelistedPhoneNumbers,
     [Blob("%WhitelistedEmailAddressesBlobPath%", FileAccess.Read)] string whitelistedEmailAddresses) =>
 await _emailService.SendEmailWithMailjet(message, whitelistedEmailAddresses, whitelistedPhoneNumbers);
Beispiel #30
0
 public Task <HttpResponseMessage> SendInvitationEmail(SendEmailMessage model, TokenModel token)
 {
     TokenClient.RefreshToken(_client, token);
     return(_client.PostAsJsonAsync(_memberRoutePrefix + "/SendInvitationEmail", model));
 }