Пример #1
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                string        title          = txtTitle.Text;
                string        content        = txtMessage.Text;
                List <string> customerEmails = getCustomerList();
                string        emailContent   = content;
                EmailClass    emailClass     = new EmailClass(customerEmails, title, emailContent, false);// change false to true

                if (EmailClass.isCredentialed())
                {
                    EmailCredential credential = (EmailCredential)Session["EmailCredential"];
                    emailClass.sendEmail(credential);
                }
                else
                {
                    Session["tempEmail"] = emailClass;
                    Response.Redirect(ResolveUrl("~/Staff/VerifyEmail.aspx?ReturnURL=" + Request.Url.AbsoluteUri));
                }
            }
            catch (Exception ex)
            {
                Response.Write("<script LANGUAGE='JavaScript' >alert('Error occur when sending email: " + ex.Message + "')</script>");
            }
        }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string email    = txtEmail.Text;
            string password = txtPassword.Text;
            int    abc      = ddlEmailProvider.SelectedIndex;

            if (Session["tempEmail"] != null)
            {
                EmailClass emailClass = (EmailClass)Session["tempEmail"];

                try
                {
                    EmailCredential emailCredential = new EmailCredential(new NetworkCredential(email, password), EmailClass.getStmpClient(ddlEmailProvider.SelectedValue));
                    emailClass.sendEmail(emailCredential);
                    EmailClass.generateCredential(email, password, EmailClass.getStmpClient(ddlEmailProvider.SelectedValue));

                    string url = Request.QueryString["ReturnUrl"];
                    Response.Write(" <script language = 'javascript'> window.alert('Email has been sent. Redirecting previous page.'); window.location = '" + url + "';</script>");
                }
                catch (SmtpFailedRecipientsException stmpRecipientsException)
                {
                    lblError.Text = "Email failed to send to " + stmpRecipientsException.FailedRecipient;
                }
                catch (SmtpException smtpException)
                {
                    lblError.Text = "The email or password might typed wrong or " + smtpException.Message;
                }
            }
            else
            {
                lblError.Text = "There is no email to be send, credential is not created.";
            }
        }
Пример #3
0
        public ActionResult CommentReply(string commentreply, int ticketId)
        {
            if (Session["isLogin"] != null)
            {
                if (!string.IsNullOrEmpty(commentreply))
                {
                    TicketViewModel viewModel = new TicketViewModel();
                    viewModel.Comment = db.Comment.Where(o => o.TicketId == ticketId).ToList();
                    viewModel.ticket  = db.Ticket.Where(o => o.TicketId == ticketId).FirstOrDefault();

                    Comment commentModel = new Comment();
                    try
                    {
                        commentModel.CommenterName  = Session["name"].ToString();
                        commentModel.CommentMessage = commentreply;
                        commentModel.TicketId       = ticketId;
                        commentModel.Created_at     = DateTime.Now;
                        commentModel.CommentId      = RandomNumber();
                        string name         = Session["name"].ToString();
                        string adminssionNo = Session["AdmissionNo"].ToString();

                        var commentData = db.Comment.Add(commentModel);
                        db.SaveChanges();

                        if (commentData != null)
                        {
                            EmailParam param = new EmailParam();
                            param.Email       = "*****@*****.**";
                            param.SenderEmail = "*****@*****.**";
                            param.From        = "Open Ticket for IGR";
                            param.Message     = "Hi Admin,\n\nYou have a pending ticket with content below\n\nPlease login into support to respond ticket\n\n--------------\n\n"
                                                + commentModel.CommentMessage + "\n\n------------\n\nSender Name: " + name + "\nAmissionNo: " + adminssionNo;
                            EmailClass.sendEmail(EMAILAPI, param);
                        }
                    }
                    catch (Exception ex)
                    {
                        ViewBag.Error = "Unable to add comment";
                    }
                    return(View("Ticket_Reply", viewModel));
                }
            }
            return(RedirectToAction("Index"));
        }
        private void sendNotification(string requestlistID)
        {
            DataTable result = null;

            try
            {
                using (SqlConnection conPrintDB = new SqlConnection(ConfigurationManager.ConnectionStrings["printDBServer"].ConnectionString))
                {
                    string strSelect = "Select CustomerEmail, CustomerPhoneNo, CustomerContactMethod, CompanyName From Customer c, Request r, Requestlist rl, Company cp WHERE rl.RequestID = r.RequestID AND r.CustomerID = c.CustomerID AND r.CompanyID = cp.CompanyID AND rl.RequestlistID = @requestlistID";

                    using (SqlCommand cmdSelect = new SqlCommand(strSelect, conPrintDB))
                    {
                        cmdSelect.Parameters.AddWithValue("@requestlistID", requestlistID);

                        using (SqlDataAdapter da = new SqlDataAdapter(cmdSelect))
                        {
                            result = new DataTable();
                            da.Fill(result);
                        }

                        //return new User((string)result.Rows[0]["ID"], (string)result.Rows[0]["Name"], GetUserRoles(username, loginType), (string)result.Rows[0]["Email"]);
                        string contactNo     = (string)result.Rows[0]["CustomerPhoneNo"];
                        string email         = (string)result.Rows[0]["CustomerEmail"];
                        string contactMethod = (string)result.Rows[0]["CustomerContactMethod"];
                        string companyName   = (string)result.Rows[0]["CompanyName"];

                        switch (contactMethod)
                        {
                        case "whatsapp":
                            WhatappClass.sendWhatsappWithURL(contactNo, "Your Document is Printed and Ready", Response);
                            break;

                        case "wechat":
                        case "E-mail":
                            string     emailContent = EmailClass.populateNotificationEmail(companyName);// content of the email
                            EmailClass emailClass   = new EmailClass(email, "Document is Printed and Ready", emailContent, true);

                            if (EmailClass.isCredentialed())
                            {
                                EmailCredential credential = (EmailCredential)Session["EmailCredential"];
                                emailClass.sendEmail(credential);
                            }
                            else
                            {
                                Session["tempEmail"] = emailClass;
                                Response.Redirect(ResolveUrl("~/Staff/VerifyEmail.aspx?ReturnURL=" + Request.Url.AbsoluteUri));
                            }
                            break;

                        case "SMS":
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
        }
Пример #5
0
        public ActionResult CreateTicket(HttpPostedFileBase file, TicketPost requestPost)
        {
            if (!ModelState.IsValid)
            {
                var message = string.Join(" | ", ModelState.Values
                                          .SelectMany(v => v.Errors)
                                          .Select(e => e.ErrorMessage));
                Session["Error"] = message;
                return(RedirectToAction("Ticket"));
            }

            //save  ticket
            Ticket ticketParam = new Ticket();
            string name        = null;
            string email       = null;
            string phone       = null;

            ticketParam.Title         = requestPost.Title;
            ticketParam.Message       = requestPost.Message;
            ticketParam.TicketId      = RandomNumber() + RandomNumber();
            ticketParam.Id            = ticketParam.TicketId;
            ticketParam.SourceData    = requestPost.type;
            ticketParam.Ticket_Status = 1;
            ticketParam.IGR_Code      = Session["igr"].ToString();
            ticketParam.Created_at    = DateTime.Now;
            if (Session["temporary_tin"] == null)
            {
                ticketParam.TinId = Session["tinNo"].ToString();
                name  = Session["name"].ToString();
                email = Session["email"].ToString();
                phone = Session["phone"].ToString();
            }
            else
            {
                ticketParam.TinId = Session["temporary_tin"].ToString();
                name  = Session["name"].ToString();
                email = Session["email"].ToString();
                phone = Session["phone"].ToString();
            }



            try
            {
                var ticketPara = db.Ticket.Add(ticketParam);
                db.SaveChanges();

                if (ticketPara != null)
                {
                    EmailParam param = new EmailParam();
                    param.Email       = "*****@*****.**";
                    param.SenderEmail = "*****@*****.**";
                    param.From        = "Open Ticket for IGR";
                    param.Message     = "Hi Admin,\n\nYou have a pending ticket with content below\n\nPlease login into support to respond ticket\n\n--------------\n\n"
                                        + requestPost.Message + "\n\n------------\n\nSender Name: " + name + "\nTinNo: " + ticketParam.TinId +
                                        "\nPhone: " + phone + "\nEmaill: " + email;
                    EmailClass.sendEmail(EMAILAPI, param);
                }
            }
            catch (Exception ex)
            {
                Session["Error"] = ex.Message.ToString();
                return(RedirectToAction("Ticket"));
            }


            foreach (string upload in Request.Files)
            {
                if (Request.Files[upload].ContentLength > 0)
                {
                    var filename = ticketParam.TicketId + ".png";
                    var size     = Request.Files[upload].ContentLength;

                    if (size > 532000)
                    {
                        Session["Error"] = "File cannot be larger than 500KB";
                        return(RedirectToAction("Ticket"));
                    }
                    var FileExt = Request.Files[upload].ContentType;
                    if (FileExt == "image/png" || FileExt == "image/jpeg")
                    {
                        var    filePathOriginal  = Server.MapPath("/Content/img");
                        var    filePathThumbnail = Server.MapPath("/Content/img");
                        string savedFileName     = Path.Combine(filePathOriginal, filename);
                        Request.Files[upload].SaveAs(savedFileName);
                    }
                    else
                    {
                        Session["Error"] = "Please upload a .png or .jpeg format";
                        return(RedirectToAction("Ticket"));
                    }
                }
            }

            Session["Sucess"] = "Ticket successfully opened";
            return(RedirectToAction("Ticket"));
        }
Пример #6
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            SqlConnection conPrintDB;
            string        connStr = ConfigurationManager.ConnectionStrings["printDBServer"].ConnectionString;

            conPrintDB = new SqlConnection(connStr);
            conPrintDB.Open();
            try
            {
                string     strInsert;
                SqlCommand cmdInsert;

                strInsert = "Insert Into CompanyStaff (StaffName, StaffEmail, StaffPassword, StaffNRIC, StaffDOB, StaffPhoneNo, StaffSalt, StaffRole, CompanyID) Values (@staffName, @staffEmail,@staffPassword, @staffNRIC, @staffDOB, @staffPhoneNo, @staffSalt, @staffRole, @companayID); SELECT MAX(StaffID) from CompanyStaff where StaffName=@staffName and StaffPhoneNo=@staffPhoneNo";

                byte[] generatedSalt = ClassHashing.generateSalt();
                byte[] hashPassword  = { 0, 0 };//empty password when checkbox for password setting is not checked

                if (chkPassSet.Checked)
                {
                    hashPassword = ClassHashing.generateSaltedHash(txtPassword.Text, generatedSalt);
                }
                cmdInsert = new SqlCommand(strInsert, conPrintDB);
                cmdInsert.Parameters.AddWithValue("@staffName", txtName.Text);
                cmdInsert.Parameters.AddWithValue("@staffEmail", txtEmail.Text);
                cmdInsert.Parameters.AddWithValue("@staffPassword", hashPassword);
                cmdInsert.Parameters.AddWithValue("@staffNRIC", txtNRIC.Text);
                cmdInsert.Parameters.AddWithValue("@staffDOB", cldBOD.SelectedDate);
                cmdInsert.Parameters.AddWithValue("@staffPhoneNo", txtPhoneNo.Text);
                cmdInsert.Parameters.AddWithValue("@staffSalt", generatedSalt);
                cmdInsert.Parameters.AddWithValue("@staffRole", UserVerification.ROLE_STAFF);
                cmdInsert.Parameters.AddWithValue("@companayID", Request.Cookies["CompanyID"].Value);

                var staffID = cmdInsert.ExecuteScalar();

                if (!chkPassSet.Checked)
                {
                    string     strSelect = "SELECT CompanyName FROM Company WHERE CompanyID = @companyID";
                    SqlCommand cmdSelect = new SqlCommand(strSelect, conPrintDB);
                    cmdSelect.Parameters.AddWithValue("@companyID", Request.Cookies["CompanyID"].Value);
                    var companyName = cmdSelect.ExecuteScalar();

                    string verificationCode = UserVerification.getVerificationCode(staffID + txtNRIC.Text, generatedSalt);
                    //then it will generate a url to activate the account and send it to the staff
                    string     verificationLink = DOMAIN_NAME + Page.ResolveUrl("~/StaffAccountActivation.aspx?VC=" + HttpUtility.UrlEncode(verificationCode));
                    string     emailContent     = EmailClass.populateActivationEmail((string)companyName, verificationLink);// content of the email
                    EmailClass emailClass       = new EmailClass(txtEmail.Text, "Staff Account Activation", emailContent, true);

                    if (EmailClass.isCredentialed())
                    {
                        EmailCredential credential = (EmailCredential)Session["EmailCredential"];
                        emailClass.sendEmail(credential);
                    }
                    else
                    {
                        Session["tempEmail"] = emailClass;
                        Response.Redirect(ResolveUrl("~/Staff/VerifyEmail.aspx?ReturnURL=" + Request.Url.AbsoluteUri));
                    }
                }

                lblError.Text = "Successfully added";
            }
            catch (Exception ex)
            {
                lblError.Text = "An error occured when register staff :" + ex.ToString();
            }
            finally
            {
                conPrintDB.Close();
            }
        }