public void Check()
        {
            try
            {
                var req    = WebRequest.Create(CheckUri);
                var res    = req.GetResponse();
                var stream = res.GetResponseStream();
                var sr     = new StreamReader(stream);
                var body   = sr.ReadToEnd();
                sr.Close();
                stream.Close();

                var matches = _ipPattern.Matches(body);

                // Send these IP address matches in an email to me.
                var msgBody = new StringBuilder();
                msgBody.AppendLine("IP Addresses:");

                foreach (var match in matches)
                {
                    msgBody.AppendLine(match.ToString());
                }

                var msg  = new MailMessage(EmailFrom.ToString(), EmailTo.ToString(), EmailSubject, msgBody.ToString());
                var smtp = new SmtpClient();
                smtp.Send(msg);
            }
            catch (Exception ex)
            {
                EventLog.WriteEntry(Assembly.GetExecutingAssembly().FullName, string.Format("{0}\n\n{1}", ex.Message, ex.StackTrace), EventLogEntryType.Error);
            }
        }
示例#2
0
        public static Response <History> Create(EmailMessage message)
        {
            var response = Response <History> .Create();

            if (message.To == null)
            {
                response.WithBusinessError(nameof(message.To), "Destinatário não informado.");
            }

            if (message.From == null)
            {
                response.WithBusinessError(nameof(message.From), "Remetente não informado.");
            }

            if (response.HasError)
            {
                return(response);
            }

            var to = EmailTo.Create(message.To.Name, message.To.Email);

            var from = EmailFrom.Create(message.From.Name, message.From.Email);

            var data = JsonConvert.SerializeObject(message);

            return(response.SetValue(new History(to, from, message.TemplateId, data)));
        }
示例#3
0
        public void CreateEmailAlert(long userId, Dictionary <string, string> values)
        {
            var user                = Users.Include("Contact").Where(p => p.UserId == userId).Single();
            var emailTo             = user.Contact.Email;
            var subjectTemplateCode = values["TMP_SUBJECT"];
            var bodyTemplateCode    = values["TMP_BODY"];


            var subjectTemplate = Templates.Where(p => p.Name == subjectTemplateCode && p.Deleted == false).Single().Value;
            var bodyTemplate    = Templates.Where(p => p.Name == bodyTemplateCode && p.Deleted == false).Single().Value;

            Email email = new Email();

            email.FromAddress       = values["EMAIL_FROM_ADDRESS"];
            email.FromName          = values["EMAIL_FROM_NAME"];
            email.Subject           = MergeTemplateValues(subjectTemplate, values);
            email.IsHtml            = true;
            email.Body              = MergeTemplateValues(bodyTemplate, values);
            email.EmailStatusTypeId = EmailStatusTypes.Where(p => p.Name == "Created").Single().EmailStatusTypeId;
            Emails.Add(email);
            EmailTo to = new EmailTo();

            to.Email   = email;
            to.Name    = $"{user.Contact.FirstName} {user.Contact.LastName}";
            to.Address = emailTo;
            EmailTos.Add(to);
        }
示例#4
0
        public ActionResult CreateSob(Obrabotka obrabotka)
        {
            if ((bool)Session["Manip_Tests"] == true && Session["Manip_Tests"] != null)
            {
                //Данные заявки
                var ids = db.ZayavkaNaSobes.Where(z => z.nomerzay == obrabotka.nomerzay).FirstOrDefault();
                int?id;
                if (ids == null)
                {
                    var sot = db.Sotrs.Where(z => z.ID_Sotr == obrabotka.Sotr_ID).FirstOrDefault();
                    id = sot.ID_Sotr;
                }
                else
                {
                    id = ids.Sotr_ID;
                }

                //Если валидация пройдена успешно
                if (ModelState.IsValid)
                {
                    //Добавление данных
                    db.Obrabotka.Add(new Obrabotka
                    {
                        Data_Sob   = obrabotka.Data_Sob,
                        Vremya_Sob = obrabotka.Vremya_Sob,
                        Kommnt     = obrabotka.Kommnt,
                        reshenie   = obrabotka.reshenie,
                        Sotr_ID    = (int)id,
                        nomerzay   = obrabotka.nomerzay
                    });
                    //Сохранение
                    db.SaveChanges();
                    EmailTo.MySendMail("" +
                                       "Приветствуем, " + ids.Sotrs.Full + "! " +
                                       "Для Вас назначено собеседование.<br><br>" +
                                       "Номер заявки: " + ids.nomerzay + "<br>" +
                                       "Дата собеседования: " + obrabotka.Data_Sob + ";<br>" +
                                       "Время собеседования: " + obrabotka.Vremya_Sob + ".<br><br>" +
                                       "Большая просьба, не опаздывать!!!",
                                       ids.Sotrs.Email, "Компания CMS", "Собеседование");
                    if (Session["perehod"] == null)
                    {
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        return(Redirect(Session["perehod"].ToString()));
                    }
                }
                //Список сотрудников
                ViewBag.Sotr_ID = new SelectList(db.Sotrs, "ID_Sotr", "Full", obrabotka.Sotr_ID);
                return(View(obrabotka));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
示例#5
0
 public History(EmailTo to
                , EmailFrom from
                , string templateId
                , string data) : base(Guid.NewGuid())
 {
     To           = to;
     From         = from;
     TemplateId   = templateId;
     TemplateData = data;
 }
        private List <Personalization> BuildToRecipients()
        {
            var addressesTo  = EmailTo?.Split(';');
            var addressesBcc = EmailBCC?.Split(';');
            var addressesCc  = EmailCC?.Split(';');

            var personalizationList = new List <Personalization>();

            foreach (var address in addressesTo)
            {
                var personalization = new Personalization
                {
                    Tos = new List <EmailAddress> {
                        new EmailAddress()
                        {
                            Email = address
                        }
                    }
                };

                if (addressesBcc != null)
                {
                    foreach (var bcc in addressesBcc)
                    {
                        personalization.Bccs = new List <EmailAddress> {
                            new EmailAddress()
                            {
                                Email = bcc
                            }
                        };
                    }
                }

                if (addressesCc != null)
                {
                    foreach (var cc in addressesCc)
                    {
                        personalization.Ccs = new List <EmailAddress> {
                            new EmailAddress()
                            {
                                Email = cc
                            }
                        };
                    }
                }

                personalizationList.Add(personalization);
            }

            return(personalizationList);
        }
示例#7
0
 public Requests.EmailSend ToObject()
 {
     return(new Requests.EmailSend
     {
         Account = Account,
         AttachmentPaths = AttachmentPaths?.Split(','),
         EmailCC = EmailCC?.Split(','),
         EmailFrom = EmailFrom,
         EmailTo = EmailTo?.Split(','),
         Message = Message,
         Mime = Mime,
         Subject = Subject
     });
 }
    /// <summary>
    /// Sends the email.
    /// </summary>
    /// <param name="sender">The sender.</param>
    /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
    protected void SendEmail(object sender, EventArgs e)
    {
        try
        {
            var salesOrder = BindingSource.Current as ISalesOrder;
            if (salesOrder != null)
            {
                const string scriptFmtString = @"dojo.require('Sage.Utility.Email');Sage.Utility.Email.writeEmail('{0}', '{1}', '{2}');";
                var          to = new List <EmailTo>();
                var          cc = new EmailTo();
                if (salesOrder.RequestedBy != null)
                {
                    if (!Equals(salesOrder.RequestedBy, salesOrder.ShippingContact) &&
                        !Equals(salesOrder.RequestedBy, salesOrder.BillingContact))
                    {
                        cc.firstName    = salesOrder.RequestedBy.FirstName;
                        cc.lastName     = salesOrder.RequestedBy.LastName;
                        cc.emailAddress = salesOrder.RequestedBy.Email;
                    }
                }
                if (salesOrder.ShippingContact != null)
                {
                    to.Add(new EmailTo(salesOrder.ShippingContact.FirstName, salesOrder.ShippingContact.LastName, salesOrder.ShippingContact.Email));
                }
                if (salesOrder.BillingContact != null && !Equals(salesOrder.BillingContact, salesOrder.ShippingContact))
                {
                    to.Add(new EmailTo(salesOrder.BillingContact.FirstName, salesOrder.BillingContact.LastName, salesOrder.BillingContact.Email));
                }

                var    emailTo = new { to = to, cc = cc, bcc = string.Empty };
                string subject = PortalUtil.JavaScriptEncode(
                    string.Format(GetLocalResourceObject("lblEmailSubject.Caption").ToString(),
                                  salesOrder.SalesOrderNumber, salesOrder.Account.AccountName));
                string emailBody = FormatEmailBody(salesOrder);
                ScriptManager.RegisterStartupScript(this, GetType(), "emailscript",
                                                    string.Format(scriptFmtString, JsonConvert.SerializeObject(emailTo), subject, emailBody), true);
            }
        }
        catch (Exception ex)
        {
            log.Error(ex.Message);
        }
    }
示例#9
0
        public ActionResult Create(ZayavkaNaSobes zayavkaNaSobes, int[] idqu, string[] Doc)
        {
            //Получение данных аккаунта
            var ids = db.Sotrs.Where(s => s.Login_Acc == User.Identity.Name).FirstOrDefault();

            if (idqu != null && idqu.Length > 0)
            {
                //Цикл по всем вопросам
                for (int i = 0; i < idqu.Length; i++)
                {
                    //Добавление данных
                    db.ZayavkaNaSobes.Add(new ZayavkaNaSobes
                    {
                        Sotr_ID     = ids.ID_Sotr,
                        Qwe_ID      = idqu[i],
                        otvet       = Doc[i],
                        datazayavki = Session["dataz"].ToString(),
                        nomerzay    = Session["NumZ"].ToString(),
                        itog        = false
                    });
                    //Сохранение
                    db.SaveChanges();
                    ViewBag.Suсc    = true;
                    ViewBag.SucсMes = "Ваша заявка успешно отправлена, ожидайте решение компании";
                }
                EmailTo.MySendMail("" +
                                   "Приветствуем, " + ids.Full + "! " +
                                   "Спасибо за оформленную заявку для прохождения собеседования в ООО \"Си эМ эС\"! Ожидайте, в ближайшее время мы примем решение.<br><br>" +
                                   "Номер заявки: " + Session["NumZ"].ToString() + "* <br><br>" +
                                   "* - С помощью данного номера, Вы можете просматривать результат поданной заявки!!!",
                                   ids.Email, "Компания CMS", "Собеседование");
                //Вывод отчета по заявке
                return(Redirect("/Home/ZayObr/" + Session["NumZ"].ToString()));
            }
            return(RedirectToAction("Zayavki", "Home"));
        }
示例#10
0
        public ActionResult Register(RegisterModel model)
        {
            //Если значение поля для загрузки фото не пустое
            if (model.ImageUpload != null)
            {
                //Получение имени файла
                string filename = Path.GetFileNameWithoutExtension(model.ImageUpload.FileName);
                //Расширение файла
                string extension = Path.GetExtension(model.ImageUpload.FileName);
                //Новое уникальное наименование, которое будет занесено в БД
                filename = filename + DateTime.Now.ToString("yymmssfff") + extension;
                //Значение для поля Фото, которое будет добавлено в БД с путем к файлу
                model.Photo = "/Content/Photo/st/" + filename;
                //Загрузка фото в папку
                model.ImageUpload.SaveAs(Path.Combine(Server.MapPath("~/Content/Photo/st/"), filename));
            }
            else
            {
                //Иначе дефолтное значение
                model.Photo = "/Content/Photo/st/default.png";
            }
            Accounts user = null;

            //Поиск пльзователей с таким логином
            user = db.Accounts.FirstOrDefault(u => u.Login == model.Login);
            //Если не найдено, то добавляем нового
            if (user == null)
            {
                //Если валидация пройдена успешно
                if (ModelState.IsValid)
                {
                    //Создаем команду
                    SqlCommand command = new SqlCommand("", Program.SqlConnection);
                    //Запрос для команды (проверка на возраст)
                    command.CommandText = "select Datediff(year, '" + model.Day_Of_Birth + "', getdate())";
                    int?voz = 0;
                    Program.SqlConnection.Open();
                    // Выполнение команды
                    voz = (int)command.ExecuteScalar();
                    Program.SqlConnection.Close();
                    //В соответствии со ст. 63 ТК РФ, Официально можно работать в России с 16 лет
                    //Проверка, есть ли пользователю 16 лет и более
                    if (voz <= 16)
                    {
                        ModelState.AddModelError("Day_Of_Birth", "Возрастные ограничения 18+");
                        return(View(model));
                    }
                    Session["War"] = false;
                    //Добавление нового аккаунта
                    db.Accounts.Add(new Accounts {
                        Login = model.Login, Password = model.Password, Password_Shifr = Shifrovanie.Hash(model.Password), Role_ID = 4, Logical_Delete = false, Block = false
                    });
                    //Сохранение данных
                    db.SaveChanges();
                    //Добавление сотрудника
                    db.Sotrs.Add(new Sotrs
                    {
                        Surname_Sot      = model.Surname_Sot,
                        Name_Sot         = model.Name_Sot,
                        Petronumic_Sot   = model.Petronumic_Sot,
                        Day_Of_Birth     = model.Day_Of_Birth,
                        Address          = Shifrovanie.Encryption(model.Address),
                        Num_Phone        = model.Num_Phone,
                        Email            = model.Email,
                        Photo            = model.Photo,
                        Date_of_adoption = null,
                        fired            = false,
                        Guest            = true,
                        Logical_Delete   = false,
                        Login_Acc        = model.Login
                    });
                    //Сохранение данных
                    db.SaveChanges();
                    //Отправка письма на почту
                    EmailTo.MySendMail("" +

                                       "Приветствуем, " + model.Surname_Sot + " " + model.Name_Sot + " " + model.Petronumic_Sot + "! <br>Мы рады, " +
                                       "что вы зарегистрировались в нашей системе. Мы надеемся, что не разочаруем Вас. С радостью ответим на Ваши вопросы." +
                                       "<br><br>Ваш Логин: " + model.Login + " <br>Пароль: " + model.Password,
                                       model.Email, "Компания CMS", "Регистрация на сайте компании CMS");
                    //Поиск пользователя
                    user = db.Accounts.Where(u => u.Login == model.Login && u.Password == model.Password).FirstOrDefault();
                    //Если пользователь найден
                    if (user != null)
                    {
                        //Авторизовываем пользователя
                        FormsAuthentication.SetAuthCookie(model.Login, true);
                        //Получение данных о пользователе
                        var s = db.Sotrs.Where(sot => sot.Login_Acc == model.Login);
                        Session["FIO"]          = model.Surname_Sot + " " + model.Name_Sot + " " + model.Petronumic_Sot;
                        Session["Email"]        = model.Email;
                        Session["Num_Phone"]    = model.Num_Phone;
                        Session["Address"]      = model.Address;
                        Session["Day_Of_Birth"] = model.Day_Of_Birth;
                        Session["Photo"]        = model.Photo;
                        Session["Dolj"]         = "Статус: Гость";
                        //Открытие личного кабинета
                        EmployeesHub.BroadcastData();
                        return(RedirectToAction("Index", "Home"));
                    }
                    //Иначе выводим надпись, данные введены некоррекно
                    else
                    {
                        ModelState.AddModelError("", "Попробуйте зарегистрироваться снова");
                        Session["War"] = true;
                        return(View(model));
                    }
                }
            }
            else
            {
                //Сообщение, что пользователь с таким логином уже существует
                ModelState.AddModelError("", "Пользователь с данным логином уже существует");
                Session["War"] = true;
                return(View(model));
            }

            return(View(model));
        }
        public string Send(EmailMessage emailMessage)
        {
            string NameFrom = emailMessage.FromAddresses.Substring(1, emailMessage.FromAddresses.IndexOf("/") - 1);
            string NameTo   = emailMessage.FromAddresses.Substring(1, emailMessage.FromAddresses.IndexOf("/") - 1);
            var    message  = new MimeMessage();

            try
            {
                message.From.Add(new MailboxAddress(NameFrom, emailMessage.FromAddresses));
                message.To.Add(new MailboxAddress(NameTo, emailMessage.ToAddresses));
                message.Subject = emailMessage.Subject;
                var bodyBuilder1 = new BodyBuilder();
                bodyBuilder1.HtmlBody = emailMessage.Content;


                var builder = new BodyBuilder();
                var image   = builder.LinkedResources.Add(@"./poulinalogo.png");
                image.ContentId = MimeUtils.GenerateMessageId();


                builder.HtmlBody = string.Format(@"<br><br><br>

<table>
  <thead>
    <tr>
    <td>
      {0}
      </td>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>E-Mail : {1}</td>
    </tr>
    <tr>
      <td>Service : Informatique Operationnelle</td>
    </tr>
    <tr>
      <td>Poste : 801249</td>
    </tr>
    <tr>
      <td>GSM : 58278855</td>
    </tr>
</tbody>
<tfoot> 
<center><img src=""cid:{2}""></center>
</tfoot>
</table>", NameFrom, message.From.ToString(), image.ContentId);



                var multipart = new Multipart("mixed");
                multipart.Add(bodyBuilder1.ToMessageBody());
                multipart.Add(builder.ToMessageBody());


                var multipart1 = new Multipart("Attachements");
                message.Body = multipart;



                using (var emailClient = new SmtpClient())
                {
                    emailClient.Connect(_emailConfiguration.SmtpServer, _emailConfiguration.SmtpPort, false);

                    emailClient.Send(message);
                    emailClient.Disconnect(true);


                    EmailFrom emailFrom = new EmailFrom();

                    emailFrom.FromAddresses = emailMessage.FromAddresses;

                    emailFrom.FromName         = NameFrom;
                    emailFrom.Subject          = emailMessage.Subject;
                    emailFrom.Content          = emailMessage.Content;
                    emailFrom.SendDate         = DateTime.Now;
                    emailFrom.MessageType      = "info";
                    emailFrom.ExceptionMessage = "0";

                    _context.EmailFroms.Add(emailFrom);

                    EmailTo emailTo = new EmailTo();

                    emailTo.IdMail      = emailFrom.IdMail;
                    emailTo.Seen        = false;
                    emailTo.ToAddresses = emailMessage.ToAddresses;

                    emailTo.ToName      = NameTo;
                    emailTo.ReceiveType = "A";

                    _context.EmailTos.Add(emailTo);


                    _context.SaveChanges();
                    return("Mail success");
                }
            }
            catch (Exception ex)
            {
                EmailFrom emailFrom = new EmailFrom();

                emailFrom.FromAddresses = emailMessage.FromAddresses;

                emailFrom.FromName         = NameFrom;
                emailFrom.Subject          = emailMessage.Subject;
                emailFrom.Content          = emailMessage.Content;
                emailFrom.SendDate         = DateTime.Now;
                emailFrom.MessageType      = "info";
                emailFrom.ExceptionMessage = ex.Message;

                _context.EmailFroms.Add(emailFrom);


                EmailTo emailTo = new EmailTo();

                emailTo.IdMail      = emailFrom.IdMail;
                emailTo.Seen        = false;
                emailTo.ToAddresses = emailMessage.ToAddresses;

                emailTo.ToName      = NameTo;
                emailTo.ReceiveType = "A";
                _context.EmailTos.Add(emailTo);

                _context.SaveChanges();
                return(ex.Message);
            }
        }
示例#12
0
        public async Task <bool> Send(EmailTo email_to, string subject, MailBasic view_data, string view_name = "Basic", string from = null, string[] attachments = null)
        {
            try
            {
                MailMessage mail = new MailMessage();
                System.Net.Mail.SmtpClient SmtpServer = new System.Net.Mail.SmtpClient(_mailSettings.Host);

                // mail.To.Add("to_address");
                //mail.Subject = "Test Mail";
                //mail.Body = "This is for testing SMTP mail from GMAIL";

                SmtpServer.Port        = (int)_mailSettings.Port;
                SmtpServer.Credentials = new System.Net.NetworkCredential(_mailSettings.Mail, _mailSettings.Password);
                SmtpServer.EnableSsl   = true;

                view_data.AppUrl    = _appConfig.APP_URL;
                view_data.AppLogo   = _appConfig.APP_URL + "/uploads/app/" + _appConfig.APP_LOGO;
                view_data.CopyRight = "&copy; " + DateTime.Now.Year + " " + _appConfig.APP_NAME + " | All Rights Reserved.";

                if (from == null)
                {
                    from = _mailSettings.Mail;
                }

                var arrayEmail = from.Replace(">", "").Split('<');
                var from_name  = arrayEmail[0].Trim();
                var from_email = arrayEmail[1].Trim();

                from_email = from_email == null ? from_name : from_email;
                mail.From  = new MailAddress(from_email);

                var to = new
                {
                    To = email_to.To,
                    //CC = CommonHelper.IsPropertyExist(email_to, "CC") ? email_to.CC : new string[0],
                    CC = email_to.Cc,
                    //Bcc = CommonHelper.IsPropertyExist(email_to, "Bcc") ? email_to.Bcc : new string[0],
                    Bcc = email_to.Bcc,
                    //Attachments = CommonHelper.IsPropertyExist(email_to, "Attachments") ? email_to.Attachments : new string[0],
                    Attachments = email_to.Attachments
                };

                foreach (var recipient in to.To)
                {
                    //var arrayRecipient = recipient.Replace(">", "").Split('<');
                    //var to_name = arrayRecipient[1].Trim();
                    //var to_email = arrayRecipient[0].Trim();
                    mail.To.Add(recipient);
                }

                if (to.CC != null)
                {
                    foreach (var recipient in to.CC)
                    {
                        //var arrayRecipient = recipient.Replace(">", "").Split('<');
                        //var cc_name = arrayRecipient[1].Trim();
                        //var cc_email = arrayRecipient[0].Trim();
                        mail.CC.Add(recipient);
                    }
                }

                if (to.Bcc != null)
                {
                    foreach (var recipient in to.Bcc)
                    {
                        //var arrayRecipient = recipient.Replace(">", "").Split('<');
                        //var bcc_name = arrayRecipient[1].Trim();
                        //var bcc_email = arrayRecipient[0].Trim();
                        mail.Bcc.Add(recipient);
                    }
                }

                if (to.Attachments != null)
                {
                    foreach (var value in to.Attachments)
                    {
                        mail.Attachments.Add(value);
                    }
                }

                mail.IsBodyHtml = true;
                mail.Subject    = subject;
                //mail.Body = ConvertViewToString("~/Views/Emails/Html/" + view_name + ".cshtml", view_data);
                var body_html = await GetParsedContent("~/Views/Emails/Html/" + view_name + ".cshtml", view_data);

                body_html = body_html.Replace("\r\n", "");
                mail.Body = body_html;

                SmtpServer.Send(mail);
            }
            catch (Exception ex)
            {
                //SignerHelper.LogEx(ex);
                return(false);
            }

            return(true);
        }
示例#13
0
文件: Program.cs 项目: sburnell/ms
        static int LoadEmail(bool ProductionOnly, string[] args, SqlCommand cmd2, DateTime CurrentDateTime, string EmailIdentifier)
        {
            int Status = 0;
            // Create a database connection
            SqlConnection conn = new SqlConnection("Data Source=(local);Integrated Security=SSPI;Initial Catalog=EATDW;Connection Timeout=120");

            conn.Open();
            SqlCommand cmd = conn.CreateCommand();

            // Retrieve emails from the database.
            cmd.CommandText = "Select Top 900 SendEmailId,EmailTo,EmailCC,EmailSubject,EmailBodyText,EmailBodyDataTableHeader,EmailBodyDataTable,EmailBodyDataTableFooter From Email_SendEmail_Archive Where SendEmailType = '" + args[0] + "' And SendEmailLevelName = '" + args[1] + "' And SendAttemptDateTime = '" + CurrentDateTime + "' And SendStatus = 'Not Sent' And SummarySegment = '" + args[3] + "'";

            SqlDataReader reader = cmd.ExecuteReader();

            String SendEmailId = "";
            String EmailTo;
            String EmailCC;
            String EmailSubject;
            String EmailBody;
            String EmailBodyText;
            String EmailBodyDataTableHeader;
            String EmailBodyDataTable;
            String EmailBodyDataTableFooter;

            try
            {
                while (reader.Read())
                {
                    SendEmailId              = reader["SendEmailId"].ToString();
                    EmailTo                  = reader["EmailTo"].ToString();
                    EmailCC                  = reader["EmailCC"].ToString();
                    EmailSubject             = reader["EmailSubject"].ToString();
                    EmailBodyText            = reader["EmailBodyText"].ToString();
                    EmailBodyDataTableHeader = reader["EmailBodyDataTableHeader"].ToString();
                    EmailBodyDataTable       = reader["EmailBodyDataTable"].ToString();
                    EmailBodyDataTableFooter = reader["EmailBodyDataTableFooter"].ToString();

                    // Prep the email for sending
                    EmailTo = EmailTo.Replace(";", "@microsoft.com,");
                    if (EmailTo != "")
                    {
                        EmailTo = EmailTo.Substring(0, EmailTo.Length - 1);
                    }

                    EmailCC = EmailCC.Replace(";", "@microsoft.com,");
                    if (EmailCC != "")
                    {
                        EmailCC = EmailCC.Substring(0, EmailCC.Length - 1);
                    }


                    EmailBody = EmailBodyText;
                    if (!ProductionOnly)
                    {
                        EmailBody = EmailBody.Replace("<tr><td><img src=\"http://annuity/emailbanner.jpg\"/><br/></td></tr>", "<tr><td>To: [EmailTo]</td></tr><tr><td>CC: [EmailCC]</td></tr><tr><td><img src=\"http://annuity/emailbanner.jpg\"/><br/></td></tr>");
                        EmailBody = EmailBody.Replace("[EmailTo]", EmailTo);
                        EmailBody = EmailBody.Replace("[EmailCC]", EmailCC);
                    }
                    EmailBody = EmailBody.Replace("[EmailBodyDataTableHeader]", EmailBodyDataTableHeader);
                    EmailBody = EmailBody.Replace("[EmailBodyDataTable]", EmailBodyDataTable);
                    EmailBody = EmailBody.Replace("[EmailBodyDataTableFooter]", EmailBodyDataTableFooter);
                    EmailBody = EmailBody.Replace("[EmailIdentifier]", EmailIdentifier);



                    //Console.WriteLine("done setting parameters for: " + SendEmailId);//test

                    //Console.WriteLine("EmailTo:" + EmailTo);//test
                    //Console.WriteLine("EmailCC:" + EmailCC);//test

                    // Send Email
                    try
                    {
                        SendEmail(EmailTo, EmailCC, EmailSubject, EmailBody, SendEmailId, ProductionOnly);

                        //Console.WriteLine("done sending email for: " + SendEmailId);//test


                        cmd2.CommandType = CommandType.Text;
                        cmd2.CommandText = "Update Email_SendEmail_Archive Set SendStatus = 'Success' Where SendEmailId = " + SendEmailId + " And SendAttemptDateTime = '" + CurrentDateTime + "'";
                    }
                    catch (Exception ex)
                    {
                        String ErrorMessage = ex.Message;
                        //Console.WriteLine(ErrorMessage);//test
                        //Console.ReadLine();//test

                        cmd2.CommandType = CommandType.Text;
                        cmd2.CommandText = "Update Email_SendEmail_Archive Set SendStatus = 'Fail - App Error' Where SendEmailId = " + SendEmailId + " And SendAttemptDateTime = '" + CurrentDateTime + "'";
                        Status           = 1;
                    }

                    cmd2.ExecuteNonQuery();

                    //Console.WriteLine("done setting email send status for: " + SendEmailId);//test
                }
            }
            catch (Exception ex2)
            {
                String ErrorMessage = ex2.Message;
                //Console.WriteLine(ErrorMessage);//test
                //Console.ReadLine();//test

                cmd2.CommandType = CommandType.Text;
                cmd2.CommandText = "Update Email_SendEmail_Archive Set SendStatus = 'Fail - App Error' Where SendEmailId = " + SendEmailId + " And SendAttemptDateTime = '" + CurrentDateTime + "'";
                cmd2.ExecuteNonQuery();
                Status = 1;

                //Console.WriteLine("done setting email app failure for: " + SendEmailId);//test
            }

            reader.Close();
            conn.Close();
            return(Status);
        }
        public void SendEmail()
        {
            var message = new MimeMessage();

            // Add Email From
            message.From.Add(new MailboxAddress(EmailFrom));

            // Add Email To
            if (EmailTo != null && EmailTo != String.Empty)
            {
                if (EmailTo.Contains(";"))
                {
                    List <string> toList = new List <string>();
                    toList = EmailTo.Split(';').ToList();
                    foreach (string email in toList)
                    {
                        message.To.Add(new MailboxAddress(email));
                    }
                }
                else
                {
                    message.To.Add(new MailboxAddress(EmailTo));
                }
            }
            // Add Email CC
            if (EmailCC != null && EmailCC != String.Empty)
            {
                if (EmailCC.Contains(";"))
                {
                    List <string> toList = new List <string>();
                    toList = EmailCC.Split(';').ToList();
                    foreach (string email in toList)
                    {
                        message.Cc.Add(new MailboxAddress(email));
                    }
                }
                else
                {
                    message.Cc.Add(new MailboxAddress(EmailCC));
                }
            }

            // Add Subject, currently just an error subject
            message.Subject = EmailSubject;

            // Add Body, currently just an error body
            message.Body = new TextPart("plain")
            {
                Text = EmailBody
            };

            using (var client = new SmtpClient(new ProtocolLogger("smtp.log")))
            {
                int  count    = 0;
                int  maxTries = 1000;
                bool done     = false;
                while (done == false)
                {
                    try
                    {
                        UpdateConsoleStep("Attempting to Connect to SMTP Server...");
                        client.Disconnect(true);
                        client.Timeout = 60000;
                        client.ServerCertificateValidationCallback = (s, c, h, e) => true;
                        client.CheckCertificateRevocation          = false;

                        //client.SslProtocols = System.Security.Authentication.SslProtocols.Tls;
                        client.Connect(EmailConfig.SmtpServer, EmailConfig.SmtpPort, MailKit.Security.SecureSocketOptions.Auto);
                        done = true;
                    }
                    catch (Exception e)
                    {
                        UpdateConsoleStep(e.Message);
                        client.Disconnect(true);
                        if (e.Message.Contains("existing connection was forcibly closed"))
                        {
                            if (++count == maxTries)
                            {
                                return;
                            }
                            else
                            {
                                System.Threading.Thread.Sleep(500);
                            }
                        }
                    }
                }

                UpdateConsoleStep("Authenticating User to SMTP Server...");
                client.Authenticate(EmailConfig.SmtpUsername, EmailConfig.SmtpPassword);

                UpdateConsoleStep("Sending Email...");
                client.Send(message);

                UpdateConsoleStep("Disconnecting from SMTP Server...");
                client.Disconnect(true);
            }
        }
示例#15
0
        public void IssueZendeskReturnLabel(string no, string docNo, bool closeWindow, Zendesk ticket)
        {
            SendService ss = new SendService();

            string pdf64String     = string.Empty;
            string amazonBucketURL = string.Empty;

            try
            {
                if (ExistingZendeskTicket)
                {
                    string message = string.Empty;
                    ZendeskTicket = ticket;

                    if (EmailTo != null)
                    {
                        int index = EmailTo.IndexOf('@');
                        EmailTo = EmailTo.Insert(index, "+id" + TicketNo);
                    }
                    else
                    {
                        EmailTo = string.Empty;
                    }

                    if (FromEmail == null)
                    {
                        FromEmail = string.Empty;
                    }

                    pdf64String = ss.IssueReturnLabel(no, EmailTo, ExistingZendeskTicket, FromEmail, DownloadManually, CustomerEmailAddress, FromEmailName, EmailSubject, ref amazonBucketURL, GenerateURL);

                    Session["NoUserInteraction"] = true;

                    ZendeskTicket.UpdateZendeskTicketWithPDFFile(pdf64String, no, amazonBucketURL);

                    message = no + ", Return label is being processed and will be emailed within 1 hour.";

                    Page.ClientScript.RegisterStartupScript(this.GetType(), "issueReturnLableExistingTicket", "alert('" + Json.Encode(message) + "');", true);

                    if (closeWindow)
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "closeAfterProcessing", "parent.window.close();", true);
                    }
                }
                else if (NewZendeskTicket)
                {
                    string message = string.Empty;

                    pdf64String = ss.IssueReturnLabel(no, EmailTo, ExistingZendeskTicket, FromEmail, DownloadManually, CustomerEmailAddress, FromEmailName, EmailSubject, ref amazonBucketURL, GenerateURL);
                    Session["NoUserInteraction"] = true;

                    long?newZendeskTicketID = 0;

                    ZendeskTicket      = new Zendesk();
                    newZendeskTicketID = ZendeskTicket.CreateNewZendeskTicketWithPDFFile(pdf64String, no, amazonBucketURL, EmailTo, CustomerName, docNo);

                    message = "New Zendesk Ticket is: " + newZendeskTicketID + @".

" + no + ", Return label is being processed and will be emailed within 1 hour.";

                    Page.ClientScript.RegisterStartupScript(this.GetType(), "issueReturnLabelNewTicket", "alert('" + Json.Encode(message) + "');", true);
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "closeErrorAlert", "parent.window.close();", true);
                }
                else if (DownloadManually)
                {
                    string message = string.Empty;
                    pdf64String = ss.IssueReturnLabel(no, string.Empty, ExistingZendeskTicket, string.Empty, DownloadManually, CustomerEmailAddress, FromEmailName, EmailSubject, ref amazonBucketURL, GenerateURL);
                    Session["NoUserInteraction"] = true;

                    if (pdf64String != string.Empty) // Display only the URL
                    {
                        ZendeskTicket = new Zendesk();

                        ZendeskTicket.DownloadRMAPDFManually(pdf64String, no);

                        message = no + ", Return label has been successfully downloaded.";

                        Page.ClientScript.RegisterStartupScript(this.GetType(), "manualDownloadExistingTicket", "alert('" + Json.Encode(message) + "');", true);
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "closeAfterDownload", "parent.window.close();", true);
                    }
                    else
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "manualDownloadExistingTicket", "alert('The file could not be downloaded.');", true);
                    }
                }
                else if (GenerateURL)
                {
                    string message          = string.Empty;
                    string clipboardMessage = string.Empty;
                    pdf64String = ss.IssueReturnLabel(no, string.Empty, ExistingZendeskTicket, string.Empty, DownloadManually, CustomerEmailAddress, FromEmailName, EmailSubject, ref amazonBucketURL, GenerateURL);
                    Session["NoUserInteraction"] = true;

                    if (amazonBucketURL != string.Empty) // Display only the URL
                    {
                        BitlyAPI bitlyAPI = new BitlyAPI();

                        string url = bitlyAPI.ShortenURL(amazonBucketURL);

                        message = no + ", Return label URL has been successfully generated.";

                        clipboardMessage = @"Hello, 

Your return request has been approved.  Your Return Merchandise Authorization number is " + no + @"

Follow the link below to download your return instructions and shipping label. Or copy and paste the link into your browser.

" + url + @"

IMPORTANT: Please remove ALL locks and passwords. Any device(s) received locked with your information will be denied, returned at your expense with no refund submitted for processing.

Thank You";

                        Page.ClientScript.RegisterStartupScript(this.GetType(), "clipboardMessage", "CopyToClipboard('" + Json.Encode(clipboardMessage) + "');", true);
                    }
                    else
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "manualGenerateURL", "alert('The URL could not be generated.');", true);
                    }
                }
                else
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "manualDownloadExistingTicket", "alert('Please select a valid option.');", true);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);

                Page.ClientScript.RegisterStartupScript(this.GetType(), "errorAlert", "alert('" + ex.Message.Replace("'", "\"").Replace("\n", "\\n") + "');", true);

                if (ex.Message.ToLower().Contains("session"))
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "closeErrorAlert", "parent.window.close();", true);
                }
            }
        }
        public async Task <ContentResult> Send()
        {
            dynamic respo;

            try
            {
                HttpContext.Session.Set(Auth.Session, "1");

                var user = _authHelper.User();
                var mail = new MailHelper(_appConfig);

                if (!ValidateStamperPos(Request.Form["positions"]))
                {
                    var initResp = new CommonHelper(_config).Responder("error", "Oops!", "Stamper position is not valid", "reload()");

                    return(Content(JsonConvert.SerializeObject(initResp), "application/json"));
                }

                var form_document_key = Request.Form["document_key"].ToString();
                var document          = _repository.signer_file.Where(o => o.document_key == form_document_key).FirstOrDefault();
                _signerHelper.Logging("Assign Pointing Signature, The Request Signature Req ID:" + document.request_id);
                var requestsData = _repository.signer_requests.Where(o => o.id == document.request_id).Where(o => o.next_order == 0)
                                   .Where(o => o.status == "Draft").FirstOrDefault();
                var workflow = _repository.signer_workflow.Where(o => o.request_id == document.request_id).Select(o => o.email).ToList();
                var name     = JsonConvert.DeserializeObject(Request.Form["name"]);
                var emails   = JsonConvert.DeserializeObject <dynamic>(Request.Form["emails"]);

                var     message        = Request.Form["message"];
                var     documentKey    = document.document_key;
                var     duplicate      = Request.Form["duplicate"];
                var     chain          = Request.Form["chain"];
                dynamic chainEmails    = null;
                dynamic chainPositions = null;

                var    positions = new List <dynamic>();
                string activity  = "";
                //if (emails.Count == 1)
                if (Enumerable.Count(emails) == 1)
                {
                    var first_email = System.Linq.Enumerable.FirstOrDefault(emails);
                    activity = "Signing request sent to <span class=\"text - primary\">" + first_email.employee_email + "</span> by <span class=\"text-primary\">" + user.employee_name + "</span>";
                }
                else
                {
                    activity = "Signing request sent to <span class=\"text - primary\">" + String.Join(",", emails) + "</span> by <span class=\"text-primary\">" + user.employee_name + "</span>";
                }

                if (!string.IsNullOrWhiteSpace(Request.Form["positions"]) && document.is_template == "No")
                {
                    var positionsOriginal = JsonConvert.DeserializeObject <dynamic>(Request.Form["positions"]);

                    if (emails != null)
                    {
                        foreach (string positionsSingle in positionsOriginal)
                        {
                            var obj_positionsSingle = JsonConvert.DeserializeObject <dynamic>(positionsSingle);
                            if (obj_positionsSingle != null)
                            {
                                if (Request.Form["docWidth"] != "set")
                                {
                                    var docWidth = (string)Request.Form["docWidth"];
                                    obj_positionsSingle.Insert(0, docWidth);
                                }
                                positions.Add(JsonConvert.SerializeObject(obj_positionsSingle));
                            }
                            else
                            {
                                positions.Add("");
                            }
                        }
                    }
                    else
                    {
                        var obj_positionsSingle = JsonConvert.DeserializeObject <dynamic>(positionsOriginal[0].ToString());
                        if (Request.Form["docWidth"] != "set")
                        {
                            var docWidth = (string)Request.Form["docWidth"];
                            obj_positionsSingle.Insert(0, docWidth);
                        }
                        positions[0] = JsonConvert.SerializeObject(obj_positionsSingle);
                    }
                }
                else if (!string.IsNullOrWhiteSpace(Request.Form["positions"]) && document.is_template == "Yes")
                {
                    foreach (var email in emails)
                    {
                        positions.Add(Request.Form["positions"]);
                    }
                }
                else
                {
                    foreach (var email in emails)
                    {
                        positions.Add("");
                    }
                }

                if (chain == "Yes")
                {
                    chainEmails = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(emails));
                    chainEmails.RemoveAt(0);
                    chainEmails    = JsonConvert.SerializeObject(chainEmails);
                    chainPositions = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(positions));
                    chainPositions.RemoveAt(0);
                    chainPositions = JsonConvert.SerializeObject(chainPositions);
                }

                var index = 0;
                foreach (var email in emails)
                {
                    var    signingKey     = RandomGenerator.RandomString(32);
                    string employee_email = email.employee_email;

                    var result = _repository.signer_workflow.Where(o => o.request_id == document.request_id &&
                                                                   o.document == document.document_key && o.email == employee_email).ToList();
                    result.ForEach(o =>
                    {
                        o.sender_note     = requestsData.sender_note;
                        o.chain_emails    = chainEmails;
                        o.chain_positions = chainPositions;
                        o.signing_key     = signingKey;
                        o.positions       = positions[index];
                        o.updated_at      = DateTime.Now;
                        o.updated_by      = Convert.ToInt32(user.employee_id);
                    });
                    index++;
                    //context.saveChanges()
                }
                //context.saveChanges()

                if (requestsData.workflow_method == "SEQUENCE")
                {
                    var sendEmail = _repository.signer_workflow.Where(o => o.request_id == document.request_id).Where(o => o.status == "PENDING" && o.notes == "SEQUENCE" && o.order_by == requestsData.next_order);

                    foreach (var sent in sendEmail)
                    {
                        var employee    = _repository.signer_employee.FirstOrDefault(o => o.employee_id == requestsData.sender);
                        var employee_to = _repository.signer_employee.Where(o => o.employee_id == sent.employee_id.ToString()).FirstOrDefault();
                        var category    = _repository.signer_m_docs_category.Where(o => o.category_id == document.category_id).FirstOrDefault();
                        var signingLink = _appConfig.APP_URL + "/Guest/Open/" + sent.document + "?signingKey=" + sent.signing_key;
                        var trackerLink = _appConfig.APP_URL + "/mailopen?signingKey=" + sent.signing_key;

                        var email_to = new EmailTo
                        {
                            To = new List <String> {
                                sent.email
                            }
                        };

                        var send = await mail.Send(email_to, "[ONESIGN] " + employee.employee_name + " Invites You to Sign Document",
                                                   new MailBasic
                        {
                            Title      = "",
                            SubTitle   = "",
                            ButtonText = "Sign Now",
                            ButtonLink = signingLink,
                            Message    = "Dear " + employee_to.employee_name + ",<br><br>You have been invited to sign a document by " + employee.employee_name + "" +
                                         ". Click the link below to respond to the invite." +
                                         "<br><br> Request ID : 000000" + sent.request_id +
                                         "<br>Requestor : " + _signerHelper.GetEmployeeName(requestsData.sender) +
                                         " <br>Document Name : " + document.name + "<br> Category : " +
                                         category.category_name + "</br> Message : " + Request.Form["message"] + "<br><br>Regards,<br>"
                        }, "WithButton");

                        if (!send)
                        {
                            var resp = _commonHelper.Responder("Error", "Oops!", "Email Not Send");
                            return(Content(JsonConvert.SerializeObject(resp), "application/json"));
                        }
                        break;
                    }
                }
                else if (requestsData.workflow_method == "PARALEL")
                {
                    var sendEmail = _repository.signer_workflow.Where(o => o.request_id == document.request_id &&
                                                                      o.status == "PENDING" && o.notes == "PARALEL" && o.order_by == requestsData.next_order);

                    foreach (var sent in sendEmail)
                    {
                        //var employee = context.signer_employee.Where(o => o.employee_id == sent.employee_id.ToString()).FirstOrDefault();
                        var employee    = _repository.signer_employee.FirstOrDefault(o => o.employee_id == requestsData.sender);
                        var employee_to = _repository.signer_employee.
                                          Where(o => o.employee_id == sent.employee_id.ToString()).FirstOrDefault();
                        var category    = _repository.signer_m_docs_category.Where(o => o.category_id == document.category_id).FirstOrDefault();
                        var signingLink = _appConfig.APP_URL + "/Guest/Open/" + sent.document + "?signingKey=" + sent.signing_key;
                        var trackerLink = _appConfig.APP_URL + "/mailopen?signingKey=" + sent.signing_key;

                        var email_to = new EmailTo
                        {
                            To = new List <String> {
                                sent.email
                            }
                        };

                        var send = await mail.Send(email_to, "[ONESIGN] " + employee.employee_name + " Invites You to Sign Document",
                                                   new MailBasic
                        {
                            Title      = "",
                            SubTitle   = "",
                            ButtonText = "Sign Now",
                            ButtonLink = signingLink,
                            Message    = "Dear " + employee_to.employee_name + ",<br><br>You have been invited to sign a document by " + employee.employee_name + "" +
                                         ". Click the link below to respond to the invite." +
                                         "<br><br> Request ID : 000000" + sent.request_id +
                                         "<br>Requestor : " + _signerHelper.GetEmployeeName(requestsData.sender) +
                                         " </br>Document Name : " + document.name + "<br> Category : " +
                                         category.category_name + "</br> Message : " + Request.Form["message"] + "<br><br>Regards,<br>"
                        }, "WithButton");

                        if (!send)
                        {
                            var resp = _commonHelper.Responder("Error", "Oops!", "Email Not Send");
                            return(Content(JsonConvert.SerializeObject(resp), "application/json"));
                        }
                    }
                }
                else if (requestsData.workflow_method == "COMBINE")
                {
                }


                respo = new CommonHelper(_config).Responder("success", "Sent!", "Request successfully sent.", "reload()");
                return(Content(JsonConvert.SerializeObject(respo), "application/json"));
            }
            catch (Exception ex)
            {
                //SignerHelper.LogEx(ex);
                respo = new CommonHelper(_config).Responder("error", "Oops!", "Something Error");
                return(Content(JsonConvert.SerializeObject(respo), "application/json"));
            }
        }
        public async Task <ActionResult> Edit([Bind(Include = "ID_Isp,Pos_Res_ID,Date_Start,Date_Finish,Status_ID,itog")] Isp_Sroki isp_Sroki)
        {
            if ((bool)Session["Manip_Sotrs"] == true && Session["Manip_Sotrs"] != null)
            {
                //если валидация прошла успешно
                if (ModelState.IsValid)
                {
                    //Изменение данных и их фиксирование
                    db.Entry(isp_Sroki).State = EntityState.Modified;
                    SqlCommand command = new SqlCommand("", Program.SqlConnection);
                    //Манипулирование этапами принятия
                    command.CommandText = "select count(*) from Steps join Sotrs on Steps.Sotr_ID = ID_Sotr join Posit_Responsibilities on Posit_Responsibilities.Sotr_ID = ID_Sotr where ID_Pos_Res = " + isp_Sroki.Pos_Res_ID;
                    Program.SqlConnection.Open();
                    //Изменение тех что в процессе на ожидании
                    int?step_count = (int)command.ExecuteScalar();
                    command.CommandText = "select ID_Sotr from  Sotrs join Posit_Responsibilities on Posit_Responsibilities.Sotr_ID = ID_Sotr where ID_Pos_Res =  " + isp_Sroki.Pos_Res_ID;
                    int?idst = (int)command.ExecuteScalar();
                    Program.SqlConnection.Close();
                    if (isp_Sroki.Status_ID != 1)
                    {
                        if (step_count != null && step_count != 0)
                        {
                            command.CommandText = "update [dbo].[Steps] set [Isp_Srok] = 'false' where Sotr_ID = " + idst;
                            Program.SqlConnection.Open();
                            //Изменение тех что в процессе на ожидании
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        else
                        {
                            command.CommandText = "Insert into dbo.Steps ([Sotr_ID],[Sobesedovanie],[Dolznost],[Grafik_Raboti],[Sbor_Documentov],[Isp_Srok],[Logical_Delete]) " +
                                                  "values (" + idst + ", 0,0,0,0,0,0)";
                            Program.SqlConnection.Open();
                            //Изменение тех что в процессе на ожидании
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        var sta = db.status_isp_sroka.Where(s => s.ID_St == isp_Sroki.Status_ID).FirstOrDefault();
                        var pos = db.Posit_Responsibilities.Where(s => s.ID_Pos_Res == isp_Sroki.Pos_Res_ID).FirstOrDefault();
                        EmailTo.MySendMail("" +
                                           "Приветствуем, " + pos.Sotrs.Full + "! <br>Вы, " +
                                           "проходите испытательный срок в нашей компании ООО \"Си эМ эС\", на должность " + pos.Positions.Naim_Posit + "." +
                                           "<br />Ваш статус прохождения изменен на " + sta.Name_St,
                                           pos.Sotrs.Email, "Компания CMS", "Прохождение испытательного срока");
                    }
                    else
                    {
                        if (step_count != null && step_count != 0)
                        {
                            command.CommandText = "update [dbo].[Steps] set [Isp_Srok] = 'true' where Sotr_ID = " + idst;
                            Program.SqlConnection.Open();
                            //Изменение тех что в процессе на ожидании
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        else
                        {
                            command.CommandText = "Insert into dbo.Steps ([Sotr_ID],[Sobesedovanie],[Dolznost],[Grafik_Raboti],[Sbor_Documentov],[Isp_Srok],[Logical_Delete]) " +
                                                  "values (" + idst + ", 0,0,0,0,1,0)";
                            Program.SqlConnection.Open();
                            //Изменение тех что в процессе на ожидании
                            command.ExecuteNonQuery();
                            Program.SqlConnection.Close();
                        }
                        var pos = db.Posit_Responsibilities.Where(s => s.ID_Pos_Res == isp_Sroki.Pos_Res_ID).FirstOrDefault();
                        EmailTo.MySendMail("" +
                                           "Приветствуем, " + pos.Sotrs.Full + "! <br>Поздравляем, " +
                                           "Вы прошли испытательный срок в нашей компании ООО \"Си эМ эС\", на должность " + pos.Positions.Naim_Posit + ".",
                                           pos.Sotrs.Email, "Компания CMS", "Прохождение испытательного срока");
                    }
                    //сохранение изменений
                    await db.SaveChangesAsync();

                    return(Redirect(Session["perehod"].ToString()));
                }
                //Список штатного состава
                ViewBag.Pos_Res_ID = new SelectList(db.Posit_Responsibilities, "ID_Pos_Res", "ID_Pos_Res", isp_Sroki.Pos_Res_ID);
                //Список статусов
                ViewBag.Status_ID = new SelectList(db.status_isp_sroka, "ID_St", "Name_St", isp_Sroki.Status_ID);
                return(View(isp_Sroki));
            }
            else
            {
                return(Redirect("/Error/NotRight"));
            }
        }
示例#18
0
 public BsixMailer EmailTo(params string[] EmailTo)
 {
     this.To = EmailTo.ToList();
     return(this);
 }
示例#19
0
        public async Task <IActionResult> Revoke()
        {
            var user     = _authHelper.User();
            var username = HttpContext.Session.Get("username");
            var password = (string)Request.Form["password"];
            var ldap     = _ldapservice.Login(username, password);

            var requestId = Convert.ToInt32(Request.Form["request_id"]);
            var reason    = (string)Request.Form["reason-cancel"];

            var revoked = _repository.signer_requests.First(o => o.id == requestId);

            revoked.status = "REVOKED";
            revoked.reason = reason;
            _repository.SaveChanges();

            // var request = new MailRequest{
            //     ToEmail = "*****@*****.**",
            //     Body = "Test",
            //     Subject = "Keren Amat"
            // };
            // await _mailService.SendEmailAsync(request);

            var email_to = new EmailTo
            {
                To = new List <String>(),
                Cc = new List <String>()
            };

            var signer_file = _repository.signer_file.FirstOrDefault(o => o.request_id == requestId);
            var category    = _repository.signer_m_docs_category.FirstOrDefault(o => o.category_id == signer_file.category_id);

            var documentLink = _appConfig.APP_URL + "/SignerDocument/Open/" + signer_file.document_key;
            var emails       = _repository.signer_workflow.Where(o => o.request_id == requestId && o.status == "APPROVED").Select(o => o.email).ToList();

            foreach (var email in emails)
            {
                email_to.To.Add(email);
            }

            var employee = _repository.signer_employee.FirstOrDefault(o => o.employee_id == user.employee_id);

            var send = await _mailService.Send(email_to, "[ONESIGN] Document Cancel by " + employee.employee_name,
                                               new MailBasic
            {
                Title      = "Signing invitation declined.",
                SubTitle   = "Click the link below to view document.",
                ButtonText = "View Document",
                ButtonLink = documentLink,
                Message    = employee.employee_email + " has cancel the document you had signed. " +
                             "<br><br> Request ID : 000000" + requestId +
                             "<br>Requestor : " + employee.employee_name +
                             " </br>Document Name : " + signer_file.name + "<br> Category : " +
                             category.category_name +
                             "<br><br>Reason : <br>" +
                             reason.Replace("\r\n", "<br/>") +
                             "<br><br>Click the link below to view the document.<br><br>Cheers!<br>" + _appConfig.APP_NAME + " Team"
            },
                                               "withbutton");

            var resp = _commonHelper.Responder("success", "Alright!", "Document successfully saved.",
                                               "redirect('" + _commonHelper.Env.GetValue <string>("APP_URL") + "/SignerDocument/DocsMonitoring');", true, "swal");

            return(Content(JsonConvert.SerializeObject(resp), "application/json"));
        }