private void SetConf()
        {
            if (!this.formload)
                return;

            string TemplateName = this.TemplateName_Subfix;
            conf = UDT.CSConfiguration.GetTemplate(TemplateName);
            conf_subject = UDT.CSConfiguration.GetTemplate(this.TemplateName_Subfix + "_subject");
            this.txtSubject.Text = conf_subject.Content;
        }
 private void Email_Content_Template_Load(object sender, EventArgs e)
 {
     conf = UDT.CSConfiguration.GetTemplate(this.TemplateName);
     proxy.Decorate(this.webBrowser1, conf.Content);
 }
        private void SetConf()
        {
            conf = UDT.CSConfiguration.GetTemplate(this.TemplateName_Subfix + "-4");
            conf_subject = UDT.CSConfiguration.GetTemplate(this.TemplateName_Subfix + "-4_subject");

            conf_2 = UDT.CSConfiguration.GetTemplate(this.TemplateName_Subfix + "-5");
            conf_subject_2 = UDT.CSConfiguration.GetTemplate(this.TemplateName_Subfix + "-5_subject");

            conf_3 = UDT.CSConfiguration.GetTemplate(this.TemplateName_Subfix + "-3");
            conf_subject_3 = UDT.CSConfiguration.GetTemplate(this.TemplateName_Subfix + "-3_subject");

            conf_by_date = UDT.CSConfiguration.GetTemplate(this.TemplateName_Subfix + "-bydate");
            conf_subject_by_date = UDT.CSConfiguration.GetTemplate(this.TemplateName_Subfix + "-bydate_subject");

            btnSend2.Tag = new object[] { conf_by_date, conf_subject_by_date, btnSend2.Text };

            this.btnSend.SubItems.Clear();

            ButtonItem button3 = new ButtonItem();
            button3.Text = "缺課3次通知";
            button3.Tag = new object[] { conf_3, conf_subject_3, button3.Text };
            button3.Click += (x, y) =>
            {
                this.SendMailButtionClick(button3, 3);
            };
            this.btnSend.SubItems.Add(button3);

            ButtonItem button = new ButtonItem();
            button.Text = "缺課4次通知";
            button.Tag = new object[] { conf, conf_subject, button.Text };
            button.Click += (x, y) =>
            {
                this.SendMailButtionClick(button, 4);
            };
            this.btnSend.SubItems.Add(button);

            ButtonItem button2 = new ButtonItem();
            button2.Text = "缺課5次通知";
            button2.Tag = new object[] { conf_2, conf_subject_2, button2.Text };
            button2.Click += (x, y) =>
            {
                this.SendMailButtionClick(button2, 5);
            };
            this.btnSend.SubItems.Add(button2);
        }
        private void SendMail(Dictionary<UDT.AssignedSurvey, dynamic> dicEmailInfos, int no, MandrillApi mandrill)
        {
            List<UDT.MandrillSendLog> MandrillSendLogs = new List<UDT.MandrillSendLog>();
            DateTime time_stamp = DateTime.Now;
            string user_account = FISCA.Authentication.DSAServices.UserAccount;

            try
            {
                UDT.CSConfiguration conf = new UDT.CSConfiguration();
                UDT.CSConfiguration conf_subject = new UDT.CSConfiguration();

                if (no == 1)
                {
                    this.email_category = "教學評鑑意見調查EMAIL提醒";
                    conf = UDT.CSConfiguration.GetTemplate(UDT.CSConfiguration.TemplateName.教學評鑑意見調查EMAIL提醒);
                    conf_subject = UDT.CSConfiguration.GetTemplate(UDT.CSConfiguration.TemplateName.教學評鑑意見調查EMAIL提醒.ToString() + "_subject");
                }
                else
                {
                    this.email_category = "教學評鑑意見調查EMAIL再次提醒";
                    conf = UDT.CSConfiguration.GetTemplate(UDT.CSConfiguration.TemplateName.教學評鑑意見調查EMAIL再次提醒);
                    conf_subject = UDT.CSConfiguration.GetTemplate(UDT.CSConfiguration.TemplateName.教學評鑑意見調查EMAIL再次提醒.ToString() + "_subject");
                }

                string content = conf.Content;
                string subject = conf_subject.Content;
                foreach (UDT.AssignedSurvey AssignedSurvey in dicEmailInfos.Keys)
                {
                    dynamic o = dicEmailInfos[AssignedSurvey];

                    string subject_name = o.SubjectName;
                    string course_name = o.CourseName;
                    string teacher_name = o.TeacherName;
                    string school_year = o.SchoolYear + "";
                    string semester = o.Semester;

                    string begin_time = string.Empty;
                    string end_time = string.Empty;

                    DateTime begin_time_date_time;
                    DateTime end_time_date_time;

                    if (DateTime.TryParse(o.SurveyBeginTime, out begin_time_date_time))
                        begin_time = begin_time_date_time.ToString("yyyy/MM/dd HH:mm:ss");
                    if (DateTime.TryParse(o.SurveyEndTime, out end_time_date_time))
                        end_time = end_time_date_time.ToString("yyyy/MM/dd HH:mm:ss");

                    Dictionary<StudentRecord, IEnumerable<string>> dicStudentEmails = o.EmailList as Dictionary<StudentRecord, IEnumerable<string>>;
                    string email_subject = string.Empty;
                    string email_body = string.Empty;
                    foreach (StudentRecord Student in dicStudentEmails.Keys)
                    {
                        string student_name = Student.Name;
                        //學生姓名  課程  開課  授課教師    學年度 學期  問卷填寫開始時間    問卷填寫結束時間
                        email_subject = subject.Replace("[[學生姓名]]", student_name).Replace("[[課程]]", subject_name).Replace("[[開課]]", course_name).Replace("[[授課教師]]", teacher_name).Replace("[[學年度]]", school_year).Replace("[[學期]]", semester).Replace("[[問卷填寫開始時間]]", begin_time).Replace("[[問卷填寫結束時間]]", end_time);
                        email_body = content.Replace("[[學生姓名]]", student_name).Replace("[[課程]]", subject_name).Replace("[[開課]]", course_name).Replace("[[授課教師]]", teacher_name).Replace("[[學年度]]", school_year).Replace("[[學期]]", semester).Replace("[[問卷填寫開始時間]]", begin_time).Replace("[[問卷填寫結束時間]]", end_time);
                        if (dicStudentEmails[Student].Count() > 0)
                            this.SendSingleMail(email_subject, email_body, dicStudentEmails[Student], mandrill, MandrillSendLogs, o, Student, false);
                    }
                    email_subject = subject.Replace("[[學生姓名]]", string.Empty).Replace("[[課程]]", subject_name).Replace("[[開課]]", course_name).Replace("[[授課教師]]", teacher_name).Replace("[[學年度]]", school_year).Replace("[[學期]]", semester).Replace("[[問卷填寫開始時間]]", begin_time).Replace("[[問卷填寫結束時間]]", end_time) + "【副本】";
                    email_body = content.Replace("[[學生姓名]]", string.Empty).Replace("[[課程]]", subject_name).Replace("[[開課]]", course_name).Replace("[[授課教師]]", teacher_name).Replace("[[學年度]]", school_year).Replace("[[學期]]", semester).Replace("[[問卷填寫開始時間]]", begin_time).Replace("[[問卷填寫結束時間]]", end_time);
                    if (this.validated_cc.Count > 0)
                        this.SendSingleMail(email_subject, email_body, this.validated_cc, mandrill, MandrillSendLogs, o, null, true);
                    //更新 email 時間
                    //if (updatedRecs.Count > 0)
                    //{
                    //    (new AccessHelper()).SaveAll(updatedRecs);
                    //}
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                MandrillSendLogs.SaveAll();
            }
        }
 private void Email_Sender_Load(object sender, EventArgs e)
 {
     conf = UDT.CSConfiguration.GetEmailSenderInfo();
     this.textBoxX1.Text = conf.Content;
 }