public ActionResult Index(Feedback feedback)
        {
            try
            {
                if (string.IsNullOrEmpty(feedback.Message) && string.IsNullOrEmpty(feedback.UserAnswer))
                {
                    feedback.IsResult = false;
                    return View(feedback);
                }
                int maxLength = 30000;
                feedback.IsResult = true;

                if (string.IsNullOrEmpty(feedback.Message))
                {
                    feedback.Succeeded = false;
                    feedback.ErrorMessage = "Feedback shouldn't be empty.";
                    return View(feedback);
                }
                else if (feedback.Message.Length > maxLength)
                {
                    feedback.Succeeded = false;
                    feedback.ErrorMessage = string.Format("Feedback shouldn't be longer than {0} characters.", maxLength);
                    return View(feedback);
                }

                Log.LogInfo(feedback.Message, "FEEDBACK");
                feedback.Succeeded = true;
                return View(feedback);
            }
            catch (Exception e)
            {
                Log.LogInfo(e.Message, "FEEDBACK_ERROR");
                feedback.Succeeded = false;
                feedback.ErrorMessage = "Oops. Something went wrong by our fault. Please try again.";
                return View(feedback);
            }
        }
        public ActionResult Index(Feedback feedback)
        {
            try
            {
                if (string.IsNullOrEmpty(feedback.Message) && string.IsNullOrEmpty(feedback.UserAnswer))
                {
                    feedback.IsResult = false;
                    /*ResetFeedback(feedback);*/
                    return(View(feedback));
                }
                int maxLength = 30000;
                feedback.IsResult = true;

                /*
                 * byte[] b = EncryptionUtils.EncodeDecode(EncryptionUtils.FromUserString(feedback.InfoString));
                 * string infoString = System.Text.Encoding.Unicode.GetString(b);
                 * string[] parts = infoString.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                 * DateTime infoDate = Convert.ToDateTime(parts[0]);
                 * if (infoDate + TimeSpan.FromSeconds(5) > DateTime.Now)
                 * {
                 *  feedback.Succeeded = false;
                 *  feedback.ErrorMessage = "Form submitted in less than 5 seconds. Please try again slower.";
                 *  ResetFeedback(feedback);
                 *  return View(feedback);
                 * }
                 * else if (parts[1] != feedback.CaptchaRegex)
                 * {
                 *  feedback.Succeeded = false;
                 *  feedback.ErrorMessage = "Captcha regular expression has changed when it shouldn't.";
                 *  ResetFeedback(feedback);
                 *  return View(feedback);
                 * }
                 * else */if (string.IsNullOrEmpty(feedback.Message))
                {
                    feedback.Succeeded    = false;
                    feedback.ErrorMessage = "Feedback shouldn't be empty.";
                    //ResetFeedback(feedback);
                    return(View(feedback));
                }
                else if (feedback.Message.Length > maxLength)
                {
                    feedback.Succeeded    = false;
                    feedback.ErrorMessage = string.Format("Feedback shouldn't be longer than {0} characters.", maxLength);
                    //ResetFeedback(feedback);
                    return(View(feedback));
                }

                /*
                 * lock (_lock)
                 * {
                 *  if (InfoStrings.GetMe().ContainsInfoString(infoString))
                 *  {
                 *      feedback.Succeeded = false;
                 *      feedback.ErrorMessage = "An attempt to resubmit request detected. Please try again.";
                 *      ResetFeedback(feedback);
                 *      return View(feedback);
                 *  }
                 *  else
                 *  {
                 *      InfoStrings.GetMe().AddInfoString(infoString);
                 *  }
                 * }
                 *
                 * Regex rg = new Regex(feedback.CaptchaRegex);
                 * if (string.IsNullOrEmpty(feedback.UserAnswer) || !rg.IsMatch(feedback.UserAnswer))
                 * {
                 *  feedback.Succeeded = false;
                 *  feedback.ErrorMessage = "Supplied answer didn't match given regular expression. Please try again.";
                 *  ResetFeedback(feedback);
                 *  return View(feedback);
                 * }
                 * else
                 * {*/
                Log.LogInfo(feedback.Message, null, "FEEDBACK");
                feedback.Succeeded = true;
                return(View(feedback));
                /*}*/
            }
            catch (Exception e)
            {
                Log.LogInfo(e.Message, null, "FEEDBACK_ERROR");
                feedback.Succeeded    = false;
                feedback.ErrorMessage = "Oops. Something went wrong by our fault. Please try again.";
                //ResetFeedback(feedback);
                return(View(feedback));
            }
        }
Esempio n. 3
0
        public ActionResult Index(Feedback feedback)
        {
            try
            {
                if (string.IsNullOrEmpty(feedback.Message) && string.IsNullOrEmpty(feedback.UserAnswer))
                {
                    feedback.IsResult = false;
                    /*ResetFeedback(feedback);*/
                    return View(feedback);
                }
                int maxLength = 30000;
                feedback.IsResult = true;
                /*
                byte[] b = EncryptionUtils.EncodeDecode(EncryptionUtils.FromUserString(feedback.InfoString));
                string infoString = System.Text.Encoding.Unicode.GetString(b);
                string[] parts = infoString.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                DateTime infoDate = Convert.ToDateTime(parts[0]);
                if (infoDate + TimeSpan.FromSeconds(5) > DateTime.Now)
                {
                    feedback.Succeeded = false;
                    feedback.ErrorMessage = "Form submitted in less than 5 seconds. Please try again slower.";
                    ResetFeedback(feedback);
                    return View(feedback);
                }
                else if (parts[1] != feedback.CaptchaRegex)
                {
                    feedback.Succeeded = false;
                    feedback.ErrorMessage = "Captcha regular expression has changed when it shouldn't.";
                    ResetFeedback(feedback);
                    return View(feedback);
                }
                else */if (string.IsNullOrEmpty(feedback.Message))
                {
                    feedback.Succeeded = false;
                    feedback.ErrorMessage = "Feedback shouldn't be empty.";
                    //ResetFeedback(feedback);
                    return View(feedback);
                }
                else if (feedback.Message.Length > maxLength)
                {
                    feedback.Succeeded = false;
                    feedback.ErrorMessage = string.Format("Feedback shouldn't be longer than {0} characters.", maxLength);
                    //ResetFeedback(feedback);
                    return View(feedback);
                }
                /*
                lock (_lock)
                {
                    if (InfoStrings.GetMe().ContainsInfoString(infoString))
                    {
                        feedback.Succeeded = false;
                        feedback.ErrorMessage = "An attempt to resubmit request detected. Please try again.";
                        ResetFeedback(feedback);
                        return View(feedback);
                    }
                    else
                    {
                        InfoStrings.GetMe().AddInfoString(infoString);
                    }
                }

                Regex rg = new Regex(feedback.CaptchaRegex);
                if (string.IsNullOrEmpty(feedback.UserAnswer) || !rg.IsMatch(feedback.UserAnswer))
                {
                    feedback.Succeeded = false;
                    feedback.ErrorMessage = "Supplied answer didn't match given regular expression. Please try again.";
                    ResetFeedback(feedback);
                    return View(feedback);
                }
                else
                {*/
                    Log.LogInfo(feedback.Message, null, "FEEDBACK");
                    feedback.Succeeded = true;
                    return View(feedback);
                /*}*/
            }
            catch (Exception e)
            {
                Log.LogInfo(e.Message, null, "FEEDBACK_ERROR");
                feedback.Succeeded = false;
                feedback.ErrorMessage = "Oops. Something went wrong by our fault. Please try again.";
                //ResetFeedback(feedback);
                return View(feedback);
            }
        }