protected async Task <IList <IEnumerable <object> > > ExecuteStoredProcedureAsync(string spName, IList <SqlParameter> parameters, IList <Func <SqlDataReader, Task <object> > > setters, int timeout = -1) { try { timeout = timeout < -1 ? Session.SqlCommandTimeout : timeout; var result = new List <IEnumerable <object> >(); if (setters == null) { await ExecuteStoredProcedureAsync(spName, parameters); return(null); } var enumerable = setters as Func <SqlDataReader, Task <object> >[]; if (!enumerable.Any()) { await ExecuteStoredProcedureAsync(spName, parameters); return(null); } var conn = Session.GetConnection(); return(await AdoHelper.ExecuteStoredProcedureAsync(conn, spName, parameters, setters, timeout)); } catch (Exception ex) { var error = GenerateErrorMessage(spName, parameters, ex, 0); throw new InvalidOperationException(error, ex); } }
protected override async Task LogAuditEventAsync(string eventName, string detail, Dictionary <string, string> props) { try { var user = Thread.CurrentPrincipal.Identity.Name; var eventDetail = detail; if (props != null && props.Count > 0) { var propStr = JsonConvert.SerializeObject(props); eventDetail += $"\n{propStr}"; } var parms = new List <SqlParameter> { AdoHelper.CreateSqlParameter <string>("@EventName", eventName), AdoHelper.CreateSqlParameter <string>("@EventDetail", eventDetail), AdoHelper.CreateSqlParameter <string>("@ActionUser", user) }; using (var conn = GetLoggingConnection()) { await AdoHelper.ExecuteStoredProcedureAsync(conn, "dbo.uspWriteAuditLog", parms); } } catch { } }
public async Task <IList <AuditLogEntry> > GetAuditLogs(int skip = 0, int take = 100) { try { var user = Thread.CurrentPrincipal.Identity.Name; var parms = new List <SqlParameter> { AdoHelper.CreateSqlParameter("@Skip", skip), AdoHelper.CreateSqlParameter("@Take", take), }; var converters = new List <Func <SqlDataReader, Task <object> > > { ConvertToAuditLogEntry }; using (var conn = GetLoggingConnection()) { var data = await AdoHelper.ExecuteStoredProcedureAsync(conn, "dbo.uspGetAuditLog", parms, converters); var entries = data[0].Cast <AuditLogEntry>().ToList(); return(entries); } } catch { } return(null); }
protected async Task ExecuteStoredProcedureAsync(string spName, IList <SqlParameter> parameters, int timeout = -1) { try { var conn = Session.GetConnection(); await AdoHelper.ExecuteStoredProcedureAsync(conn, spName, parameters, GetCommandTimeout(timeout)); } catch (Exception ex) { var error = GenerateErrorMessage(spName, parameters, ex, 0); throw new InvalidOperationException(error, ex); } }
protected override async Task LogSystemEventAsync(SkLogLevel logLevel, string message, string detail) { try { var user = Thread.CurrentPrincipal.Identity.Name; var parms = new List <SqlParameter> { AdoHelper.CreateSqlParameter <string>("@LogLevel", logLevel.ToString()), AdoHelper.CreateSqlParameter <string>("@LogMessage", message), AdoHelper.CreateSqlParameter <string>("@LogDetail", detail), AdoHelper.CreateSqlParameter <string>("@ActionUser", user) }; using (var conn = GetLoggingConnection()) { await AdoHelper.ExecuteStoredProcedureAsync(conn, "dbo.uspWriteSystemLog", parms); } } catch { } }