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); } }
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); } }
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); } }
/// <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); }
/// <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); } }