public void SaveFormControl(FormControl formControl)
        {
            FormControl existingData = GetFormControlByID(formControl.FormID);

            if (existingData == null)
                _context.FormControls.AddObject(formControl);
            else
            {
                existingData.Name = formControl.Name;
                existingData.DisplayName = formControl.DisplayName;

                if (!_context.IsAttached(existingData))
                    _context.FormControls.Attach(existingData);
            }

            _context.SaveChanges();
        }
        private void FixupnpFormControl(FormControl previousValue, bool skipKeys = false)
        {
            if (IsDeserializing)
            {
                return;
            }

            if (previousValue != null && previousValue.npButtonControls.Contains(this))
            {
                previousValue.npButtonControls.Remove(this);
            }

            if (npFormControl != null)
            {
                if (!npFormControl.npButtonControls.Contains(this))
                {
                    npFormControl.npButtonControls.Add(this);
                }

                FormID = npFormControl.FormID;
            }
            else if (!skipKeys)
            {
                FormID = null;
            }

            if (ChangeTracker.ChangeTrackingEnabled)
            {
                if (ChangeTracker.OriginalValues.ContainsKey("npFormControl")
                    && (ChangeTracker.OriginalValues["npFormControl"] == npFormControl))
                {
                    ChangeTracker.OriginalValues.Remove("npFormControl");
                }
                else
                {
                    ChangeTracker.RecordOriginalValue("npFormControl", previousValue);
                }
                if (npFormControl != null && !npFormControl.ChangeTracker.ChangeTrackingEnabled)
                {
                    npFormControl.StartTracking();
                }
            }
        }