示例#1
0
        private static string GetDefaultValueString(string defaultValueString, CloudVariableType type)
        {
            switch (type)
            {
            case CloudVariableType.Int:
            case CloudVariableType.CurrencyInt:
            case CloudVariableType.Double:
            case CloudVariableType.UInt:
            case CloudVariableType.Long:
            case CloudVariableType.DateTime:
                return(defaultValueString);

            case CloudVariableType.Float:
            case CloudVariableType.CurrencyFloat:
                return(defaultValueString + "f");

            case CloudVariableType.Decimal:
                return(defaultValueString + "m");

            case CloudVariableType.Bool:
                return(FirstLetterToLowerCase(defaultValueString));

            case CloudVariableType.String:
                return("\"" + defaultValueString + "\"");

            default:
                throw new ArgumentOutOfRangeException("type", type, null);
            }
        }
示例#2
0
        private static string GetClassNameString(CloudVariableType type)
        {
            switch (type)
            {
            case CloudVariableType.Int:
                return("CloudInt");

            case CloudVariableType.CurrencyInt:
                return("CloudCurrencyInt");

            case CloudVariableType.Float:
                return("CloudFloat");

            case CloudVariableType.CurrencyFloat:
                return("CloudCurrencyFloat");

            case CloudVariableType.Bool:
                return("CloudBool");

            case CloudVariableType.String:
                return("CloudString");

            case CloudVariableType.Double:
                return("CloudDouble");

            case CloudVariableType.UInt:
                return("CloudUInt");

            case CloudVariableType.Long:
                return("CloudLong");

            case CloudVariableType.DateTime:
                return("CloudDateTime");

            case CloudVariableType.Decimal:
                return("CloudDecimal");

            default:
                throw new ArgumentOutOfRangeException("type", type, null);
            }
        }
示例#3
0
        private static string GetSimpleVariableTypeString(CloudVariableType type)
        {
            switch (type)
            {
            case CloudVariableType.Int:
            case CloudVariableType.CurrencyInt:
                return("int");

            case CloudVariableType.Float:
            case CloudVariableType.CurrencyFloat:
                return("float");

            case CloudVariableType.Bool:
                return("bool");

            case CloudVariableType.String:
                return("string");

            case CloudVariableType.Double:
                return("double");

            case CloudVariableType.UInt:
                return("uint");

            case CloudVariableType.Long:
                return("long");

            case CloudVariableType.DateTime:
                return("System.DateTime");

            case CloudVariableType.Decimal:
                return("decimal");

            default:
                throw new ArgumentOutOfRangeException("type", type, null);
            }
        }
示例#4
0
        /// <summary>
        /// Removes forbidden characters from a cloud variables default value.
        /// </summary>
        /// <param name="text">The <see cref="string"/> that may contain forbidden characters.</param>
        /// <param name="type">Cloud variable type.</param>
        /// <returns>A <see cref="string"/> free from forbidden characters.</returns>
        public static string RemoveForbiddenCharactersFromDefaultValue(string text, CloudVariableType type)
        {
            var returnString = text;

            switch (type)
            {
            case CloudVariableType.Int:
            case CloudVariableType.CurrencyInt:
            case CloudVariableType.Long:
            case CloudVariableType.DateTime:
                if (string.IsNullOrEmpty(returnString))
                {
                    return("0");
                }

                var isNegativeInt = returnString.StartsWith("-");
                returnString = Regex.Replace(returnString, @"[^0-9]", string.Empty);
                returnString = isNegativeInt ? "-" + returnString : returnString;
                try
                {
                    // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                    int.Parse(returnString);
                }
                catch (Exception ex)
                {
                    if (ex is OverflowException)
                    {
                        returnString = isNegativeInt ? int.MinValue.ToString() : int.MaxValue.ToString();
                    }
                }

                break;

            case CloudVariableType.Float:
            case CloudVariableType.CurrencyFloat:
            case CloudVariableType.Double:
            case CloudVariableType.Decimal:
                if (string.IsNullOrEmpty(returnString))
                {
                    returnString = "0";
                }
                else
                {
                    returnString = Regex.Replace(returnString, ",", ".");
                    returnString = Regex.Replace(returnString, @"[^0-9E+-.]", string.Empty);
                    if (string.IsNullOrEmpty(returnString))
                    {
                        returnString = "0";
                    }
                }

                break;

            case CloudVariableType.Bool:
                bool result;
                var  parsable = bool.TryParse(returnString, out result);
                returnString = parsable ? result.ToString() : false.ToString();
                break;

            case CloudVariableType.String:
                break;

            case CloudVariableType.UInt:
                if (string.IsNullOrEmpty(returnString))
                {
                    return("0");
                }

                returnString = Regex.Replace(returnString, @"[^0-9]", string.Empty);
                try
                {
                    // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                    uint.Parse(returnString);
                }
                catch (Exception ex)
                {
                    if (ex is OverflowException)
                    {
                        returnString = uint.MaxValue.ToString();
                    }
                    else
                    {
                        returnString = "0";
                    }
                }

                break;

            default:
                throw new ArgumentOutOfRangeException("type", type, null);
            }

            return(returnString);
        }
示例#5
0
        /// <summary>
        /// Checks if default value is valid according to type.
        /// </summary>
        /// <param name="text">The <see cref="string"/> that needs to be validated.</param>
        /// <param name="type">Cloud variable type.</param>
        /// <returns>Return <c>true</c> if default value is valid.</returns>
        private static bool ValidateDefaultValue(string text, CloudVariableType type)
        {
            switch (type)
            {
            case CloudVariableType.Int:
            case CloudVariableType.CurrencyInt:
                try
                {
                    // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                    int.Parse(text);
                }
                catch (Exception)
                {
                    EditorGUILayout.HelpBox("Invalid default value detected in Int cloud variable.", MessageType.Warning);
                    return(false);
                }

                return(true);

            case CloudVariableType.Long:
            case CloudVariableType.DateTime:
                try
                {
                    // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                    long.Parse(text);
                }
                catch (Exception)
                {
                    EditorGUILayout.HelpBox("Invalid default value detected in Long cloud variable.", MessageType.Warning);
                    return(false);
                }

                return(true);

            case CloudVariableType.Bool:
            case CloudVariableType.String:
            case CloudVariableType.UInt:
                return(true);

            case CloudVariableType.Float:
            case CloudVariableType.CurrencyFloat:
                try
                {
                    // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                    float.Parse(text);
                }
                catch (Exception)
                {
                    EditorGUILayout.HelpBox("Invalid default value detected in Float cloud variable.", MessageType.Warning);
                    return(false);
                }

                return(true);

            case CloudVariableType.Double:
                try
                {
                    // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                    double.Parse(text);
                }
                catch (Exception)
                {
                    EditorGUILayout.HelpBox("Invalid default value detected in Double cloud variable.", MessageType.Warning);
                    return(false);
                }

                return(true);

            case CloudVariableType.Decimal:
                try
                {
                    // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
                    decimal.Parse(text);
                }
                catch (Exception)
                {
                    EditorGUILayout.HelpBox("Invalid default value detected in Decimal cloud variable.", MessageType.Warning);
                    return(false);
                }

                return(true);

            default:
                throw new ArgumentOutOfRangeException("type", type, null);
            }
        }