protected void Page_Load(object sender, EventArgs e)
        {
            Response.Clear();
            Response.ContentType = "text/json";

            if (Request.Form.AllKeys.Count() != 0)
            {
                // Post position
                string _philosophyID = Request.Form["Philosophy_id"].ToString();
                Session["PhilosophyPosition"] = _philosophyID;

                // Get has user answered and return
                int UserID = Convert.ToInt32(HttpContext.Current.User.Identity.Name);
                PhilosophyUserAnswer m_PhilosophyUserAnswer = new PhilosophyUserAnswer().GetPhilosophyUserAnswer(UserID, _philosophyID);


                Response.Write(JsonConvert.SerializeObject(m_PhilosophyUserAnswer != null));
            }
            else
            {
                // Get position
                if (Session["PhilosophyPosition"] != null)
                {
                    Response.Write(JsonConvert.SerializeObject(Session["PhilosophyPosition"].ToString()));
                }
                else
                {
                    Response.Write(JsonConvert.SerializeObject(""));
                }
            }
        }
        // GET api/<controller>
        public bool Get()
        {
            try
            {
                int _UserID = Convert.ToInt32(HttpContext.Current.User.Identity.Name);
                PhilosophyUserAnswer[] _UserAnswers = new PhilosophyUserAnswer().GetPhilosophyUserAnswers(_UserID);
                bool _HasUserAnswered = false;

                foreach (var EachAnswer in _UserAnswers)
                {
                    if (EachAnswer.UserID != 0)
                    {
                        _HasUserAnswered = true;
                        break;
                    }
                }

                return(_HasUserAnswered);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        // POST api/<controller>
        public PhilosophyUserAnswer Post([FromBody] AddPhilosophyUserAnswer ac)
        {
            int UserID = Convert.ToInt32(HttpContext.Current.User.Identity.Name);
            PhilosophyUserAnswer m_PhilosophyUserAnswer = new PhilosophyUserAnswer();

            switch (ac.PhilosophyType)
            {
            case "1":
            {
                AnswerTypeSingle m_AnswerTypeSingle = new AnswerTypeSingle
                {
                    _id = ac.UserOption
                };


                m_PhilosophyUserAnswer = new PhilosophyUserAnswer().UpdatePhilosophyUserAnswer(ac.Philosophy_id, UserID, m_AnswerTypeSingle);
                break;
            }

            case "2":
            {
                AnswerTypeMultiple m_AnswerTypeMultiple = new AnswerTypeMultiple();
                m_AnswerTypeMultiple._ids = ac.UserOptions;


                m_PhilosophyUserAnswer = new PhilosophyUserAnswer().UpdatePhilosophyUserAnswer(ac.Philosophy_id, UserID, m_AnswerTypeMultiple);
                break;
            }

            case "5":
            {
                AnswerTypeSingle m_AnswerTypeSingle = new AnswerTypeSingle
                {
                    _id = ac.UserOption
                };


                m_PhilosophyUserAnswer = new PhilosophyUserAnswer().UpdatePhilosophyUserAnswer(ac.Philosophy_id, UserID, m_AnswerTypeSingle);
                break;
            }

            case "7":
            {
                AnswerTypeDate m_AnswerTypeDate = new AnswerTypeDate
                {
                    Day   = ac.UserOption_Day,
                    Month = ac.UserOption_Month,
                    Year  = ac.UserOption_Year
                };


                m_PhilosophyUserAnswer = new PhilosophyUserAnswer().UpdatePhilosophyUserAnswer(ac.Philosophy_id, UserID, m_AnswerTypeDate);

                // Reset DOB
                DateTime _DateOfBirth = new DateTime(Convert.ToInt32(m_AnswerTypeDate.Year), Convert.ToInt32(m_AnswerTypeDate.Month), Convert.ToInt32(m_AnswerTypeDate.Day));
                new IntellidateR1.User().ChangeUserDateOfBirth(UserID, _DateOfBirth);
                break;
            }

            case "8":
            {
                AnswerTypeText m_AnswerTypeText = new AnswerTypeText
                {
                    Value = ac.UserOption
                };


                m_PhilosophyUserAnswer = new PhilosophyUserAnswer().UpdatePhilosophyUserAnswer(ac.Philosophy_id, UserID, m_AnswerTypeText);
                break;
            }
            }



            switch (ac.PhilosophyPreferenceType)
            {
            case "1":
            {
                AnswerTypeMultiple m_AnswerTypeMultiple = new AnswerTypeMultiple();
                m_AnswerTypeMultiple._ids = ac.Preferences;

                m_PhilosophyUserAnswer = new PhilosophyUserAnswer().UpdatePhilosophyUserPreference(ac.Philosophy_id, UserID, m_AnswerTypeMultiple, ac.HasAllPreferencesSelected);
                break;
            }

            case "3":
            {
                AnswerTypeRange m_AnserTypeRange = new AnswerTypeRange
                {
                    Min = ac.PreferenceRangeMin,
                    Max = ac.PreferenceRangeMax
                };

                m_PhilosophyUserAnswer = new PhilosophyUserAnswer().UpdatePhilosophyUserPreference(ac.Philosophy_id, UserID, m_AnserTypeRange, ac.HasAllPreferencesSelected);
                break;
            }

            case "4":
            {
                AnswerTypeRange m_AnserTypeRange = new AnswerTypeRange
                {
                    Min = ac.PreferenceRangeMin,
                    Max = ac.PreferenceRangeMax
                };

                m_PhilosophyUserAnswer = new PhilosophyUserAnswer().UpdatePhilosophyUserPreference(ac.Philosophy_id, UserID, m_AnserTypeRange, ac.HasAllPreferencesSelected);
                break;
            }
            }

            m_PhilosophyUserAnswer = new PhilosophyUserAnswer().UpdatePhilosophyUserComment(UserID, ac.Philosophy_id, ac.Comment);
            return(m_PhilosophyUserAnswer);
        }