public Result InvokeGetBalance(string operatorName) { client = clientFactory.GetClient(); SendOperatorTopUpPhoneAccountRequestStatus responseStatus = new SendOperatorTopUpPhoneAccountRequestStatus(); Result balance = new Result() { OperatorName = operatorName }; #region Create Request Items Operator o = new Operator() { OperatorName = operatorName }; OperatorDistributorTimeout op = new OperatorDistributorTimeout(o) { DistributorTimeout = 120 }; OperatorTopUpPhoneAccountRequest request = new OperatorTopUpPhoneAccountRequest() { TransactionID2 = GetNewTransationId() }; #endregion try { responseStatus = client.GetBalance(op, request); balance.ErrorCode = responseStatus.StatusID; balance.ErrorCodeDescription = Enum.GetName(responseCodes.GetType(), responseStatus.StatusID); if (balance.ErrorCode == (int)SendOperatorTopUpPhoneAccountRequestStatusType.Success) { balance.Balance = responseStatus.ReceiptNumber; } CLogger.WriteLog(ELogLevel.INFO, "Balance Request Succeed for - " + operatorName + " Balance: " + responseStatus.ReceiptNumber); } catch (Exception e) { CLogger.WriteLog(ELogLevel.ERROR, e.Message); if (e.GetType() == typeof(NotImplementedException)) { balance.ErrorCode = Settings.NOT_IMPLEMENTED_ERROR_CODE; balance.ErrorCodeDescription = Settings.NOT_IMPLEMENTED_ERROR_CODE_DESCRIPTION; } else if (e.InnerException != null) { if (e.InnerException.Message == Settings.TIMEOUT) { balance.ErrorCode = (int)SendOperatorTopUpPhoneAccountRequestStatusType.OperatorTimedOut; balance.ErrorCodeDescription = Enum.GetName(responseCodes.GetType(), responseStatus.StatusID); } } else { balance.ErrorCode = Settings.EXCEPTION_ERROR_CODE; balance.ErrorCodeDescription = Settings.EXCEPTION_ERROR_CODE_DESCRIPTION; } } return balance; }