Ejemplo n.º 1
0
        public ElementField(Element element, string name, ElementFieldDataType fieldType, byte sortOrder, bool? useFixedValue = null) : this()
        {
            Validations.ArgumentNullOrDefault(element, "element");
            Validations.ArgumentNullOrDefault(name, "name");
            Validations.ArgumentNullOrDefault(sortOrder, "sortOrder");

            // fixedValue fix + validations
            if (fieldType == ElementFieldDataType.Multiplier)
                useFixedValue = false;

            if ((fieldType == ElementFieldDataType.String
                || fieldType == ElementFieldDataType.Element)
                && useFixedValue.HasValue)
                throw new ArgumentException(string.Format("fixedValue cannot have a value for {0} type", fieldType), "fixedValue");

            if ((fieldType != ElementFieldDataType.String
                && fieldType != ElementFieldDataType.Element)
                && !useFixedValue.HasValue)
                throw new ArgumentException(string.Format("fixedValue must have a value for {0} type", fieldType), "fixedValue");

            if (fieldType == ElementFieldDataType.Multiplier
                && useFixedValue.Value)
                throw new ArgumentException("fixedValue cannot be true for Multiplier type", "fixedValue");

            Element = element;
            Name = name;
            DataType = (byte)fieldType;
            UseFixedValue = useFixedValue;
            SortOrder = sortOrder;
        }
Ejemplo n.º 2
0
        void SetValueHelper(ElementFieldDataType valueType, User user)
        {
            // Validations

            // a. Field and value type
            var fieldType = (ElementFieldDataType)ElementField.DataType;

            // 1. Field's type & this operation's type has to match
            // 2. And if field type is DirectIncome or Multiplier, value type has to be Decimal
            if (fieldType != valueType &&
                !(fieldType == ElementFieldDataType.DirectIncome ||
                  fieldType == ElementFieldDataType.Multiplier &&
                  valueType == ElementFieldDataType.Decimal))
            {
                throw new InvalidOperationException(string.Format("Invalid value, field and value types don't match - Field type: {0}, Value type: {1}",
                                                                  fieldType,
                                                                  valueType));
            }

            // b. FixedValue
            //FixedValueValidation(user);

            // Clear, if FixedValue
            var fixedValue = ElementField.UseFixedValue.GetValueOrDefault(true);

            if (fixedValue)
            {
                ClearFixedValues();
            }
        }
Ejemplo n.º 3
0
        public ElementField AddField(string name, ElementFieldDataType fieldType, bool useFixedValue = true)
        {
            // TODO Validation - Same name?
            var sortOrder = Convert.ToByte(ElementFieldSet.Count + 1);
            var field     = new ElementField(this, name, fieldType, sortOrder, useFixedValue);

            ElementFieldSet.Add(field);
            return(field);
        }
Ejemplo n.º 4
0
        public ElementField AddField(string name, ElementFieldDataType fieldType, bool? useFixedValue = null)
        {
            var sortOrder = Convert.ToByte(ElementFieldSet.Count + 1);
            var field = new ElementField(this, name, fieldType, sortOrder, useFixedValue);

            //return AddField(field);
            //}

            //ElementField AddField(ElementField field)
            //{
            // TODO Validation - Same name?

            ElementFieldSet.Add(field);

            return field;
        }
Ejemplo n.º 5
0
        public ElementField AddField(string name, ElementFieldDataType fieldType, bool?useFixedValue = null)
        {
            var sortOrder = Convert.ToByte(ElementFieldSet.Count + 1);
            var field     = new ElementField(this, name, fieldType, sortOrder, useFixedValue);

            //return AddField(field);
            //}

            //ElementField AddField(ElementField field)
            //{
            // TODO Validation - Same name?

            ElementFieldSet.Add(field);

            return(field);
        }
Ejemplo n.º 6
0
        public ElementField(Element element, string name, ElementFieldDataType fieldType, byte sortOrder, bool useFixedValue) : this()
        {
            Validations.ArgumentNullOrDefault(element, nameof(element));
            Validations.ArgumentNullOrDefault(name, nameof(name));
            Validations.ArgumentNullOrDefault(sortOrder, nameof(sortOrder));

            // fixedValue fix: String and Element types can only be useFixedValue = true
            if (fieldType == ElementFieldDataType.String || fieldType == ElementFieldDataType.Element)
            {
                useFixedValue = true;
            }

            Element       = element;
            Name          = name;
            DataType      = (byte)fieldType;
            UseFixedValue = useFixedValue;
            SortOrder     = sortOrder;
        }
Ejemplo n.º 7
0
        private void SetValueHelper(ElementFieldDataType valueType)
        {
            // Validations

            // a. Field and value types have to match
            var fieldType = (ElementFieldDataType)ElementField.DataType;

            if (fieldType != valueType)
            {
                throw new InvalidOperationException(
                          $"Invalid value, field and value types don't match - Field type: {fieldType}, Value type: {valueType}");
            }

            // Clear, if FixedValue
            if (ElementField.UseFixedValue)
            {
                ClearFixedValues();
            }
        }
Ejemplo n.º 8
0
        public ElementField(Element element, string name, ElementFieldDataType fieldType, byte sortOrder, bool?useFixedValue = null) : this()
        {
            Validations.ArgumentNullOrDefault(element, "element");
            Validations.ArgumentNullOrDefault(name, "name");
            Validations.ArgumentNullOrDefault(sortOrder, "sortOrder");

            // fixedValue fix + validations
            if (fieldType == ElementFieldDataType.Multiplier)
            {
                useFixedValue = false;
            }

            if ((fieldType == ElementFieldDataType.String ||
                 fieldType == ElementFieldDataType.Element) &&
                useFixedValue.HasValue)
            {
                throw new ArgumentException(string.Format("fixedValue cannot have a value for {0} type", fieldType), "fixedValue");
            }

            if ((fieldType != ElementFieldDataType.String &&
                 fieldType != ElementFieldDataType.Element) &&
                !useFixedValue.HasValue)
            {
                throw new ArgumentException(string.Format("fixedValue must have a value for {0} type", fieldType), "fixedValue");
            }

            if (fieldType == ElementFieldDataType.Multiplier &&
                useFixedValue.Value)
            {
                throw new ArgumentException("fixedValue cannot be true for Multiplier type", "fixedValue");
            }

            Element       = element;
            Name          = name;
            DataType      = (byte)fieldType;
            UseFixedValue = useFixedValue;
            SortOrder     = sortOrder;
        }
Ejemplo n.º 9
0
        void SetValueHelper(ElementFieldDataType valueType, User user)
        {
            // Validations

            // a. Field and value type
            var fieldType = (ElementFieldDataType)ElementField.DataType;

            // 1. Field's type & this operation's type has to match
            // 2. And if field type is DirectIncome or Multiplier, value type has to be Decimal
            if (fieldType != valueType
                && !(fieldType == ElementFieldDataType.DirectIncome
                || fieldType == ElementFieldDataType.Multiplier
                    && valueType == ElementFieldDataType.Decimal))
                throw new InvalidOperationException(string.Format("Invalid value, field and value types don't match - Field type: {0}, Value type: {1}",
                    fieldType,
                    valueType));

            // b. FixedValue
            //FixedValueValidation(user);

            // Clear, if FixedValue
            var fixedValue = ElementField.UseFixedValue.GetValueOrDefault(true);
            if (fixedValue)
                ClearFixedValues();
        }