Esempio n. 1
0
        public async Task Create_Update_Delete_Number_Atttribute()
        {
            /* Create */
            var number = new NumberAttribute
            {
                AvailableLocales = new List <string> {
                    Locales.EnglishUs, Locales.SwedenSwedish
                },
                Code            = "test_2",
                Group           = AkeneoDefaults.AttributeGroup,
                NegativeAllowed = true
            };

            var createResponse = await Client.CreateAsync(number);

            Assert.Equal(createResponse.Code, HttpStatusCode.Created);

            /* Update */
            number.NegativeAllowed = false;
            var updateResponse = await Client.UpdateAsync(number);

            Assert.Equal(updateResponse.Code, HttpStatusCode.NoContent);

            /* Delete */
            var deleteResponse = await Client.DeleteAsync <NumberAttribute>(number.Code);

            Assert.True(deleteResponse.Code == HttpStatusCode.MethodNotAllowed, "API does not support removal of attributes");
        }
        public void PrecisionAttribute_SetsErrorMessage()
        {
            String actual   = new NumberAttribute(5, 2).FormatErrorMessage("Test");
            String expected = Validation.For("Number", "Test", 3, 2);

            Assert.Equal(expected, actual);
        }
        public NumberBinding(NumberAttribute numberAttribute, MemberInfo memberInfo, object target) : base(numberAttribute, memberInfo, target)
        {
            Group = numberAttribute.Group;

            _control = new NumberControl
            {
                Text    = numberAttribute.TooltipText,
                Title   = numberAttribute.TooltipText,
                Minimum = numberAttribute.Min,
                Maximum = numberAttribute.Max,
                Step    = numberAttribute.Step,
                Value   = (float)_propertyInfo.GetValue(Target)
            };

            _control.ValueChanged += () =>
            {
                _propertyInfo.SetValue(Target, _control.Value);
                OnPropertyChanged();
            };
        }
 public NumberAttributeTests()
 {
     attribute = new NumberAttribute(5, 2);
 }
 public static KeyValuePair <string, List <ProductValue> > CreateValue(this NumberAttribute attribute, double data, string locale = null, string scope = null)
 {
     return(attribute.CreateValue((object)data, locale, scope));
 }
Esempio n. 6
0
        /// <summary>
        /// Runs validation on DTO
        /// </summary>
        /// <param name="dto">DTO</param>
        /// <returns>A pair of the success flag, and summary</returns>
        public static KeyValuePair <bool, string> Validate(object dto)
        {
            KeyValuePair <bool, string> result = new KeyValuePair <bool, string>(true, PASSED);

            foreach (var property in dto.GetType().GetProperties())
            {
                //check for required attribute
                RequiredAttribute required = property.GetCustomAttribute <RequiredAttribute>(true);
                if (required != null)
                {
                    //validate required
                    result = ValidateRequired(dto, property);
                    if (!result.Key)
                    {
                        break;
                    }
                }

                if (property.GetValue(dto) == null)
                {
                    //passed required test and is null
                    //meaning object was not required
                    //and wasn't set
                    return(result);
                }

                NumberAttribute number = property.GetCustomAttribute <NumberAttribute>(true);
                if (number != null)
                {
                    result = ValidateIsNumber(dto, property, number);
                    if (!result.Key)
                    {
                        break;
                    }
                }
                LengthAttribute length = property.GetCustomAttribute <LengthAttribute>(true);
                if (length != null)
                {
                    //validate length
                    result = ValidateLength(dto, property, length);
                    if (!result.Key)
                    {
                        break;
                    }
                }


                RangeAttribute range = property.GetCustomAttribute <RangeAttribute>(true);
                if (range != null)
                {
                    //validate range
                    result = ValidateRange(dto, property, range);
                    if (!result.Key)
                    {
                        break;
                    }
                }

                PatternAttribute pattern = property.GetCustomAttribute <PatternAttribute>(true);
                if (pattern != null)
                {
                    //validate pattern
                    result = ValidatePattern(dto, property, pattern);
                    if (!result.Key)
                    {
                        break;
                    }
                }
            }
            return(result);
        }
Esempio n. 7
0
        private static KeyValuePair <bool, string> ValidateIsNumber(object dto, PropertyInfo field, NumberAttribute attrib)
        {
            string value  = field.GetValue(dto).ToString();
            string reason = PASSED;
            bool   passed = double.TryParse(value, out _);

            if (!passed)
            {
                reason = $"Field {field.Name} with value {value} is not a valid numeric format";
            }
            return(new KeyValuePair <bool, string>(passed, reason));
        }