Beispiel #1
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
            {
            }
        }
Beispiel #2
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);
        }
Beispiel #3
0
        public async Task <DataAccessResult <bool> > CheckUserForAction(string username, string controllerName, string actionName)
        {
            return(await ExecuteAdataAccessAsync <bool>(async response =>
            {
                var hasPermission = AdoHelper.CreateSqlParameter("@HasPermission", false, ParameterDirection.Output);
                var parameters = new List <SqlParameter>
                {
                    AdoHelper.CreateSqlParameter("@Username", username),
                    AdoHelper.CreateSqlParameter("@Controller", controllerName),
                    AdoHelper.CreateSqlParameter("@Action", actionName),
                    hasPermission
                };
                await ExecuteStoredProcedureAsync("dbo.uspCheckUserForAction", parameters);

                var result = Convert.ToBoolean(hasPermission.Value);
                response.TotalResultCount = 1;
                return result;
            }));
        }
Beispiel #4
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
            {
            }
        }