public Customer Get(int clientId) { var m_oRetryer = new SqlRetryer(sleepBeforeRetryMilliseconds: 500); // var customer = m_oRetryer.Retry(() => Session.Get<Customer>(clientId)); var customer = m_oRetryer.Retry( () => Session.QueryOver<Customer>().Where(c => c.Id == clientId).SingleOrDefault<Customer>() ); if (customer == null) throw new InvalidCustomerException(clientId); return customer; } // Get
} // GetSessionID public static int GetBrowserVersionID(this Controller oController, string sUserAgent, AConnection oDB, ASafeLog oLog) { int nBrowserVersionID = 0; var oRetryer = new SqlRetryer(log: oLog); oRetryer.Retry(() => { nBrowserVersionID = oDB.ExecuteScalar <int>( "UiEventBrowserVersion", CommandSpecies.StoredProcedure, new QueryParameter("@Version", sUserAgent) ); }, "saving browser version"); return(nBrowserVersionID); } // GetBrowserVersionID
private static void TestRetryerWithArguments(AConnection oDB, ASafeLog log) { var oRetryer = new SqlRetryer(nRetryCount: 8, nSleepBeforeRetryMilliseconds: 1000, oLog: log) { LogVerbosityLevel = oDB.LogVerbosityLevel }; ms_nActionTestCounter = 0; Action oAction = () => ActionTest(28, "some string", oDB, log); oRetryer.Retry(oAction, "just a test action for 8 retries"); var oTwoRetryer = new SqlRetryer(nRetryCount: 2, nSleepBeforeRetryMilliseconds: 1000, oLog: log) { LogVerbosityLevel = oDB.LogVerbosityLevel }; ms_nActionTestCounter = 0; oTwoRetryer.Retry(oAction, "just a test action for 2 retries"); }
public bool Save(AConnection oDB, int nBrowserVersionID, string sRemoteIP, string sSessionCookie) { long nRefNum; if (!long.TryParse(eventID, out nRefNum)) { log.Error("Failed to save UI event: cannot parse eventID as long in {0}.", this); return(false); } // if DateTime oTime; bool validDate = DateTime.TryParseExact( eventTime, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal, out oTime ); if (!validDate) { log.Error("Failed to save UI event: cannot parse event time in {0}.", this); return(false); } // if failed to parse time string sResult = null; var oRetryer = new SqlRetryer(log: log); string evtArgs = string.IsNullOrWhiteSpace(eventArgs) ? null : eventArgs; if ((evtArgs != null) && (evtArgs.Length > MaxAllowedLength)) { string id = Guid.NewGuid().ToString("N").ToLowerInvariant(); evtArgs = string.Format( "Trimmed to {0} chars, trim id is '{1}': {2}", MaxAllowedLength, id, evtArgs.Substring(0, MaxAllowedLength) ); log.Debug( "Event arguments are too long, trimmed to {0} chars, trim id is '{1}', untrimmed value is: {2}", MaxAllowedLength, id, eventArgs ); } // if oRetryer.Retry(() => { sResult = oDB.ExecuteScalar <string>( "UiEventSave", CommandSpecies.StoredProcedure, new QueryParameter("@ActionName", actionName), new QueryParameter("@UserName", userName), new QueryParameter("@ControlName", controlName), new QueryParameter("@EventArgs", evtArgs), new QueryParameter("@BrowserVersionID", nBrowserVersionID), new QueryParameter("@HtmlID", htmlID), new QueryParameter("@RefNum", nRefNum), new QueryParameter("@RemoteIP", sRemoteIP), new QueryParameter("@SessionCookie", sSessionCookie), new QueryParameter("@EventTime", oTime) ); }, "saving UI event"); if (string.IsNullOrWhiteSpace(sResult)) { return(true); } log.Warn("Failed to save UI event: {0}", sResult); return(false); } // Save