// saves the form
        // links:
        //  docLink: http://sql2x.org/documentationLink/c9522930-91f8-4468-a936-8030bb2a6482
        private void buttonSave_Click(object sender, EventArgs e)
        {
            var service = new CrudeProductAttributeServiceClient();

            try {
                _contract.ProductAttributeRcd     = productAttributeRefCombo.Text;
                _contract.ProductAttributeUnitRcd = productAttributeUnitRefCombo.Text;
                _contract.Value = textBoxValue.Text;

                if (_isNew)
                {
                    service.Insert(_contract);
                }
                else
                {
                    service.Update(_contract);
                }
            } catch (Exception ex) {
                if (ex == null)
                {
                }
                else
                {
                    System.Diagnostics.Debugger.Break();
                }
            } finally {
                service.Close();
            }

            Close();
        }
        // shows the form in edit modus
        // links:
        //  docLink: http://sql2x.org/documentationLink/49afd26c-4f21-4992-967b-be190eacef77
        public void ShowAsEdit(System.Guid productAttributeId)
        {
            var service = new CrudeProductAttributeServiceClient();

            _isNew = false;
            try {
                _contract = service.FetchByProductAttributeId(productAttributeId);
                productAttributeRefCombo.Text     = _contract.ProductAttributeRcd != null ? _contract.ProductAttributeRcd : String.Empty;
                productAttributeUnitRefCombo.Text = _contract.ProductAttributeUnitRcd != null ? _contract.ProductAttributeUnitRcd : String.Empty;
                textBoxValue.Text           = _contract.Value;
                _contract.DateTime          = DateTime.UtcNow;
                dateTimePickerDateTime.Text = _contract.DateTime.ToString();

                Show();
            } catch (Exception ex) {
                if (ex == null)
                {
                }
                else
                {
                    System.Diagnostics.Debugger.Break();
                }
            } finally {
                service.Close();
            }
        }
        // save and close ProductAttribute
        // links:
        //  docLink: http://sql2x.org/documentationLink/d71519ff-fa27-4f64-9194-56886e4070ba
        private void buttonSave_Click(object sender, EventArgs e)
        {
            var service = new CrudeProductAttributeServiceClient();

            try {
                _contract.ProductAttributeRcd     = productAttributeRefCombo.Text;
                _contract.ProductAttributeUnitRcd = productAttributeUnitRefCombo.Text;
                _contract.Value = textBoxValue.Text;

                if (_isNew)
                {
                    service.Insert(_contract);
                }
                else
                {
                    service.Update(_contract);
                }
            } catch (Exception ex) {
                MessageBox.Show(ex.Message);
            } finally {
                service.Close();
            }

            Close();
        }
        // refresh the grid
        // links:
        //  docLink: http://sql2x.org/documentationLink/a90065e7-8ace-4de7-9367-d4653a7c637f
        public void RefreshCrudeProductAttribute()
        {
            var productAttribute = new CrudeProductAttributeServiceClient();

            try {
                var bindingSource = new BindingSource();
                bindingSource.DataSource = productAttribute.FetchWithFilter(
                    Guid.Empty
                    , Guid.Empty
                    , productAttributeRefCombo.Text
                    , productAttributeUnitRefCombo.Text
                    , textBoxValue.Text
                    , Guid.Empty
                    , DateTime.MinValue
                    );
                dataGridViewCrudeProductAttribute.AutoGenerateColumns = false;
                dataGridViewCrudeProductAttribute.DataSource          = bindingSource;
                dataGridViewCrudeProductAttribute.AutoResizeColumns();
                dataGridViewCrudeProductAttribute.Refresh();
            } catch (Exception ex) {
                if (ex == null)
                {
                }
                else
                {
                    System.Diagnostics.Debugger.Break();
                }
            } finally {
                productAttribute.Close();
            }
        }
        // bring up edit form for ProductAttribute
        // links:
        //  docLink: http://sql2x.org/documentationLink/d7ff032d-3bcf-438f-9850-900ca0ebca98
        public void ShowAsEdit(System.Guid productAttributeId)
        {
            var service = new CrudeProductAttributeServiceClient();

            _isNew = false;
            try {
                _contract = service.FetchByProductAttributeId(productAttributeId);
                productAttributeRefCombo.Text     = _contract.ProductAttributeRcd != null ? _contract.ProductAttributeRcd : String.Empty;
                productAttributeUnitRefCombo.Text = _contract.ProductAttributeUnitRcd != null ? _contract.ProductAttributeUnitRcd : String.Empty;
                textBoxValue.Text           = _contract.Value;
                _contract.DateTime          = DateTime.UtcNow;
                dateTimePickerDateTime.Text = _contract.DateTime.ToString();

                RefreshProductAttribute();
                Show();
            } catch (Exception ex) {
                MessageBox.Show(ex.Message);
            } finally {
                service.Close();
            }
        }