示例#1
0
        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);
            }
        }
示例#2
0
        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
            {
            }
        }
示例#3
0
        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);
        }
示例#4
0
        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);
            }
        }
示例#5
0
        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
            {
            }
        }