Beispiel #1
0
 public AuditEventKind(Guid id, string name, Security.SecurityTargetKind appliesTo, IEnumerable <IAuditProperty> properties)
 {
     //Contract.Requires( properties != null );
     //Contract.Requires( !String.IsNullOrEmpty( name ) );
     //Contract.Requires( appliesTo != null );
     AppliesTo  = appliesTo;
     ID         = id;
     Name       = name;
     Properties = properties;
 }
Beispiel #2
0
        public static AuditEventKind CreateKind <T>(Security.SecurityTargetKind appliesTo)
        {
            //Contract.Ensures( //Contract.Result<AuditEventKind>() != null );

            return(_kinds.GetOrAdd(typeof(T), _ =>
            {
                var name = typeof(T).GetCustomAttributes(typeof(DisplayNameAttribute), true)
                           .Cast <DisplayNameAttribute>().Select(a => a.DisplayName)
                           .Catch(Enumerable.Empty <string>())
                           .Concat(EnumerableEx.Return(typeof(T).Name))
                           .FirstOrDefault();
                return new AuditEventKind(
                    GuidAttr(typeof(T), "No [Guid] attribute on type " + typeof(T).Name),
                    NameAttr(typeof(T), typeof(T).Name),
                    appliesTo,
                    typeof(T).GetProperties().Cast <PropertyInfo>().Select(Property <T>)
                    );
            }));
        }
Beispiel #3
0
 public static AuditEventKind Event(string id, string name, Security.SecurityTargetKind appliesTo, params IAuditProperty[] props)
 {
     return(new AuditEventKind(new Guid(id), name, appliesTo, props));
 }
Beispiel #4
0
 public static AuditEventKind DeclareEvent <T>(Security.SecurityTargetKind appliesTo)
 {
     return(CodeFirst.CreateKind <T>(appliesTo));
 }
Beispiel #5
0
 public static AuditEventKind Event(Guid id, string name, Security.SecurityTargetKind appliesTo, IEnumerable <IAuditProperty> props)
 {
     return(new AuditEventKind(id, name, appliesTo, props));
 }