Exemple #1
0
        //protected abstract bool CheckPagePrivate();

        /// <summary>
        /// is called by LoadControls()
        /// </summary>
        /// <returns></returns>
        protected bool check_page(ViewType viewType)
        {
            #region test auf vorhandene qid

            myParams = page_utilities.EncodeParams(Request.Params);

            //if (Request.QueryString["qid"] != null)
            if (myParams["qid"] != null)
            {
                //if there's a valid questionnaire_id fill table 'questionnaire_general' and 'page'
                //questionnaire_id = Request.QueryString["qid"].ToString();
                questionnaire_id = myParams["qid"].ToString();
                questionnaire_id = questionnaire_id.Replace("?", "");
                questionnaire_id = questionnaire_id.Replace("%3f", "");

                int qid_int = 0;
                try
                {
                    qid_int = Int32.Parse(questionnaire_id);
                }
                catch
                {
                    Response.Redirect("404_invalidqid.aspx", true);
                    return false;
                }

                ///implemented on Nov, 12th, 2007 due to a mistake made by Sebastian Olimid
                ///eDM was send out containing a link with qid = 4258
                ///Sebastian needed to change something on the form and deleted 4258 and created 
                ///a new form (4259)
                if (questionnaire_id == "4258")
                {
                    questionnaire_id = "4259";
                }

                Hashtable h_params = new Hashtable();
                h_params.Add("questionnaire_id", questionnaire_id);

                questionnaire_general = DB.execProc("select_questionnaire_general", h_params);
                h_params.Clear();

                #region test auf gültige qid
                if (questionnaire_general.Rows.Count != 0)
                {
                    qid_country = questionnaire_general.Rows[0]["country_FK"].ToString().ToLower();
                    qid_language = questionnaire_general.Rows[0]["language_FK"].ToString().ToLower();

                    //changed to only decide based on language to be able to support new RTL cc-ll combinations (HP homepages) without code change
                    switch (qid_language.ToUpper())
                    //switch (qid_country.ToUpper() + qid_language.ToUpper())
                    {
                        //case "ILHE":
                        case "HE":
                            bodyDirection = "right";
                            break;
                        //case "EMEA_MIDDLE_EASTAR":
                        case "AR":
                            bodyDirection = "right";
                            break;
                        default:
                            bodyDirection = "left";
                            break;
                    }

                    page = GetPage();

                    h_params.Clear();

                    #region test auf vorhandene page
                    if (page.Rows.Count != 0)
                    {
                        customer = new DataTable();
                        if (CheckPreview(viewType))
                        {
                            if (Request.QueryString["rpi"] != null)
                            {
                                reset_guid = Request.QueryString["rpi"];
                            }
                            post_params = (DataTable)Session["post_params"];

                            if (post_params != null)
                            {
                                session_valid = true;
                            }
                            else
                            {
                                session_valid = false;
                            }
                            #region validation for Flexfield10(AssetID)
                            //††† 20100817 Biju Pattathil | RFG 2.2  Start†††
                            //if ((Request.QueryString["status"] == null) || (Request.QueryString["status"].ToString() != "test"))
                            //{
                            //    if (bool.Parse(questionnaire_general.Rows[0]["any_asset"].ToString()))
                            //    {
                            //        if (Request.QueryString["flexfield10"] != null)
                            //        {
                            //            if (Request.QueryString["flexfield10"].ToString() != "")
                            //            {
                            //                if (!System.Text.RegularExpressions.Regex.IsMatch(Request.QueryString["flexfield10"].ToString(), utility.getParameter("FlexField10Format")))
                            //                {
                            //                    Response.Redirect(String.Format("~/FormContentError.aspx?flex10msg=flexfield10 Incorrect"), true);
                            //                    return false;
                            //                }
                            //            }
                            //        }
                            //        else
                            //        {
                            //            Response.Redirect(String.Format("~/FormContentError.aspx?flex10msg=flexfield10 Missing"), true);
                            //            return false;
                            //        }

                            //    }
                            //}
                            //††† 20100817 Biju Pattathil | RFG 2.2  Start†††
                            #endregion
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                    else
                    {
                        Response.Redirect(String.Format("404_noformpage.aspx?cc={0}&ll={1}", qid_country, qid_language), true);
                        return false;
                    }
                    #endregion
                }
                else
                {
                    Response.Redirect("404_invalidqid.aspx", true);
                    return false;
                }
                #endregion
            }
            else
            {
                Response.Redirect("404_noqid.aspx", true);
                return false;
            }
            #endregion
        }
Exemple #2
0
        private bool CheckIfActiveOfflineEtc(ViewType viewType)
        {
            if (questionnaire_general.Rows[0]["status_active"].ToString().ToLower() == "true")
            {
                #region test auf abgelaufen
                if (!((DateTime)questionnaire_general.Rows[0]["expire_date"] < DateTime.Now))
                {
                    #region test auf personalized und cid/registered_personalized und rid
                    check_page_personalized(viewType);
                    #endregion
                }
                else
                {
                    string expire_redirect = questionnaire_general.Rows[0]["expire_redirect"].ToString();

                    #region redirect to external or standard expiration page
                    if (expire_redirect != "")
                    {
                        Response.Redirect(expire_redirect, true);
                    }
                    else
                    {
                        Response.Redirect(String.Format("404_expired.aspx?cc={0}&ll={1}", qid_country, qid_language), true);
                    }
                    #endregion
                    return false;
                }
                #endregion

                #region check if the page is offline

                if (questionnaire_general.Rows[0]["offline_mode"].ToString() != "" || questionnaire_general.Rows[0]["offline_mode"].ToString() != null)
                {
                    if (IsOffline())
                    {
                        string expire_redirect = questionnaire_general.Rows[0]["offline_redirect"].ToString();

                        #region redirect to external or standard expiration page
                        if (expire_redirect != "")
                        {
                            Response.Redirect(expire_redirect, true);
                        }
                        else
                        {
                            Response.Redirect(String.Format("404_maintenance.aspx?cc={0}&ll={1}", qid_country, qid_language), true);
                        }
                        #endregion
                        return false;
                    }
                }
                #endregion

                #region check for scheduled publish
                DateTime schDt;
                DateTime.TryParse(questionnaire_general.Rows[0]["publish_date"].ToString(), out schDt);
                if (schDt > DateTime.Now)
                {
                    Response.Redirect(String.Format("404_notactive.aspx?cc={0}&ll={1}", qid_country, qid_language), true);
                }              
                #endregion

                return true;
            }
            else
            {
                Response.Redirect(String.Format("404_notactive.aspx?cc={0}&ll={1}", qid_country, qid_language), true);
                return false;
            }
        }
Exemple #3
0
        /// <summary>
        /// is called by check_page
        /// </summary>
        protected void check_page_personalized(ViewType viewType)
        {
            personalized = false;
            registered_personalized = false;

            personalized = (questionnaire_general.Rows[0]["personalized"].ToString().ToLower() == "true");
            registered_personalized = (questionnaire_general.Rows[0]["registered_personalized"].ToString().ToLower() == "true");

            Hashtable h_params = new Hashtable();

            if (personalized | registered_personalized)
            {
                #region read cid or rid from URL

                //if (personalized && Request.QueryString["cid"] != null && Regex.IsMatch(Request.QueryString["cid"], constants.REGEX_GUID_PATTERN, RegexOptions.IgnoreCase) )
                if (personalized && myParams["cid"] != null && Regex.IsMatch(myParams["cid"], constants.REGEX_GUID_PATTERN, RegexOptions.IgnoreCase))
                {
                    //cid = Request.QueryString["cid"];
                    cid = myParams["cid"];
                }
                //if (registered_personalized && Request.QueryString["rid"] != null && Regex.IsMatch(Request.QueryString["rid"], constants.REGEX_GUID_PATTERN, RegexOptions.IgnoreCase) )
                if (registered_personalized && myParams["rid"] != null && Regex.IsMatch(myParams["rid"], constants.REGEX_GUID_PATTERN, RegexOptions.IgnoreCase))
                {
                    #region check whether Session contains the key login
                    if (Session["login"] != null)
                    {
                        //rid = Request.QueryString["rid"];
                        rid = myParams["rid"];
                    }
                    else
                    {
                        //remove all occurences of ? and insert only one at the beginning
                        string querystring = utility.clear_querystring(Request.QueryString.ToString());
                        //string querystring = utility.clear_querystring(HttpUtility.HtmlEncode(Request.QueryString.ToString()));
                        if (questionnaire_general.Rows[0]["Company"].ToString() == Configuration.Company_HPE.ToString())  //RFG 2.20
                        {
                            if (Request.AppRelativeCurrentExecutionFilePath != "~/live/login_e.aspx")
                            {
                                Response.Redirect(String.Format("~/live/login_e.aspx{0}", querystring));
                            }
                        }
                        else
                        {
                            if (Request.AppRelativeCurrentExecutionFilePath != "~/live/login.aspx")
                            {
                                Response.Redirect(String.Format("~/live/login.aspx{0}", querystring));
                            }
                        }
                    }
                    #endregion
                }
                #endregion

                // if there's a cid or a rid then fill table 'customer'
                if (cid != "" | rid != "")
                {
                    if (cid != "")
                    {
                        h_params.Add("customer_id", cid);
                    }
                    if (rid != "")
                    {
                        h_params.Add("responser_id", rid);
                    }

                    customer = DB.execProc("select_customer", h_params);
                    h_params.Clear();

                    #region log visit to site only for CID customers!
                    if (!this.IsPostBack && cid != "" && customer.Rows.Count > 0)
                    {
                        h_params.Add("customer_id", cid);
                        h_params.Add("questionnaire_id", questionnaire_id);
                        h_params.Add("source_type", Migration.ViewTypeToString(viewType));
                        DB.execProc("insert_response_time", h_params);

                        h_params.Clear();
                    }
                    #endregion
                }
                else
                {
                    h_params.Add("customer_id", Constants.UnknownCustomer);
                    customer = DB.execProc("select_customer", h_params);
                    h_params.Clear();
                }
            }
        }
Exemple #4
0
        protected bool CheckPreview(ViewType viewType)
        {
            #region test auf test-preview
            if ("production" == utility.getParameter("platform") || "stage" == utility.getParameter("platform") || "dev" == utility.getParameter("platform"))
            {
                if (myParams["view"] == "sneak" || HP.Rfg.lib.utility.getParameter("noexternalpreviews") != "true")
                {
                    #region test auf personalized und cid/registered_personalized und rid
                    check_page_personalized(viewType);
                    return true;
                    #endregion
                }
                else
                {
                    #region test auf active
                    return CheckIfActiveOfflineEtc(viewType);
                    #endregion
                }
            }
            else
            {
                #region test auf personalized und cid/registered_personalized und rid
                check_page_personalized(viewType);
                return true;
                #endregion
            }

            #endregion
        }