private void SaveTransaction() { if (ValidateEntry()) { Model.Transaction transaction = new Model.Transaction(); transaction.Date = dtpDate.Value; transaction.Type = transactionType.ToString(); transaction.CategoryId = new Guid(lblCategoryId.Text); transaction.AccountId = new Guid(lblAccountId.Text); transaction.Amount = decimal.Parse(txtAmount.Text.Replace(".", string.Empty)); transaction.Notes = txtNotes.Text; string errMsg = string.Empty; try { if (formMode == FormMode.AddNew) { errMsg = "Gagal menyimpan transaksi!"; if (transactionType == TransactionType.Income.ToString()) { transaction.Description = "Pendapatan dari " + cboCategory.Text + " disimpan di " + cboAccount.Text; } else if (transactionType == TransactionType.Expense.ToString()) { transaction.Description = "Pengeluaran untuk " + cboCategory.Text + " dibayar dengan " + cboAccount.Text; } if (transactionRepository.IsTransactionExist(dtpDate.Value, this.transactionType, new Guid(lblCategoryId.Text), new Guid(lblAccountId.Text))) { MessageBox.Show("Transaksi sudah ada", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { transactionRepository.Save(transaction); if (this.isSaveAndNew) { ClearForm(); } else { this.Close(); } } } else if (formMode == FormMode.Edit) { errMsg = "Gagal mengubah transaksi!"; transaction.ID = new Guid(lblID.Text); transactionRepository.Update(transaction); this.Close(); } frmMain.LoadTransactionByType(frmMain.CboFilterText); frmMain.DisableEditDelete(); frmMain.DrawChart(frmMain.CboChart); } catch (Exception ex) { MessageBox.Show(errMsg, "Info", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }