public static string getJsonSpam(string contentId)
    {
        // Lay noi dung cho xu ly spam.
        SendContentBUS scBUS = new SendContentBUS();
        int id = int.Parse(contentId);
        string contentDetail = null;
        DataTable tblContent = scBUS.GetByID(id);
        if (tblContent.Rows.Count > 0)
        {
            contentDetail = tblContent.Rows[0]["Body"].ToString();
        }

        // Tien hanh check spam
        SpamRuleBUS spamBUS = new SpamRuleBUS();
        DataTable spam = spamBUS.GetAll();

        List<SpamRuleDTO> listSpam = new List<SpamRuleDTO>();
        for (int i = 0; i < spam.Rows.Count; i++)
        {
            SpamRuleDTO spamDto = new SpamRuleDTO();
            spamDto.Keyword = spam.Rows[i]["Keyword"].ToString();
            spamDto.SameWord = spam.Rows[i]["SameWord"].ToString();
            spamDto.Score = float.Parse(spam.Rows[i]["Score"].ToString());
            listSpam.Add(spamDto);
        }

        var json = new JavaScriptSerializer().Serialize(listSpam);
        return json;
    }
Beispiel #2
0
 public EmailSend()
 {
     srdBUS = new SendRegisterDetailBUS();
     scBUS = new SendContentBUS();
     mcBUS = new MailConfigBUS();
     ctBUS = new CustomerBUS();
     dtGroupBUS = new DetailGroupBUS();
     countBUS = new CountBuyBUS();
 }
 protected void drlCampaign_SelectedIndexChanged(object sender, EventArgs e)
 {
     int readMail = 0;
     try
     {
         srBUS = new SendRegisterBUS();
         srdBus = new SendRegisterDetailBUS();
         sendContentBus = new SendContentBUS();
         mgBus = new MailGroupBUS();
         int sendId = int.Parse(drlCampaign.SelectedValue.ToString());
         DataTable campain = srdBus.GetByID(sendId);
         DataTable errSend = srdBus.GetByStatus(false, sendId);
         DataTable unreceve = srdBus.GetByNotReceve(sendId);
         int err = errSend.Rows.Count;
         this.lblTotalMailSend.Text = campain.Rows.Count.ToString();
         int notreceve = unreceve.Rows.Count;
         lblEmailSend.Text = new MailConfigBUS().GetByID(int.Parse(srBUS.GetByID(sendId).Rows[0]["mailconfigid"]+"")).Rows[0]["eMail"].ToString();
         if (campain.Rows.Count > 0)
         {
             foreach (DataRow row in campain.Rows)
             {
                 if (row["isOpenMail"].ToString() == "True")
                 {
                     readMail++;
                 }
             }
             lblNotOpen2.Text = (campain.Rows.Count - readMail).ToString();
         }
         lblNotOpen2.Text = "0";
         lblOpened.Text = readMail.ToString();
         DataTable sendregisteDetail = srBUS.GetByID(sendId);
         if (sendregisteDetail.Rows.Count > 0)
         {
             int contentID = int.Parse(sendregisteDetail.Rows[0]["SendContentId"].ToString());
             lblDateStart.Text = sendregisteDetail.Rows[0]["StartDate"].ToString();
             lblDateEnd.Text = sendregisteDetail.Rows[0]["EndDate"].ToString();
             int groupSend = int.Parse(sendregisteDetail.Rows[0]["GroupTo"].ToString());
             if (groupSend == -3)
                 lblGroupEmailTo.Text = "Tất cả";
             else lblGroupEmailTo.Text = mgBus.GetByID(groupSend).Rows[0]["Name"].ToString();
             if (sendContentBus.GetByID(contentID).Rows.Count > 0)
             {
                 lblCampianName.Text = sendContentBus.GetByID(contentID).Rows[0]["Subject"].ToString();
             }
         }
         if (campain.Rows.Count > 0)
             CreateChart(campain.Rows.Count, err, readMail, 1, notreceve, lblCampianName.Text);
         else lblChart.Text = "";
         LoadOpenEmail(sendId);
     }
     catch (Exception ex)
     {
         //pnError.Visible = true;
         //lblError.Text = ex.Message;
     }
 }
 public static string getContentTemplate(string contentId)
 {
     SendContentBUS scBUS = new SendContentBUS();
     int id = int.Parse(contentId);
     DataTable tblContent = scBUS.GetByID(id);
     if (tblContent.Rows.Count > 0)
     {
         return tblContent.Rows[0]["Body"].ToString();
     }
     return null;
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        scBus = new SendContentBUS();
        if (!IsPostBack)
        {
            try
            {
                LoadDataListContent();
            }
            catch (Exception ex)
            {
                pnError.Visible = true;
                lblError.Text = ex.Message;
            }

        }
    }
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         SendContentBUS scBus = new SendContentBUS();
         string id = Request.QueryString["id"] ;
         DataTable tblContent = scBus.GetByID(int.Parse(id));
         if (tblContent.Rows.Count > 0)
         {
             lblContentDetail.Text = tblContent.Rows[0]["Body"].ToString();
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
    protected void loadListContentHasSend()
    {
        try
        {
            int groupId = int.Parse(Request.Params["groupId"]);
            PartSendBUS psBus = new PartSendBUS();
            SendContentBUS scBus = new SendContentBUS();
            MailGroupBUS mgBus = new MailGroupBUS();
            DataTable tblPartSend = psBus.GetByUserIdAndGroupId(getUserLogin().UserId, groupId);
            if (tblPartSend.Rows.Count > 0)
            {
                string hasContentSend = tblPartSend.Rows[0]["hasContentSend"].ToString();
                string[] arrayContentSend = hasContentSend.Split(',');
                dlContentList.DataSource = arrayContentSend;
                dlContentList.DataBind();
                for (int i = 0; i < arrayContentSend.Length; i++)
                {
                    Label lblSubject = (Label)dlContentList.Items[i].FindControl("lblSubject");
                    Label lblContent = (Label)dlContentList.Items[i].FindControl("lblContent");
                    string contentId = arrayContentSend[i];
                    DataTable tblContent = scBus.GetByID(int.Parse(contentId));
                    if (tblContent.Rows.Count > 0)
                    {
                        lblSubject.Text = tblContent.Rows[0]["Subject"].ToString();
                        lblContent.Text = tblContent.Rows[0]["Body"].ToString();
                    }

                }
            }

            DataTable tblMailGroup = mgBus.GetByID(groupId);
            if (tblMailGroup.Rows.Count > 0)
            {
                lblGroupName.Text = tblMailGroup.Rows[0]["Name"].ToString();
            }
        }
        catch (Exception)
        {

            throw;
        }
    }
Beispiel #8
0
 public EmailSend()
 {
     srdBUS = new SendRegisterDetailBUS();
     scBUS = new SendContentBUS();
     mcBUS= new MailConfigBUS();
 }
    protected string LoadChart(object id)
    {
        int readMail = 0;
        try
        {
            //int i=0;
            for (int i = 0; i < dlContentSendEvent.Items.Count; i++)
            {
                HiddenField hdfId = (HiddenField)dlContentSendEvent.Items[i].FindControl("hdfId");
                if (hdfId.Value + "" == id + "")
                {
                    SendRegisterBUS srBUS = new SendRegisterBUS();
                    SendRegisterDetailBUS srdBus = new SendRegisterDetailBUS();
                    SendContentBUS sendContentBus = new SendContentBUS();
                    MailGroupBUS mgBus = new MailGroupBUS();
                    int sendId = int.Parse(id + "");
                    DataTable campain = srdBus.GetByContentID(sendId);
                    DataTable errSend = srdBus.GetContentSendEventDetailByStatus(false, sendId);
                    DataTable unreceve = srdBus.GetByNotReceve(sendId);
                    int err = errSend.Rows.Count;
                    Label lblTotalMailSend = (Label)dlContentSendEvent.Items[i].FindControl("lblTotalMailSend");
                    Label lblEmailSend = (Label)dlContentSendEvent.Items[i].FindControl("lblEmailSend");
                    Label lblNotOpen2 = (Label)dlContentSendEvent.Items[i].FindControl("lblNotOpen2");
                    Label lblOpened = (Label)dlContentSendEvent.Items[i].FindControl("lblOpened");
                    Label lblDateStart = (Label)dlContentSendEvent.Items[i].FindControl("lblDateStart");
                    Label lblDateEnd = (Label)dlContentSendEvent.Items[i].FindControl("lblDateEnd");
                    Label lblGroupEmailTo = (Label)dlContentSendEvent.Items[i].FindControl("lblGroupEmailTo");
                    Label lblCampianName = (Label)dlContentSendEvent.Items[i].FindControl("lblCampianName");
                    Label lblChart = (Label)dlContentSendEvent.Items[i].FindControl("lblChart");
                    lblTotalMailSend.Text = campain.Rows.Count.ToString();
                    int notreceve = unreceve.Rows.Count;
                    if (campain.Rows.Count > 0)
                    {
                        lblEmailSend.Text = campain.Rows[0]["MailSend"].ToString();
                        foreach (DataRow row in campain.Rows)
                        {
                            if (row["isOpenMail"].ToString() == "True")
                            {
                                readMail++;
                            }
                        }
                        lblNotOpen2.Text = (campain.Rows.Count - readMail).ToString();
                    }
                    lblOpened.Text = readMail.ToString();
                    DataTable sendregisteDetail = cseBus.GetById(sendId);
                    if (sendregisteDetail.Rows.Count > 0)
                    {
                        int contentID = int.Parse(sendregisteDetail.Rows[0]["id"].ToString());
                        //lblDateStart.Text = sendregisteDetail.Rows[0]["StartDate"].ToString();
                        //lblDateEnd.Text = sendregisteDetail.Rows[0]["EndDate"].ToString();
                        int groupSend = int.Parse(sendregisteDetail.Rows[0]["GroupTo"].ToString());
                        if (groupSend == -3)
                            lblGroupEmailTo.Text = "Tất cả";
                        else lblGroupEmailTo.Text = mgBus.GetByID(groupSend).Rows[0]["Name"].ToString();
                        if (sendContentBus.GetByID(contentID).Rows.Count > 0)
                        {
                            lblCampianName.Text = sendContentBus.GetByID(contentID).Rows[0]["Subject"].ToString();
                        }
                    }
                    CreateChart(campain.Rows.Count, err, readMail, 1, notreceve, lblCampianName.Text, lblChart);
                }
            }
        }
        catch (Exception ex)
        {
            pnError.Visible = true;
            lblError.Text = ex.Message;

        }
        return "";
    }
        // Thêm ngày 16/09 by Viết Hùng
        //Thêm ngày 26/9
        public void callSendBulkMail_BySubGroup(DataRow Row, DataTable listSendContent, DataTable listCustomer, DataTable listMailConfig)
        {
            //param for send mail
            string EmailTo = "";
            string customerName = "";
            string EmailSubject = "";
            string EmailBody = "";
            string EmailFrom = "";
            string Name = "";
            string username = "";
            string Password = "";
            string HostName = "";
            int PortNumber = 0;
            bool isSSL = false;
            //param for content
            int SendContentId;
            int EmailFromID;
            int SendRegisterID = 0;
            int AccountId = 0;
            SendRegisterBUS srBus = new SendRegisterBUS();
            CustomerBUS customerBus = new CustomerBUS();
            SendRegisterDetailBUS srdBus = new SendRegisterDetailBUS();
            dgBUS = new DetailGroupBUS();
            PartSendBUS psBus = new PartSendBUS();
            SendContentBUS scBus = new SendContentBUS();

            try
            {
                if (Row != null)
                {
                    // Stop timer check
                    SendContentId = int.Parse(Row["SendContentId"].ToString());
                    AccountId = int.Parse(Row["AccountId"].ToString());

                    // Lấy nội dung đăng ký gửi đi
                    DataRow[] resultListSendContend = listSendContent.Select(String.Format("Id = {0}", SendContentId));
                    if (resultListSendContend.Length > 0)
                    {
                        EmailSubject = resultListSendContend[0]["Subject"].ToString();
                        EmailBody = resultListSendContend[0]["Body"].ToString();
                    }

                    //Lấy cấu hình mail gửi
                    EmailFromID = int.Parse(Row["MailConfigID"].ToString());
                    DataRow[] resultListMailConfig = listMailConfig.Select(String.Format("Id = {0}", EmailFromID));
                    if (resultListMailConfig.Length > 0)
                    {
                        EmailFrom = resultListMailConfig[0]["Email"].ToString();
                        username = resultListMailConfig[0]["username"].ToString();
                        Password = resultListMailConfig[0]["Password"].ToString();
                        HostName = resultListMailConfig[0]["Server"].ToString();
                        Name = resultListMailConfig[0]["Name"].ToString();
                        PortNumber = int.Parse(resultListMailConfig[0]["Port"].ToString());
                        isSSL = bool.Parse(resultListMailConfig[0]["isSSL"].ToString());
                    }

                   // ID nhóm mail cần gửi đi
                    string groupId = Row["SendType"].ToString();

                   //Lấy danh sách khách hàng của nhóm
                   DataTable tblCustomerBySubGroup = dgBUS.GetByID(int.Parse(groupId));
                   if (tblCustomerBySubGroup.Rows.Count > 0)
                    {
                        // Kiểm tra chiến dịch này có thuộc nhóm gửi mail từng phần
                        DataTable tblPartSend = psBus.GetByUserIdAndGroupId(AccountId, int.Parse(groupId));

                        SendRegisterID = int.Parse(Row["Id"].ToString());
                        for (int i = 0; i < tblCustomerBySubGroup.Rows.Count; i++)
                        {
                            Stop = true;
                            DataTable tblCustomerByID = customerBus.GetByID(int.Parse(tblCustomerBySubGroup.Rows[i]["CustomerID"].ToString()));
                            if (tblCustomerByID.Rows.Count > 0)
                            {
                                EmailTo = tblCustomerByID.Rows[0]["Email"].ToString();
                                customerName = (tblCustomerByID.Rows[0]["Name"].ToString() == null || tblCustomerByID.Rows[0]["Name"].ToString() == "") ? EmailTo : tblCustomerByID.Rows[0]["Name"].ToString();
                            }
                            // Xử lý câu chào cho nội dung mail
                            string body = EmailBody.Replace("[khachhang]", customerName);
                            body = body.Replace("[email]", EmailTo);

                            // Xử lý câu chào cho tiêu đề mail
                            string subject = EmailSubject.Replace("[khachhang]", customerName).ToUpper();

                            // Thời gian bắt đầu gửi
                            DateTime startDate = DateTime.Now;
                            // Thời gian kết thúc gửi
                            DateTime endDate = DateTime.Now;
                            SendRegisterDetailDTO srdDto = new SendRegisterDetailDTO() {
                                SendRegisterId = SendRegisterID,
                                Email = EmailTo,
                                StartDate = startDate,
                                EndDate = endDate,
                                DayEnd = endDate.Day,
                                HoursEnd = endDate.Hour,
                                MinuteEnd = endDate.Minute,
                                SecondEnd = endDate.Second,
                                MailSend = EmailFrom,
                                Status = false,
                                ErrorType = "0" };
                            int sendetailID = 0;

                            // Lưu lại thông tin từng mail đã gửi
                            sendetailID = srdBus.tblSendRegisterDetail_insert(srdDto);
                            srdDto.SendRegisterDetailId = sendetailID;
                            body += String.Format("<IMG height=1 src=\"http://fastautomaticmail.com/emailtrack.aspx?emailsentID={0}\" width=1>", sendetailID);

                            //Update thời gian bắt đầu gửi
                            startDate = DateTime.Now;
                            srdDto.StartDate = DateTime.Now;
                            bool send = false;
                            try
                            {
                                //===============================================================================
                                //        Edit by HThanhHai for part send mail
                                //===============================================================================

                                // Nếu nhóm này nằm trong danh sách gửi từng phần
                                if (tblPartSend.Rows.Count > 0)
                                {
                                    // Kiểm tra số lượng mail khách hàng này đã nhận được
                                    int countReceivedMail = int.Parse(tblCustomerBySubGroup.Rows[i]["countReceivedMail"].ToString());

                                    // Nội dung mail đã gửi cho nhóm này
                                    string hasContentSend = tblPartSend.Rows[0]["hasContentSend"].ToString();
                                    string[] arrayContent = hasContentSend.Split(',');

                                    if (arrayContent.Length > 0)
                                    {
                                        // Nếu số lượng mail khách hàng này nhận ít hơn số nội dung đã gửi đi
                                        if (countReceivedMail < arrayContent.Length)
                                        {
                                            // Duyệt qua những nội dung mà khách hàng này chưa nhận                                            //
                                            for (int k = countReceivedMail; k < arrayContent.Length; k++)
                                            {
                                                string contentId = arrayContent[k];
                                                string contentDetail, subjectDetail;
                                                DataTable tblContent = scBus.GetByID(int.Parse(contentId));
                                                if (tblContent.Rows.Count > 0)
                                                {
                                                    subjectDetail = tblContent.Rows[0]["Subject"].ToString();
                                                    contentDetail = tblContent.Rows[0]["Body"].ToString();

                                                    contentDetail = contentDetail.Replace("[khachhang]", customerName);
                                                    contentDetail = contentDetail.Replace("[email]", EmailTo);

                                                    // Xử lý câu chào cho tiêu đề mail
                                                    subjectDetail = subjectDetail.Replace("[khachhang]", customerName).ToUpper();
                                                }
                                                else
                                                {
                                                    subjectDetail = "No subject";
                                                    contentDetail = "Nội dung không tồn tại !";
                                                }

                                                if (HostName == "Amazon API")
                                                {
                                                    send = SendEmailWithAmazone(EmailFrom, EmailTo, subjectDetail, contentDetail, username, Password, Name);
                                                }
                                                else
                                                {
                                                    send = SendMail(subjectDetail, contentDetail, HostName, PortNumber, EmailFrom, Password, Name, EmailTo, username, isSSL);
                                                }
                                            }

                                            // Update số lượng mail đã nhận sau khi đã gửi đi đầy đủ
                                            DetailGroupDTO dgDto = new DetailGroupDTO();
                                            dgDto.CustomerID = AccountId;
                                            dgDto.GroupID = int.Parse(groupId);
                                            dgDto.CountReceivedMail = arrayContent.Length;
                                            dgBUS.tblDetailGroup_Update(dgDto);
                                        }
                                    }
                                }
                                else
                                {
                                    // Không phải chiến dịch gửi mail từng phần
                                    if (HostName == "Amazon API")
                                    {
                                        send = SendEmailWithAmazone(EmailFrom, EmailTo, subject, body, username, Password, Name);
                                    }
                                    else
                                    {
                                        send = SendMail(subject, body, HostName, PortNumber, EmailFrom, Password, Name, EmailTo, username, isSSL);
                                    }
                                }

                            }
                            catch (Exception ex)
                            {
                                const string errSubject = "Error from FAMail";
                                string errBody = ex.Message + DateTime.Now; ;
                                const string errHost = "smtp.gmail.com";
                                const string errUser = "******";
                                const string errPass = "******";
                                SendMail(errSubject, errBody, errHost, 587, errUser, errPass, "Error from FAMail", "*****@*****.**");
                                SendMail(errSubject, errBody, errHost, 587, errUser, errPass, "Error from FAMail", "*****@*****.**");
                            }

                            //Update thời gian bắt kết thúc
                            srdDto.EndDate = endDate;
                            endDate = DateTime.Now;
                            srdBus.tblSendRegisterDetail_Update(sendetailID, startDate, endDate, send);
                        }
                    }
                }
                else
                {
                    return;
                }
            }
            catch (Exception )
            {
                throw;
            }
            finally
            {
                // cập nhật trạng thái đã gửi mail & thời gian kết thúc cho chiến dịch gửi mail này
                // trạng thái 1 - đã gửi, 0 - chưa gửi
                srBus.tblSendRegister_UpdateStatus(SendRegisterID, 1, DateTime.Now);
                Stop = false;
            }
        }
Beispiel #11
0
    protected void getRegisterSendList()
    {
        try
        {
            cateBUs = new CategoryBUS();
            srBUS = new SendRegisterBUS();
            srdBus = new SendRegisterDetailBUS();
            mailConfigBus = new MailConfigBUS();
            mailGroupBus = new MailGroupBUS();
            sendContentBus = new SendContentBUS();
            dsgBus = new DetailGroupBUS();
            UserLoginDTO userLogin = getUserLogin();
            DataTable tblSendRegister = new DataTable();
            if (userLogin.DepartmentId == 1)
            {
                tblSendRegister = srBUS.GetAll();
            }
            else
            {
                tblSendRegister = srBUS.GetAll(userLogin.UserId);
            }
            if (tblSendRegister.Rows.Count > 0)
            {
                dlWaitSend.DataSource = tblSendRegister;
                dlWaitSend.DataBind();
                for (int i = 0; i < tblSendRegister.Rows.Count; i++)
                {
                    try
                    {

                        DataRow row = tblSendRegister.Rows[i];
                        int Sendtype = int.Parse(row["Sendtype"].ToString());
                        HiddenField hdfId = (HiddenField)dlWaitSend.Items[i].FindControl("hdfId");
                        hdfId.Value = row["Id"].ToString();
                        int contentId = int.Parse(row["SendContentId"].ToString());
                        //DataTable tblContent = sendContentBus.GetByID(contentId);
                        Label lblSubject = (Label)dlWaitSend.Items[i].FindControl("lblSubject");
                        //if (tblContent.Rows.Count > 0)
                        //{
                        //    lblSubject.Text = tblContent.Rows[0]["Subject"].ToString();
                        //}
                        //else
                        lblSubject.Text = row["Subject"] + "";

                        int mailConfig = int.Parse(row["MailConfigID"].ToString());
                        DataTable tblMailConfig = mailConfigBus.GetByID(mailConfig);
                        if (tblMailConfig.Rows.Count > 0)
                        {
                            Label lblMailConfig = (Label)dlWaitSend.Items[i].FindControl("lblMailConfig");
                            lblMailConfig.Text = tblMailConfig.Rows[0]["Email"].ToString();
                        }
                        int groupTo = int.Parse(row["GroupTo"].ToString());
                        if (groupTo == -3)
                        {
                            Label lblGroupTo = (Label)dlWaitSend.Items[i].FindControl("lblGroupTo");
                            lblGroupTo.Text = "Tất cả khách hàng";
                        }
                        else if (groupTo == -2)
                        {
                            Label lblGroupTo = (Label)dlWaitSend.Items[i].FindControl("lblGroupTo");
                            lblGroupTo.Text = "Nhóm mua nhiều lần";
                        }
                        else if (groupTo == -1)
                        {
                            Label lblGroupTo = (Label)dlWaitSend.Items[i].FindControl("lblGroupTo");
                            lblGroupTo.Text = "Nhóm mua lần đầu";
                        }
                        else
                        {
                            DataTable tblGroupTo = new DataTable();
                            if (Sendtype == 1)
                            {
                                tblGroupTo = mailGroupBus.GetByID(groupTo);

                                if (tblGroupTo.Rows.Count > 0)
                                {
                                    Label lblGroupTo = (Label)dlWaitSend.Items[i].FindControl("lblGroupTo");
                                    lblGroupTo.Text = tblGroupTo.Rows[0]["Name"].ToString();
                                }
                            }
                            else
                            {
                                tblGroupTo = cateBUs.GetByID(groupTo);
                                if (tblGroupTo.Rows.Count > 0)
                                {
                                    Label lblGroupTo = (Label)dlWaitSend.Items[i].FindControl("lblGroupTo");
                                    lblGroupTo.Text = tblGroupTo.Rows[0]["Title"].ToString();
                                }
                            }

                        }

                        Label lblStartDate = (Label)dlWaitSend.Items[i].FindControl("lblStartDate");
                        lblStartDate.Text = row["StartDate"].ToString();

                        Label lblEndDate = (Label)dlWaitSend.Items[i].FindControl("lblEndDate");

                        int status = int.Parse(row["Status"].ToString());

                        Panel panel = (Panel)dlWaitSend.Items[i].FindControl("Panel1");
                        TextBox progressbar = (TextBox)dlWaitSend.Items[i].FindControl("progressbar");
                        LinkButton lbtDetail = (LinkButton)dlWaitSend.Items[i].FindControl("lbtDetail");

                        //get list detail
                        DataTable listDetail = srdBus.GetByID(int.Parse(row["Id"].ToString()));
                        int hasSend = 0, sumSend = dsgBus.GetByID(groupTo).Rows.Count;
                        for (int k = 0; k < listDetail.Rows.Count; k++)
                        {
                            hasSend++;
                        }

                        //calc percent has send
                        int percent = 0;
                        if (sumSend != 0)
                        {
                            percent = (hasSend * 100) / sumSend;
                        }

                        if (status == 0)
                        {
                            //display process bar
                            panel.Visible = true;
                            progressbar.BackColor = System.Drawing.Color.Cornsilk;
                            progressbar.Width = percent + 20;
                            progressbar.Text = percent + "%";

                            lbtDetail.Visible = false;
                            lbtDetail.Text = "";
                            lblEndDate.Text = "Chưa xác định ";
                        }
                        else
                        {
                            //hidden process bar
                            panel.Visible = false;
                            lbtDetail.Text = "Xem chi tiết";
                            lbtDetail.PostBackUrl = "reportSend.aspx?campaign-id=" + row["Id"].ToString();
                            lblEndDate.Text = row["EndDate"].ToString();
                        }

                        LinkButton lbtDelete = (LinkButton)dlWaitSend.Items[i].FindControl("lbtDelete");
                        lbtDelete.CommandArgument = row["Id"].ToString();
                    }
                    catch (Exception)
                    {
                        continue;
                    }
                }
            }

        }
        catch (Exception)
        {

        }
    }
    //protected void lbtAddWelcome_Click(object sender, EventArgs e)
    //{
    //    if (txtWelcome.Text != "" && txtAfterWelcome.Text != "")
    //    {
    //        String welcomeText = txtWelcome.Text;
    //        if (rdoCustomerName.Checked == true)
    //        {
    //            welcomeText += "[khachhang]";
    //        }
    //        else
    //        {
    //            welcomeText += "[email]";
    //        }
    //        welcomeText += txtAfterWelcome.Text;
    //        txtBody.Text = welcomeText + "</br>" + txtBody.Text;
    //    }
    //}
    protected void btnSaveContent_Click(object sender, EventArgs e)
    {
        SendContentBUS scBus = new SendContentBUS();
        try
        {
            PanelHourError.Visible = false;

            int hour = int.Parse(txtHour.Text);
            DataTable dtContent = (DataTable)Session["listContentSendEvent"];

            if (hour==0 && dtContent.Select("hoursend=" + hour).Length != 0) { PanelHourError.Visible = true; lblHourError.Text = "Trùng giá trị giờ!"; return; }

            int contentId = int.Parse(drlContent.SelectedValue);
            string contentSubject = drlContent.SelectedItem.ToString();
            string subject = this.txtSubject.Text;
            string body = this.txtBody.Text;

            DataRow row = dtContent.NewRow();
            row["ContentId"] = contentId;
            row["HourSend"] = hour;
            row["Id"] = DateTime.Now.Millisecond;
            row["subject"] = subject;
            row["body"] = body;
            dtContent.Rows.Add(row);

            LoadContentSendEventList(dtContent);
            //this.txtBody.Text = "";
            //this.txtSubject.Text = "";
            drlContent.SelectedIndex = 0;
        }
        catch (Exception ex)
        {
            logs.Error(userLogin.Username + "Create-Event - btnSaveContent_Click", ex);
            PanelHourError.Visible = true;
            lblHourError.Text = "Nhập sai giá trị giờ !";
        }
    }
Beispiel #13
0
    protected void loadSendRegisterList(int status)
    {
        srBUS = new SendRegisterBUS();
        sendContentBus = new SendContentBUS();
        DataTable tblSendList = new DataTable();

        if (getUserLogin().DepartmentId==1)
        {
            tblSendList = srBUS.GetByStatus(status);
        }
        else
        {
            tblSendList = srBUS.GetByStatusUser(status, getUserLogin().UserId);
        }

        if (tblSendList.Rows.Count > 0)
        {
            DataTable temp = new DataTable();
            for (int i = 0; i < tblSendList.Rows.Count; i++)
            {
                try
                {
                    //temp = sendContentBus.GetByID(int.Parse(tblSendList.Rows[i]["SendContentId"].ToString()));
                    //if (temp.Rows.Count > 0)
                    //{
                        drlCampaign.Items.Add(
                          new ListItem(tblSendList.Rows[i]["Subject"].ToString() + " - " + tblSendList.Rows[i]["StartDate"].ToString(), tblSendList.Rows[i]["Id"].ToString()));
                    //}
                }
                catch (Exception)
                {
                    continue;
                }

            }
        }
        else
        {
            drlCampaign.Items.Add(new ListItem("Không có chiến dịch nào !", "1"));
            pnReport.Visible = false;

        }
    }
    private void Insert(DateTime startDate, bool isSave)
    {
        srBUS = new SendRegisterBUS();
        scBUS = new SendContentBUS();
        SendContentDTO scDTO = new SendContentDTO();
        scDTO = getContentDTO();

        //Lấy thời gian của người dùng Thiết lập
        DateTime timeEnd = startDate.AddMinutes(calcTimeForGroup(int.Parse(drlMailGroup.SelectedValue)) + 1);
        DateTime timeStart = startDate;
        int GroupID = 0;
        DataTable tableFirt = new DataTable();
        tableFirt = srBUS.GetByTimeCheck(startDate, 0);// 0 là chưa gửi.
        if (tableFirt.Rows.Count > 0)
        {
            GroupID = int.Parse(tableFirt.Rows[0]["GroupTo"].ToString());
            timeStart = DateTime.Parse(tableFirt.Rows[0]["StartDate"].ToString()).AddMinutes(calcTimeForGroup(GroupID) + 1);

            if (timeStart < startDate)
            {
                timeStart = startDate;
            }
            else
            {
            }
            timeEnd = timeStart.AddMinutes(calcTimeForGroup(int.Parse(drlMailGroup.SelectedValue)) + 1);
        }
        else
        {
        }
        SelectTime: ;
        tableFirt = srBUS.GetByTimeNext(timeStart, timeEnd, 0);
        if (tableFirt.Rows.Count > 0)
        {
            GroupID = int.Parse(tableFirt.Rows[0]["GroupTo"].ToString());
            timeStart = DateTime.Parse(tableFirt.Rows[0]["StartDate"].ToString()).AddMinutes(calcTimeForGroup(GroupID) + 1);
            timeEnd = timeStart.AddMinutes(calcTimeForGroup(int.Parse(drlMailGroup.SelectedValue)) + 1);
            goto SelectTime;
        }
        else
        {
            int contentID = 0;
            if (isSave)
            {
                contentID = scBUS.tblSendContent_insert(scDTO);
            }
            SendRegisterDTO srDto = getSendRegister();
            srDto.SendContentId = contentID;
            srDto.StartDate = timeStart;
            srDto.Subject = txtSubject.Text;
            srDto.Body = txtBody.Text;
            srBUS.tblSendRegister_insert(srDto);
        }

        Response.Redirect("wait-send.aspx", false);
    }
    protected void saveContentSendEvent(int eventId)
    {
        try
        {
            ContentSendEventBUS cseBus = new ContentSendEventBUS();
            DataTable dtContent = (DataTable)Session["listContentSendEvent"];
            if (dtContent.Rows.Count > 0)
            {
                for (int i = 0; i < dtContent.Rows.Count; i++)
                {
                    DataRow row = dtContent.Rows[i];
                    ContentSendEventDTO cseDto = new ContentSendEventDTO();
                    cseDto.Id = int.Parse(row["Id"].ToString());
                    cseDto.EventId = eventId;
                    cseDto.ContentId = int.Parse(row["ContentId"].ToString());
                    cseDto.HourSend = int.Parse(row["HourSend"].ToString());
                    cseDto.Subject = row["Subject"] + "";
                    cseDto.Body = row["Body"] + "";

                    int rsUpdate = cseBus.tblContentSendEvent_Update(cseDto);
                    if (rsUpdate <= 0)
                    {
                        cseBus.tblContentSendEvent_insert(cseDto);

                        SendContentDTO scDTO = new SendContentDTO();
                        scDTO = getContentDTO();
                        int contentID = new SendContentBUS().tblSendContent_insert(scDTO);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            logs.Error(userLogin.Username + "Create-Event - btnSaveContent_Click", ex);
        }
    }
 private void InitialBUS()
 {
     scBUS = new SendContentBUS();
     mailConfigBus = new MailConfigBUS();
     mailGroupBus = new MailGroupBUS();
     customerBus = new CustomerBUS();
     srBUS = new SendRegisterBUS();
     common = new Common();
     dsgBUS = new DetailGroupBUS();
 }
Beispiel #17
0
        private void event_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                EmailSend mailSend = new EmailSend();
                DetailGroupBUS dgBus = new DetailGroupBUS();
                ContentSendEventBUS cseBus = new ContentSendEventBUS();
                SendContentBUS scBus = new SendContentBUS();
                EventBUS eventBUS = new EventBUS();

                DataTable tblSendList = dgBus.getGroupListByEventList();
                if (tblSendList.Rows.Count > 0)
                {

                    List<SendMailDTO> sendList = mailSend.convetToSendMail(tblSendList);
                    int totalCnt = sendList.Count;
                    foreach (SendMailDTO sendItem in sendList)
                    {
                        int eventId = sendItem.eventId;
                        DataTable dtContentSendEvent = cseBus.GetByEventId(eventId);
                        if (dtContentSendEvent.Rows.Count > 0)
                        {
                            if (sendItem.countReceivedMail == 0
                                && sendItem.lastReceivedMail == "") // Gui lan dau
                            {
                                int id = int.Parse(dtContentSendEvent.Rows[0]["id"].ToString());
                                int contentId = int.Parse(dtContentSendEvent.Rows[0]["ContentId"].ToString());
                                int hourSend = int.Parse(dtContentSendEvent.Rows[0]["HourSend"].ToString());
                                DataTable dtSendContent = scBus.GetByID(contentId);
                                subject = dtContentSendEvent.Rows[0]["Subject"].ToString();
                                body = dtContentSendEvent.Rows[0]["Body"].ToString();

                                bool sendRs = false;
                                // Send normal.
                                bool send = sendMail(sendRs, sendItem.port, sendItem.hostName, sendItem.userSmtp, sendItem.passSmtp, sendItem.mailFrom, sendItem.senderName,
                                        subject, body, sendItem.recieveName, sendItem.mailTo, 0, id);
                                logs_info.Info("Status: " + send + ", sendRegisterId:" + sendRegisterId + ", MailTo: " + sendItem.mailTo + ", mailFrom: " + mailFrom + ", Name: " + sendItem.recieveName);

                                // Update tblDetailGroup.
                                DetailGroupDTO dgDto = new DetailGroupDTO();
                                dgDto.CustomerID = sendItem.customerId;
                                dgDto.GroupID = sendItem.groupId;
                                dgDto.CountReceivedMail = sendItem.countReceivedMail + 1;
                                dgDto.LastReceivedMail = DateTime.Now;
                                dgBus.tblDetailGroup_Update(dgDto);

                                eventBUS.tblEventCustomer_Update(eventId, sendItem.customerId, sendItem.countReceivedMail + 1);

                                logHistoryForSendEvent(id, sendItem.mailTo, mailFrom, sendItem.recieveName, send);
                            }
                            else if (sendItem.countReceivedMail < dtContentSendEvent.Rows.Count)
                            {
                                string strReceivedMail = sendItem.lastReceivedMail;
                                DateTime lastReceivedMail = DateTime.Now;
                                if (strReceivedMail != "")
                                {
                                    lastReceivedMail = DateTime.Parse(strReceivedMail);
                                }
                                int hourSend = int.Parse(dtContentSendEvent.Rows[sendItem.countReceivedMail]["HourSend"].ToString());
                                DateTime currentTime = lastReceivedMail.AddHours(hourSend);
                                TimeSpan time = currentTime - DateTime.Now;
                                /*if (DateTime.Now.Year == currentTime.Year
                                    && DateTime.Now.Month == currentTime.Month
                                    && DateTime.Now.Day == currentTime.Day
                                    && DateTime.Now.Hour == currentTime.Hour
                                    && DateTime.Now.Minute == currentTime.Minute)*/
                                if (time.Days < 0 || time.Hours < 0 || time.Minutes < 0 || time.Seconds < 0)
                                {
                                    int contentId = int.Parse(dtContentSendEvent.Rows[sendItem.countReceivedMail]["ContentId"].ToString());
                                    //DataTable dtSendContent = scBus.GetByID(contentId);
                                    //if (dtSendContent.Rows.Count > 0)
                                    //{
                                    //    subject = dtSendContent.Rows[0]["Subject"].ToString();
                                    //    body = dtSendContent.Rows[0]["Body"].ToString();
                                    //}
                                    subject = dtContentSendEvent.Select("hoursend=" + hourSend)[0]["Subject"].ToString();
                                    body = dtContentSendEvent.Select("hoursend=" + hourSend)[0]["Body"].ToString();

                                    int id = Convert.ToInt32(dtContentSendEvent.Select("hoursend=" + hourSend)[0]["id"] + "");
                                    bool sendRs = false;
                                    // Send normal.
                                    bool send = sendMail(sendRs, sendItem.port, sendItem.hostName, sendItem.userSmtp, sendItem.passSmtp, sendItem.mailFrom, sendItem.senderName,
                                            subject, body, sendItem.recieveName, sendItem.mailTo, 0, id);

                                    logHistoryForSendEvent(id, sendItem.mailTo, mailFrom, sendItem.recieveName, send);
                                    logs_info.Info("Status: " + send + ", sendRegisterId:" + sendRegisterId + ", MailTo: " + sendItem.mailTo + ", mailFrom: " + mailFrom + ", Name: " + sendItem.recieveName);
                                    // Update tblDetailGroup.
                                    DetailGroupDTO dgDto = new DetailGroupDTO();
                                    dgDto.CustomerID = sendItem.customerId;
                                    dgDto.GroupID = sendItem.groupId;
                                    dgDto.CountReceivedMail = sendItem.countReceivedMail + 1;
                                    dgDto.LastReceivedMail = DateTime.Now;
                                    dgBus.tblDetailGroup_Update(dgDto);
                                    eventBUS.tblEventCustomer_Update(eventId, sendItem.customerId, sendItem.countReceivedMail + 1);
                                }
                            }
                        }
                    }// End forEach.

                }
            }
            catch (Exception ex)
            {
                logs.Error("timer2_tick", ex);
            }
        }
 private void LoadContentList()
 {
     try
     {
         SendContentBUS scBus = new SendContentBUS();
         DataTable dtContent = scBus.GetAllSendContent(getUserLogin().UserId);
         if (dtContent.Rows.Count > 0)
         {
             DataRow row = dtContent.NewRow();
             row["Subject"] = "----------Chọn nội dung gửi kèm-----------";
             row["Id"] = "-1";
             dtContent.Rows.InsertAt(row, 0);
             drlContent.DataSource = dtContent;
             drlContent.DataTextField = "Subject";
             drlContent.DataValueField = "Id";
             drlContent.DataBind();
         }
     }
     catch (Exception ex)
     {
         logs.Error(userLogin.Username + "-Create-Event - LoadContentList", ex);
     }
 }
 private void InitialBUS()
 {
     scBUS = new SendContentBUS();
     signBus = new SignatureBUS();
 }
    private void LoadContentSendEventList(DataTable dataTable)
    {
        try
        {
            SendContentBUS scBus = new SendContentBUS();
            if (dataTable.Rows.Count > -1)
            {
                dataTable.DefaultView.Sort="hoursend";;
                dataTable = dataTable.DefaultView.ToTable();
                dlContentSendEvent.DataSource = dataTable;
                dlContentSendEvent.DataBind();
                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    Label lblNo = (Label)dlContentSendEvent.Items[i].FindControl("lblNo");
                    lblNo.Text = (i + 1).ToString();

                    LinkButton lbtContent = (LinkButton)dlContentSendEvent.Items[i].FindControl("lbtContent");
                    //String contentId = dataTable.Rows[i]["ContentId"].ToString();
                    //DataTable dtContent = scBus.GetByID(int.Parse(contentId));
                    //if (dtContent.Rows.Count > 0)
                    //{
                    //    lbtContent.Text = dtContent.Rows[0]["Subject"].ToString();
                    //}
                    lbtContent.Text = dataTable.Rows[i]["Subject"].ToString();
                    Label lblHour = (Label)dlContentSendEvent.Items[i].FindControl("lblHour");
                    lblHour.Text = dataTable.Rows[i]["HourSend"].ToString() + " Giờ sau";

                    string id = dataTable.Rows[i]["Id"].ToString();
                    LinkButton lbtDelete = (LinkButton)dlContentSendEvent.Items[i].FindControl("lbtContentDelete");
                    lbtDelete.CommandArgument = id;

                }
            }
        }
        catch (Exception ex)
        {
            logs.Error(userLogin.Username + "-Create-Event - LoadContentSendEventList", ex);
        }
    }