private void ClickBtnCriar()
        {
            var formHandleDeposito = new FormHandleDeposito();

            formHandleDeposito.SetCreateTitle();

            PersistDepositoChanges(formHandleDeposito, false);
        }
        private void ClickBtnEditar()
        {
            var formHandleDeposito = new FormHandleDeposito();

            formHandleDeposito.SetEditTitle();
            formHandleDeposito.Designacao = CurrentContext.Deposito.Designacao;
            formHandleDeposito.Metragem   = CurrentContext.Deposito.MetrosLineares.ToString();

            PersistDepositoChanges(formHandleDeposito, true);
        }
        private void PersistDepositoChanges(FormHandleDeposito formHandleDeposito, bool editMode)
        {
            switch (formHandleDeposito.ShowDialog())
            {
            case DialogResult.OK:
                ((frmMain)TopLevelControl).EnterWaitMode();
                var depRow = default(GISADataset.DepositoRow);
                if (!editMode)
                {
                    depRow                = GisaDataSetHelper.GetInstance().Deposito.NewDepositoRow();
                    depRow.Designacao     = formHandleDeposito.Designacao;
                    depRow.MetrosLineares = System.Convert.ToDecimal(formHandleDeposito.Metragem);
                    depRow.Versao         = new byte[] { };
                    depRow.isDeleted      = 0;
                    GisaDataSetHelper.GetInstance().Deposito.AddDepositoRow(depRow);

                    Trace.WriteLine("A criar depósito...");
                }
                else
                {
                    depRow                = CurrentContext.Deposito;
                    depRow.Designacao     = formHandleDeposito.Designacao;
                    depRow.MetrosLineares = System.Convert.ToDecimal(formHandleDeposito.Metragem);

                    Trace.WriteLine("A editar depósito...");
                }

                var saveResult = PersistencyHelper.save();
                PersistencyHelper.cleanDeletedData();

                if (saveResult == PersistencyHelper.SaveResult.successful)
                {
                    depList.AddItem(depRow);
                }
                else
                {
                    // ToDo: já existe um depósito com essa designação
                }

                ((frmMain)TopLevelControl).LeaveWaitMode();
                break;

            case DialogResult.Cancel:
                break;
            }
        }