/// <summary> /// /// </summary> /// <param name="idfsEditor"></param> /// <returns></returns> public static FFParameterEditors ConvertToParameterControlType(long?idfsEditor) { FFParameterEditors result = FFParameterEditors.TextBox; switch (idfsEditor) { case 10067008 /*"editText"*/: result = FFParameterEditors.TextBox; break; case 10067002 /*"editCombo"*/: result = FFParameterEditors.ComboBox; break; case 10067001 /*"editCheck"*/: result = FFParameterEditors.CheckBox; break; case 10067003 /*"editDate"*/: result = FFParameterEditors.Date; break; case 10067004 /*"editDateTime"*/: result = FFParameterEditors.DateTime; break; case 10067006 /*"editMemo"*/: result = FFParameterEditors.Memo; break; case 10067009 /*"editUpDown"*/: result = FFParameterEditors.UpDown; break; } return(result); }
public static object ConvertToRealDataType(this FFParameterTypes parameterType, FFParameterEditors parameterEditor, object value) { //инициализационное значение присваивается новому параметру, чтобы его можно было редактировать var isInitValue = value == DBNull.Value; if (!isInitValue && (value == null || String.IsNullOrWhiteSpace(value.ToString()))) { return(value); } object realvalue; switch (parameterType) { case FFParameterTypes.Boolean: if (isInitValue) { return(false); } //в вебе из чекбокса приходит "true,false" или "false" var str = value.ToString().Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (str.Length > 0) { switch (str[0]) { case "1": str[0] = "true"; break; case "0": str[0] = "false"; break; } realvalue = (str.Length > 0) && Convert.ToBoolean(str[0]); } else { realvalue = false; } break; case FFParameterTypes.Numeric: case FFParameterTypes.NumericPositive: if (isInitValue) { return(0); } double d; realvalue = Double.TryParse(value.ToString(), out d) ? d : 0; break; case FFParameterTypes.NumericNatural: case FFParameterTypes.NumericInteger: if (isInitValue) { return(0); } int i; realvalue = Int32.TryParse(value.ToString(), out i) ? i : 0; break; case FFParameterTypes.String: if (parameterEditor.Equals(FFParameterEditors.ComboBox)) { if (isInitValue) { return(0); } long l; return(Int64.TryParse(value.ToString(), out l) ? l : 0); } if (isInitValue) { return(String.Empty); } realvalue = value.ToString(); break; case FFParameterTypes.Date: case FFParameterTypes.DateTime: if (isInitValue) { return(DateTime.MinValue); } DateTime dt; realvalue = DateTime.TryParse(value.ToString(), out dt) ? dt : (DateTime.TryParseExact(value.ToString(), "yyyy-MM-dd", null, System.Globalization.DateTimeStyles.None, out dt) ? dt : DateTime.MinValue); break; default: return(isInitValue ? String.Empty : value.ToString()); } return(realvalue); }
public static int ConvertToInt(FFParameterEditors pc) { return(Convert.ToInt32(pc)); }