FlatRedBall.Glue.ElementRuntime.ConvertIfOverriding C# (CSharp) Method

ConvertIfOverriding() public static method

public static ConvertIfOverriding ( CustomVariable cv, object valueToSetTo ) : object
cv FlatRedBall.Glue.SaveClasses.CustomVariable
valueToSetTo object
return object
        public static object ConvertIfOverriding(CustomVariable cv, object valueToSetTo)
        {

            if (!string.IsNullOrEmpty(cv.OverridingPropertyType))
            {
                switch (cv.Type)
                {
                    case "string":
                        switch (cv.OverridingPropertyType)
                        {
                            case "int":
                            case "long":
                                {
                                    // In .NET 4 we can do this:
                                    //return valueToSetTo.ToString("n0");
                                    // but for .NET 3 we gotta:
                                    string s = valueToSetTo.ToString();
                                    int asInt = 0;


                                    
                                    asInt = (int)System.Convert.ChangeType(valueToSetTo, typeof(int)) ;

                                    if (cv.TypeConverter == "Comma Separating")
                                    {
                                        for (int p = s.Length - 3; p > 0; p -= 3)
                                        {
                                            s = s.Insert(p, System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator);
                                        }
                                    }
                                    else if (cv.TypeConverter == "Minutes:Seconds")
                                    {
                                        s = string.Format("{0}:{1}", (asInt / 60).ToString("D1"), (asInt % 60).ToString("D2"));
                                    }

                                    return s;
                                    //break;
                                }
                            case "float":
                                {
                                    string s = valueToSetTo.ToString();
                                    float asFloat = (float)valueToSetTo;

                                    if (cv.TypeConverter == "Comma Separating")
                                    {
                                        s = string.Format("{0:n}", asFloat);
                                        //s = asFloat.ToString("n0");
                                    }

                                    else if (cv.TypeConverter == "Minutes:Seconds.Hundredths")
                                    {


                                        s = string.Format(
                                            "{0}:{1}{2}",
                                            ((int)asFloat / 60).ToString("D1"),
                                            ((int)asFloat % 60).ToString("D2"),
                                            ((float)asFloat - (int)asFloat).ToString(".00"));
                                    }
                                    return s;
                                }


                                
                        }

                        break;

                }
                return valueToSetTo;
            }
            else
            {
                return valueToSetTo;
            }
        }