/// <summary>
        /// Creates String Edit Field
        /// </summary>
        /// <param name="fieldAttributes">
        /// Field Configuration Attributes
        /// </param>
        /// <returns>
        /// Text <see cref="UPMEditField"/>.
        /// </returns>
        private UPMStringEditField CreateStringEditField(FieldAttributes fieldAttributes)
        {
            var textEditField = new UPMStringEditField(FieldIdentifier);

            if (fieldAttributes.Email)
            {
                textEditField.Type = StringEditFieldType.Email;
            }
            else if (fieldAttributes.Httplink)
            {
                textEditField.Type = StringEditFieldType.Url;
            }
            else if (fieldAttributes.Phone)
            {
                textEditField.Type = StringEditFieldType.Phone;
            }
            else
            {
                textEditField.Type = StringEditFieldType.Plain;
            }

            var fieldLength = FieldConfig.Field.FieldInfo.FieldLength;

            textEditField.MaxLength = fieldLength > 0 ? fieldLength : 0;
            return(textEditField);
        }
        private static void CreateEditFields(UPCRMFieldInfo fieldInfo, bool rangFilter, string type, out UPMEditField editField, out UPMEditField secondEditField)
        {
            editField       = null;
            secondEditField = null;
            switch (type)
            {
            case "F" when fieldInfo.PercentField:
                editField = new UPMPercentEditField(StringIdentifier.IdentifierWithStringId("percentParam"));
                if (rangFilter)
                {
                    secondEditField = new UPMPercentEditField(StringIdentifier.IdentifierWithStringId("percentParam2"));
                }

                break;

            case "F":
                editField = new UPMFloatEditField(StringIdentifier.IdentifierWithStringId("floatParam"));
                if (rangFilter)
                {
                    secondEditField = new UPMFloatEditField(StringIdentifier.IdentifierWithStringId("floatParam2"));
                }

                break;

            case "C":
                editField = new UPMStringEditField(StringIdentifier.IdentifierWithStringId("stringParam"));
                if (rangFilter)
                {
                    secondEditField = new UPMStringEditField(StringIdentifier.IdentifierWithStringId("stringParam2"));
                }

                break;

            case "B":
                editField = new UPMBooleanEditField(StringIdentifier.IdentifierWithStringId("booleanParam"));
                break;

            default:
                editField = new UPMIntegerEditField(StringIdentifier.IdentifierWithStringId("intParam"));
                if (rangFilter)
                {
                    secondEditField = new UPMIntegerEditField(StringIdentifier.IdentifierWithStringId("intParam2"));
                }

                break;
            }
        }