Carrotware.CMS.UI.Controls.ContentCommentForm.Submit_ContentCommentForm C# (CSharp) Метод

Submit_ContentCommentForm() защищенный Метод

protected Submit_ContentCommentForm ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
Результат void
        protected void Submit_ContentCommentForm(object sender, EventArgs e)
        {
            bool bCaptcha = false;

            Captcha captcha = (Captcha)GetEntryFormControl("ContentCommentCaptcha");
            if (captcha != null) {
                bCaptcha = captcha.Validate();
            } else {
                bCaptcha = true;
            }

            if (bCaptcha) {
                HttpRequest request = HttpContext.Current.Request;

                bool bIgnorePublishState = SecurityData.AdvancedEditMode || SecurityData.IsAdmin || SecurityData.IsSiteEditor;

                SiteNav navData = navHelper.GetLatestVersion(SiteData.CurrentSiteID, !bIgnorePublishState, SiteData.CurrentScriptName);

                Label lblContentCommentFormMsg = (Label)GetEntryFormControl("ContentCommentFormMsg");
                TextBox txtCommenterName = (TextBox)GetEntryFormControl("CommenterName");
                TextBox txtCommenterEmail = (TextBox)GetEntryFormControl("CommenterEmail");
                TextBox txtVisitorComments = (TextBox)GetEntryFormControl("VisitorComments");
                TextBox txtCommenterURL = (TextBox)GetEntryFormControl("CommenterURL");

                string sIP = request.ServerVariables["REMOTE_ADDR"].ToString();

                PostComment pc = new PostComment();
                pc.ContentCommentID = Guid.NewGuid();
                pc.Root_ContentID = navData.Root_ContentID;
                pc.CreateDate = SiteData.CurrentSite.Now;
                pc.IsApproved = false;
                pc.IsSpam = false;
                pc.CommenterIP = sIP;

                if (txtCommenterName != null) {
                    pc.CommenterName = txtCommenterName.Text;
                }
                if (txtCommenterEmail != null) {
                    pc.CommenterEmail = txtCommenterEmail.Text;
                }
                if (txtVisitorComments != null) {
                    pc.PostCommentText = txtVisitorComments.Text;
                }
                if (txtCommenterURL != null) {
                    pc.CommenterURL = txtCommenterURL.Text;
                }

                if (SiteData.IsWebView && SecurityData.IsAuthenticated) {
                    if ((this.AutoApproveAdmin)) {
                        pc.IsApproved = SecurityData.IsAdmin;
                    }
                    if (!String.IsNullOrEmpty(this.AutoApproveGroupName)) {
                        pc.IsApproved = SecurityData.IsUserInRole(this.AutoApproveGroupName);
                    }
                }

                pc.Save();

                if (!String.IsNullOrEmpty(this.DirectEmail) || this.NotifyEditors || !String.IsNullOrEmpty(this.DirectEmailKeyName)) {
                    List<string> emails = new List<string>();

                    if (!String.IsNullOrEmpty(this.DirectEmail)) {
                        emails.Add(this.DirectEmail);
                    }
                    if (!String.IsNullOrEmpty(this.DirectEmailKeyName)) {
                        emails.Add(ConfigurationManager.AppSettings[this.DirectEmailKeyName].ToString());
                    }
                    if (this.NotifyEditors) {
                        ContentPage page = navData.GetContentPage();
                        emails.Add(page.CreateUser.EmailAddress);

                        if (page.EditUser.UserId != page.CreateUser.UserId) {
                            emails.Add(page.EditUser.EmailAddress);
                        }
                        if (page.CreditUserId.HasValue) {
                            emails.Add(page.CreditUser.EmailAddress);
                        }
                    }

                    string sEmail = String.Join(",", emails.ToArray());

                    string strHTTPHost = String.Empty;
                    try { strHTTPHost = request.ServerVariables["HTTP_HOST"] + String.Empty; } catch { strHTTPHost = String.Empty; }

                    string hostName = strHTTPHost.ToLowerInvariant();

                    string strHTTPProto = "http://";
                    try {
                        strHTTPProto = request.ServerVariables["SERVER_PORT_SECURE"] + String.Empty;
                        if (strHTTPProto == "1") {
                            strHTTPProto = "https://";
                        } else {
                            strHTTPProto = "http://";
                        }
                    } catch { }

                    string mailSubject = String.Format("Comment Form From {0}", hostName);

                    strHTTPHost = String.Format("{0}{1}", strHTTPProto, strHTTPHost).ToLowerInvariant();

                    string sBody = "Name:   " + pc.CommenterName
                        + "\r\nEmail:   " + pc.CommenterEmail
                        + "\r\nURL:   " + pc.CommenterURL
                        + "\r\n-----------------\r\nComment:\r\n" + HttpUtility.HtmlEncode(pc.PostCommentText)
                        + "\r\n=================\r\n\r\nIP:   " + pc.CommenterIP
                        //+ "\r\nSite Page:   " + request.ServerVariables["script_name"].ToString()
                        + "\r\nSite URL:   " + String.Format("{0}{1}", strHTTPHost, request.ServerVariables["script_name"])
                        + "\r\nSite Time:   " + SiteData.CurrentSite.Now.ToString()
                        + "\r\nUTC Time:   " + DateTime.UtcNow.ToString();

                    EmailHelper.SendMail(null, sEmail, mailSubject, sBody, false);
                }

                //if (lbl != null && txt1 != null && txt2 != null) {
                //    lbl.Text = "Clicked the button: " + txt1.Text + " - " + txt2.Text;
                //}

                phEntry.Visible = false;
                phThanks.Visible = true;
            }
        }