private static void UpdateDynamicColumnInstant(RegistrationFormAdminDetailView parent, int eventRegistrationEntityId, SubEntityRecord record, int dynamicColumnInstanceId)
        {
            var dataSize = CommonUtils.GetFieldValue(record.Fields, _maxSize);

            var updateRequest = new UpdateDynamicColumnInstanceRequest
            {
                EntityId = eventRegistrationEntityId,
                Name = CommonUtils.GetFieldValue(record.Fields, _fieldName),
                FormLabel = CommonUtils.GetFieldValue(record.Fields, _fieldLabel),
                DataType = CommonUtils.GetFieldValue(record.Fields, _dataType),
                IsRequired = GetBooleanValue(record, _isRequired),
                IsMultiline = GetBooleanValue(record, _isMultiLine),
                DataSize = string.IsNullOrEmpty(dataSize) ? new int?() : int.Parse(dataSize),
                DropDownValues = CommonUtils.GetFieldValue(record.Fields, _dropdownOptions),
                FormOrder = 1,
                Id = dynamicColumnInstanceId
            };

            updateRequest.SelectSqlText = GetSelectSqlText(updateRequest.Name, updateRequest.DataType, updateRequest.DataSize);

            var response = parent.ProcessRequest<UpdateDynamicColumnInstanceResponse>(updateRequest);
            if (response.Id == 0 && response.Message == StatusMessage.DuplicateData)
            {
                throw new BusinessException("A Dynamic Column already exists with the specified name");
            }
        }
        private void Save()
        {
            _dynamicColumnId = int.Parse(CommonUtils.GetFieldValue(_viewModel.Fields, _id), CultureInfo.InvariantCulture);

            var maxSize = CommonUtils.GetFieldValue(_viewModel.Fields, _maxSize);
            int dataSize = 0;
            if (!string.IsNullOrEmpty(maxSize) && !int.TryParse(maxSize, out dataSize))
                throw new BusinessException("Max Size must be a valid integer");

            try
            {
                if (_dynamicColumnId == 0)
                {
                    var addRequest = new AddDynamicColumnInstanceRequest();

                    addRequest.EntityId = _moduleUtils.DynamicColumnEntityId.Value;
                    addRequest.Name = CommonUtils.GetFieldValue(_viewModel.Fields, _fieldName);
                    addRequest.FormLabel = CommonUtils.GetFieldValue(_viewModel.Fields, _fieldLabel);
                    addRequest.DataType = CommonUtils.GetFieldValue(_viewModel.Fields, _dataType);
                    addRequest.IsRequired = bool.Parse(CommonUtils.GetFieldValue(_viewModel.Fields, _isRequired));
                    addRequest.IsMultiline = bool.Parse(CommonUtils.GetFieldValue(_viewModel.Fields, _isMultiLine));
                    addRequest.DataSize = dataSize == 0 ? new int?() : dataSize;
                    addRequest.DropDownValues = CommonUtils.GetFieldValue(_viewModel.Fields, _dropdownOptions);
                    addRequest.SelectSqlText = GetSelectSqlText(addRequest.Name, addRequest.DataType, addRequest.DataSize);
                    addRequest.FormOrder = 1;

                    ValidateAddUpdateRequest(addRequest);

                    var response = ProcessRequest<AddDynamicColumnInstanceResponse>(addRequest);
                    if (response.Id == 0 && response.Message == StatusMessage.DuplicateData)
                    {
                        throw new BusinessException("A Dynamic Column already exists with the specified name");
                    }
                    else
                    {
                        _dynamicColumnId = response.Id;
                    }
                }
                else
                {
                    if (_viewModel.Action == RecordActions.Edited)
                    {
                        var updateRequest = new UpdateDynamicColumnInstanceRequest();

                        updateRequest.EntityId = _moduleUtils.DynamicColumnEntityId.Value;
                        updateRequest.Id = _dynamicColumnId;
                        updateRequest.Name = CommonUtils.GetFieldValue(_viewModel.Fields, _fieldName);
                        updateRequest.FormLabel = CommonUtils.GetFieldValue(_viewModel.Fields, _fieldLabel);
                        updateRequest.DataType = CommonUtils.GetFieldValue(_viewModel.Fields, _dataType);
                        updateRequest.IsRequired = bool.Parse(CommonUtils.GetFieldValue(_viewModel.Fields, _isRequired));
                        updateRequest.IsMultiline = bool.Parse(CommonUtils.GetFieldValue(_viewModel.Fields, _isMultiLine));
                        updateRequest.DataSize = dataSize == 0 ? new int?() : dataSize;
                        updateRequest.DropDownValues = CommonUtils.GetFieldValue(_viewModel.Fields, _dropdownOptions);
                        updateRequest.SelectSqlText = GetSelectSqlText(updateRequest.Name, updateRequest.DataType, updateRequest.DataSize);
                        updateRequest.FormOrder = 1;

                        ValidateAddUpdateRequest(updateRequest);

                        ProcessRequest<UpdateDynamicColumnInstanceResponse>(updateRequest);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new BusinessException(ex.Message);
            }
        }