예제 #1
0
        // ----------------------------------------------------------------------------------------
        /// <!-- Value -->
        /// <summary>
        ///      A more powerful version like SelectedValue.ToString()
        /// </summary>
        /// <param name="form">allows no-op if the control is not on the form</param>
        /// <param name="control"></param>
        /// <param name="textOK">is it OK to use thetext value of the Dropdown if the SelectedValue isn't found?</param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static string Value(Form form, Control control, bool textOK, string defaultValue)
        {
            string str = defaultValue;

            if (Active(form, control))
            {
                str = "XXYYZZ";
                Type type = control.GetType();
                switch (type.Name.ToString())
                {
                case "ComboBox":
                    ComboBox drop = (ComboBox)control;
                    str = TreatAs.StrValue(drop.SelectedValue, "XXYYZZ");
                    if (textOK)     // is it OK to use thetext value of the Dropdown if the SelectedValue isn't found?
                    {
                        if (str == "XXYYZZ")
                        {
                            str = WithoutSqlInjection(drop.SelectedText);
                        }
                        if (str == "")
                        {
                            str = WithoutSqlInjection(drop.Text);
                        }
                    }
                    if (str == "XXYYZZ")
                    {
                        str = defaultValue;
                    }
                    break;

                default: str = WithoutSqlInjection(control.Text); break;
                }
            }
            return(str);
        }
예제 #2
0
        // ----------------------------------------------------------------------------------------
        //  Overrides
        // ----------------------------------------------------------------------------------------
        public override string ToString()
        {
            string canOrCant = "";

            if (IsTrue == null)
            {
                canOrCant = "";
            }
            else if (IsTrue.Value)
            {
                canOrCant = "Has ";
            }
            else if (!IsTrue.Value)
            {
                canOrCant = "No ";
            }


            string action = TreatAs.StrValue(Operation, "");


            string determiner = "";

            if (string.IsNullOrWhiteSpace(TargetLabel) && (TargetId == null || TargetId < 0))
            {
                determiner = " All";
            }
            else
            {
                determiner = "";
            }


            string typeOf = "";

            if (string.IsNullOrWhiteSpace(TargetLabel) && (TargetId == null || TargetId < 0))
            {
                typeOf = " " + TreatAs.StrValue(TargetType);
            }
            else
            {
                typeOf = " " + TreatAs.StrValue(TargetType) + " " + "'" + TreatAs.StrValue(TargetLabel, TreatAs.StrValue(TargetId, "NULL")) + "'";
            }


            string noun = "";

            if (string.IsNullOrWhiteSpace(TargetLabel) && (TargetId == null || TargetId < 0))
            {
                noun = " " + __.Pluralize(TreatAs.StrValue(Perview, "?"));
            }
            else
            {
                noun = " " + TreatAs.StrValue(Perview, "?");
            }


            return(canOrCant + action + determiner + typeOf + noun);
        }
예제 #3
0
        // ----------------------------------------------------------------------------------------
        /// <!-- _StoreValue -->
        /// <summary>
        ///
        /// </summary>
        /// <param name="xpath"></param>
        /// <param name="namespacePrefix"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public XmlNode _StoreValue(PathSlicer xpath, string namespacePrefix, object value)
        {
            string  strValue = TreatAs.StrValue(value, "");
            XmlNode node     = _GetNode(namespacePrefix, xpath.Path);

            if (node == null)
            {
                node = _CreateNodes(xpath, strValue);
            }
            else
            {
                node.InnerText = strValue;
            }
            return(node);
        }
예제 #4
0
        // ----------------------------------------------------------------------------------------
        /// <!-- StrValue -->
        /// <summary>
        ///      Grabs the string value of a private member, regardless of its type
        /// </summary>
        /// <param name="inObject">the object containing the member</param>
        /// <param name="memberName">the name of the member</param>
        /// <returns></returns>
        public static string StrValue(object inObject, string memberName)
        {
            FieldInfo member = inObject.GetType().GetField(memberName
                                                           , BindingFlags.Public
                                                           | BindingFlags.Instance
                                                           | BindingFlags.NonPublic
                                                           | BindingFlags.Static);

            if (member == null)
            {
                return("");
            }
            else
            {
                return(TreatAs.StrValue(member.GetValue(inObject), ""));
            }
        }
예제 #5
0
        // ----------------------------------------------------------------------------------------
        /// <!-- EndemeValue_test -->
        /// <summary>
        ///
        /// </summary>
        private void EndemeValueAddStrValue_test()
        {
            Assert.ThingsAbout("EndemeList", "Add");


            EndemeReference enRef = new EndemeReference();

            enRef.Add(new EndemeSet("Identity"));
            enRef["Identity"].Add('A', "Alias", "");
            enRef["Identity"].Add('B', "Birthday", "");
            enRef["Identity"].Add('C', "Card number", "");
            enRef["Identity"].Add('D', "DL number", "driver's license");
            enRef["Identity"].Add('E', "Email", "");
            enRef["Identity"].Add('F', "First name", "");
            enRef["Identity"].Add('G', "Gender", "");
            enRef["Identity"].Add('H', "Honorific", "prefix (Mr, Dr...)");
            enRef["Identity"].Add('I', "Id", "");
            enRef["Identity"].Add('J', "Judicial number", "");
            enRef["Identity"].Add('K', "King", "father's X");
            enRef["Identity"].Add('L', "Last name", "");
            enRef["Identity"].Add('M', "Middle name", "");
            enRef["Identity"].Add('N', "Nick name", "");
            enRef["Identity"].Add('O', "Oceanic number", "");
            enRef["Identity"].Add('P', "Postfix", "suffix");
            enRef["Identity"].Add('Q', "Queen", "mother's X");
            enRef["Identity"].Add('R', "Race", "");
            enRef["Identity"].Add('S', "Social number", "");
            enRef["Identity"].Add('T', "Tag, userid", "");
            enRef["Identity"].Add('U', "Unmarried name", "maiden name");
            enRef["Identity"].Add('V', "Visa number", "passport number");

            enRef.Add(new EndemeSet("Demographic"));
            enRef["Demographic"].Add('A', "Age", "Stage of life");
            enRef["Demographic"].Add('B', "Body Shape", "Robustness/Weight/Physique/Girth");
            enRef["Demographic"].Add('C', "Country", "Continent/Region");
            enRef["Demographic"].Add('D', "Damage", "Natural Damage");
            enRef["Demographic"].Add('E', "Experience", "");
            enRef["Demographic"].Add('F', "Flying", "Air Speed");
            enRef["Demographic"].Add('G', "Gender", "Sex");
            enRef["Demographic"].Add('H', "Hit Points", "");
            enRef["Demographic"].Add('I', "Insanity", "madness/Sanity");
            enRef["Demographic"].Add('J', "Jesus", "Gift/Grace/Faith/Religion");
            enRef["Demographic"].Add('K', "Kingdom", "Ethnicity/Nation/State/People");
            enRef["Demographic"].Add('L', "Level", "");
            enRef["Demographic"].Add('M', "Movement", "Speed/Ground/Land");
            enRef["Demographic"].Add('N', "Nature", "Personality/Temperment");
            enRef["Demographic"].Add('O', "Organization", "School/Business/Guild");
            enRef["Demographic"].Add('P', "Position", "Social Status/class");
            enRef["Demographic"].Add('Q', "Quester", "Player");
            enRef["Demographic"].Add('R', "Race", "Species");
            enRef["Demographic"].Add('S', "Swimming", "Sailing");
            enRef["Demographic"].Add('T', "Tallness", "Height/Size/Length");
            enRef["Demographic"].Add('U', "Underwater move", "");
            enRef["Demographic"].Add('V', "", "");

            EndemeList field = new EndemeList("test", enRef, 0.73);

            field.Add("HeroName", "Identity", "A", "");
            field.Add("Species", "Demographic", "R", "");
            field.Add("Gender", "Demographic", "G", "");

            field.Add("First Name", "Identity", "F", "");
            field.Add("Last Name", "Identity", "L", "");
            field.Add("Full Name", "Identity", "LF", "");

            //field.SetFieldExactly("Identity:F" , "Jon"       ); // field.SetField(field.EnRef[EndemeField.Part(0,"Identity:F" )], EndemeField.Part(1,"Identity:F" ), "Jon"       ); // field["Identity:F"]  = "Jon"       ;
            //field.SetFieldExactly("Identity:L" , "Grover"    ); // field.SetField(field.EnRef[EndemeField.Part(0,"Identity:L" )], EndemeField.Part(1,"Identity:L" ), "Grover"    ); // field["Identity:L"]  = "Grover"    ;
            //field.SetFieldExactly("Identity:LF", "Jon Grover"); // field.SetField(field.EnRef[EndemeField.Part(0,"Identity:LF")], EndemeField.Part(1,"Identity:LF"), "Jon Grover"); // field["Identity:LF"] = "Jon Grover";

            EndemeValue elFirst = field.GetField("Identity:F").Item;  // field["Identity:F" ];
            EndemeValue elLast  = field.GetField("Identity:L").Item;  // field["Identity:L" ];
            EndemeValue elFull  = field.GetField("Identity:LF").Item; // field["Identity:LF"];
            string      first   = TreatAs.StrValue(field.GetField("Identity:F"), "");
            string      last    = TreatAs.StrValue(field.GetField("Identity:L"), "");
            string      full    = TreatAs.StrValue(field.GetField("Identity:LF"), "");

            //string first = field.StrValue("Identity:F" , "");
            //string last  = field.StrValue("Identity:L" , "");
            //string full  = field.StrValue("Identity:LF", "");

            Assert.That(first, Is.equal_to, "Jon");
            Assert.That(last, Is.equal_to, "Grover");
            Assert.That(full, Is.equal_to, "Jon Grover");

            _result += Assert.Conclusion;
        }
예제 #6
0
        // ----------------------------------------------------------------------------------------
        /// <!-- Value -->
        /// <summary>
        ///      Given a combo box and a value select the item in the drop list that matches if any
        /// </summary>
        /// <remarks>
        ///      This gets complicated because SelectedValue can not be set or retrieved until after
        ///      the ComboBox is displayed to the user
        /// </remarks>
        /// <param name="form">allows no-op if the control is not on the form</param>
        /// <param name="drop"></param>
        /// <param name="value"></param>
        public static void Value(Form form, ref ComboBox drop, object value)
        {
            if (Scrape.Active(form, drop))
            {
                if (Is.Null(value))
                {
                    drop.Text = "";
                }
                else
                {
                    string str = TreatAs.StrValue(value, "");


                    int oldIndex = drop.SelectedIndex;
                    drop.SelectedIndex = -1;
                    string oldText = drop.Text;
                    drop.Text = "";


                    // ---------------------------------------------------------------------90
                    //  Try to select by value (this should work under optimal conditions)
                    // ---------------------------------------------------------------------90
                    try { drop.SelectedValue = value; }
                    catch { }
                    if (drop.SelectedValue == null || drop.SelectedValue.ToString() == "")
                    {
                        try { drop.SelectedValue = (object)str; }
                        catch { }
                    }
                    if (drop.SelectedValue == null || drop.SelectedValue.ToString() == "")
                    {
                        try { drop.SelectedValue = TreatAs.IntValue(value, -1); }
                        catch { }
                    }


                    // ---------------------------------------------------------------------90
                    //  Try to select item by value, by item and by a sequential search
                    // ---------------------------------------------------------------------90
                    if (drop.SelectedIndex < 0)
                    {
                        SetByIndex(form, drop, drop.Items.IndexOf(value));
                    }
                    if (drop.SelectedIndex < 0)
                    {
                        try { drop.SelectedItem = value; }
                        catch { }
                    }
                    if (drop.SelectedIndex < 0)
                    {
                        try { drop.SelectedItem = (object)str; }
                        catch { }
                    }
                    if (drop.SelectedIndex < 0)
                    {
                        SetByIndex(form, drop, Scrape.FindIndexOf(form, drop, value));
                    }


                    // ---------------------------------------------------------------------90
                    //  Give up and just set the text to the value
                    // ---------------------------------------------------------------------90
                    if (drop.SelectedIndex < 0)
                    {
                        SetByIndex(form, drop, drop.FindStringExact(str));
                    }
                    if (drop.SelectedIndex < 0 && str.Length > 6)
                    {
                        SetByIndex(form, drop, drop.FindString(str));
                    }
                    if (drop.SelectedIndex < 0)
                    {
                        if (drop.SelectedText == null || drop.SelectedText == "")
                        {
                            try { drop.SelectedText = str; }
                            catch { }
                        }
                        if (drop.Text == null || drop.Text == "")
                        {
                            drop.Text = str;
                        }
                    }
                }
            }
        }
예제 #7
0
        private static void TreatAs_StrValue_testcase(object obj, string defaultValue, string target)
        {
            string value = TreatAs.StrValue(obj, defaultValue);

            Assert.That(value, Is.equal_to, target);
        }