public FieldData(Field.IField field) { _field = (CustomFieldsField)field; if (field == null) { throw new Exception("Поле не может быть пустым."); } }
private bool GetValue(string prefix, out string[] valueOut, out Field.IField fieldOut) { valueOut = null; fieldOut = null; var prefixParts = prefix.Split('.'); if (prefixParts.Length == 0) { return(false); } if (prefixParts.Last() == nameof(Items.ItemBase.Fields)) { return(true); } if (prefixParts.Length >= 2 && prefixParts[prefixParts.Length - 2] == nameof(Items.ItemBase.Fields) && prefixParts.Last().StartsWith("fieldValue_")) { int idField = 0; if (!int.TryParse(prefixParts.Last().Replace("fieldValue_", ""), out idField)) { return(false); } var field = (_controllerContext.ModuleBase as Modules.ModuleCore)?.Fields?.GetFieldByID(idField); if (field == null) { return(false); } fieldOut = field; var key = _controllerContext.HttpContext.Request.Form.AllKeys.Where(x => x.Replace("[]", "").EndsWith(prefixParts.Last())).FirstOrDefault(); if (string.IsNullOrEmpty(key)) { return(false); } var value = _controllerContext.HttpContext.Request.Form.GetValues(key); //if (value.Where(x => !string.IsNullOrEmpty(x)).Count() > 0) // Убрал проверку на непустые значения, чтобы можно было использовать значение "Не выбрано". if (value.Count() == 0) { return(false); } valueOut = value; return(true); } else { return(false); } }
public FieldValueProviderResult(Field.IField field, string[] rawValue, CultureInfo culture) : base(rawValue, rawValue?.FirstOrDefault(), culture) { RawFromForm = rawValue; _field = field; }