public ParameterData(SgFunctions.SgFuncArgInfo SgFuncArgInfo, TextView textViewCaption, TextView textViewDesc, Drawable defaultBackground, List <object> itemList) { FuncArgInfo = SgFuncArgInfo; TextViewCaption = textViewCaption; TextViewDesc = textViewDesc; DefaultBackground = defaultBackground; ItemList = itemList; }
private void ValidateParams() { try { if (_layoutArgParams.Visibility == ViewStates.Visible) { foreach (ParameterData parameterData in _parameterList) { foreach (object itemObject in parameterData.ItemList) { if (itemObject is EditText editText) { SgFunctions.SgFuncArgInfo funcArgInfo = parameterData.FuncArgInfo; string paramText = editText.Text ?? string.Empty; bool paramValid = true; if (funcArgInfo != null) { switch (funcArgInfo.TableDataType) { case SgFunctions.TableDataType.Float: { double floatValue = EdiabasNet.StringToFloat(paramText, out bool valid); if (!valid) { paramValid = false; break; } if (funcArgInfo.Min.HasValue && floatValue < funcArgInfo.Min.Value) { paramValid = false; break; } if (funcArgInfo.Max.HasValue && floatValue > funcArgInfo.Max.Value) { paramValid = false; } break; } case SgFunctions.TableDataType.String: { int length = paramText.Length; if (length == 0) { paramValid = false; break; } if (funcArgInfo.Length.HasValue) { if (length != funcArgInfo.Length.Value) { paramValid = false; } } else { if (length > 255) { paramValid = false; } } break; } case SgFunctions.TableDataType.Binary: { byte[] data = EdiabasNet.HexToByteArray(paramText); if (data == null || data.Length == 0) { paramValid = false; break; } if (funcArgInfo.Length.HasValue && data.Length != funcArgInfo.Length.Value) { paramValid = false; } break; } } } if (paramValid) { editText.Background = parameterData.DefaultBackground; } else { editText.SetBackgroundColor(Android.Graphics.Color.Red); } } } } } } catch (Exception) { // ignored } }