public Result Find(int docNum) { Action find = delegate { var sqlBuilder = new StringBuilder(); sqlBuilder.AppendFormat("SELECT * FROM `OR` WHERE DOC_NUM = ?DOC_NUM"); var sqlParam = new SqlParameter("?DOC_NUM", docNum); DataTable result = DatabaseController.ExecuteSelectQuery(sqlBuilder.ToString(), sqlParam); ResetProperties(); VoucherNumber = docNum; string cashOnHandCode = GlobalSettings.CodeOfCashOnHand; string timeDepositCode = GlobalSettings.CodeOfTimeDeposit; int index = 0; foreach (DataRow dataRow in result.Rows) { if (index == 0) { VoucherDate = DataConverter.ToDateTime(dataRow["DOC_DATE"]); MemberCode = DataConverter.ToString(dataRow["MEM_CODE"]); IsCancelled = MemberCode.ToUpper().Contains("CANCEL"); CollectorName = DataConverter.ToString(dataRow["COLLECTOR"]); } index++; string accountCode = DataConverter.ToString(dataRow["ACC_CODE"]); decimal credit = DataConverter.ToDecimal(dataRow["CREDIT"]); if (accountCode != cashOnHandCode) { SetAccountCode(index, accountCode); SetCreditAmount(index, credit); if (accountCode == timeDepositCode) { TimeDepositDetail = TimeDepositDetails.ExtractFromDataRow(dataRow); } } else { CashAndCheckDenomimation = CashAndCheckBreakDown.ExtractFromDataRow(dataRow); } } //UpdateTotalAmount(); }; return(ActionController.InvokeAction(find)); }