示例#1
0
文件: FieldData.cs 项目: Sellec/OnXap
 public FieldData(Field.IField field)
 {
     _field = (CustomFieldsField)field;
     if (field == null)
     {
         throw new Exception("Поле не может быть пустым.");
     }
 }
示例#2
0
        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);
            }
        }
示例#3
0
 public FieldValueProviderResult(Field.IField field, string[] rawValue, CultureInfo culture) : base(rawValue, rawValue?.FirstOrDefault(), culture)
 {
     RawFromForm = rawValue;
     _field      = field;
 }