public ActionResult CrudeProductCategoryMappingEdit(
            System.Guid productCategoryMappingId
            )
        {
            CrudeProductCategoryMappingContract contract = new CrudeProductCategoryMappingServiceClient().FetchByProductCategoryMappingId(productCategoryMappingId);

            ViewBag.ProductCategoryId =
                new SelectList(new CrudeProductCategoryServiceClient().FetchAll(),
                               "ProductCategoryId",
                               "ProductCategoryName",
                               contract.ProductCategoryId
                               );

            ViewBag.ProductId =
                new SelectList(new CrudeProductServiceClient().FetchAll(),
                               "ProductId",
                               "ProductName",
                               contract.ProductId
                               );

            ViewBag.DefaultUserName =
                new CrudeDefaultUserServiceClient().FetchByDefaultUserId(contract.UserId).DefaultUserName;


            return(View(
                       "~/Views/Crude/Product/CrudeProductCategoryMapping/CrudeProductCategoryMappingEdit.cshtml",
                       contract
                       ));
        }
        // 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 CrudeProductCategoryMappingServiceClient();

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

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

            try {
                var bindingSource = new BindingSource();
                bindingSource.DataSource = productCategoryMapping.FetchWithFilter(
                    Guid.Empty
                    , Guid.Empty
                    , Guid.Empty
                    , Guid.Empty
                    , DateTime.MinValue
                    );
                dataGridViewCrudeProductCategoryMapping.AutoGenerateColumns = false;
                dataGridViewCrudeProductCategoryMapping.DataSource          = bindingSource;
                dataGridViewCrudeProductCategoryMapping.AutoResizeColumns();
                dataGridViewCrudeProductCategoryMapping.Refresh();
            } catch (Exception ex) {
                if (ex == null)
                {
                }
                else
                {
                    System.Diagnostics.Debugger.Break();
                }
            } finally {
                productCategoryMapping.Close();
            }
        }
        // shows the form in edit modus
        // links:
        //  docLink: http://sql2x.org/documentationLink/49afd26c-4f21-4992-967b-be190eacef77
        public void ShowAsEdit(System.Guid productCategoryMappingId)
        {
            var service = new CrudeProductCategoryMappingServiceClient();

            _isNew = false;
            try {
                _contract                   = service.FetchByProductCategoryMappingId(productCategoryMappingId);
                _contract.DateTime          = DateTime.UtcNow;
                dateTimePickerDateTime.Text = _contract.DateTime.ToString();

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