/// <summary> /// 读取产品列表 /// </summary> /// <returns></returns> public static ProductList ReadProductlist() { ProductList productList = new ProductList(); try { using (SQLiteConnection cn = new SQLiteConnection(ConfigurationManager.AppSettings["conn"])) { cn.Open(); string query = "select * from Product"; using (SQLiteCommand cmd = new SQLiteCommand(query, cn)) { using (SQLiteDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { // 获取产品基本信息 int id = int.Parse(dr["ID"].ToString()); string productName = dr["ProductName"].ToString(); string mailTitle = dr["MailTitle"].ToString(); string mailContent = dr["MailContent"].ToString(); bool disable = bool.Parse(dr["Disable"].ToString()); bool isCredit = bool.Parse(dr["IsCredit"].ToString()); // 2018-12-20是否信用 bool isDelay = bool.Parse(dr["IsDelay"].ToString()); // 2019-03-20发送前延迟是否单独设置 int? delaySeconds = null; // 2019-03-20发送前延迟秒数 if (Convert.IsDBNull(dr["DelaySeconds"])) { delaySeconds = null; } else { delaySeconds = int.Parse(dr["DelaySeconds"].ToString()); } // 获取附件列表 ProductAttachmentList attList = ReadProductAttachmentList(id, cn); // 获取收件人列表 ProductReceiverList receiverList = ReadProductReceiver(id, cn); Product product = new Product( id: id, productName: productName, mailTitle: mailTitle, mailContent: mailContent, disable: disable, attachmentList: attList, receiverList: receiverList, isCredit: isCredit, isDelay: isDelay, delaySeconds: delaySeconds); productList.Add(product); } //eof while } //eof dr } //eof cmd } //eof conn } catch (Exception ex) { throw new Exception(ex.Message); } return(productList); }
private void btnSendAll_Click(object sender, EventArgs e) { if (!bwSendMail.IsBusy) { // 获取参数对象 MailSendMode sendMode = ((ComboBoxSendModeItem)cbSendMode.SelectedItem).Value; DateTime date; if (rbDateToday.Checked) { date = DateTime.Now.Date; } else { date = dtpDate.Value.Date; } ProductList productListTmp = new ProductList(); switch (sendMode) { case MailSendMode.重发所有产品: foreach (Product product in Manager.ProductList) { product.Note = string.Empty; productListTmp.Add(product); } break; case MailSendMode.只发送勾选的产品: foreach (ListViewItem lvi in lvProductList.Items) { if (lvi.Checked == true) { productListTmp.Add((Product)lvi.Tag); } } break; case MailSendMode.发送未发送的产品: default: foreach (Product product in Manager.ProductList) { if (product.IsSendOK == false) { productListTmp.Add(product); } product.Note = string.Empty; } break; } MailSendArgument arg = new MailSendArgument(sendMode, date, productListTmp, false, Manager.MailSender.SendInterval); lbIsAllSendOK.Text = "N/A"; lbIsAllSendOK.ForeColor = Color.Black; btnSendAll.Text = "点击取消..."; // 禁用菜单 menuStrip.Enabled = false; btnSendAllNoCredit.Enabled = false; bwSendMail.RunWorkerAsync(arg); } else { btnSendAll.Text = "发送邮件"; bwSendMail.CancelAsync(); } }