コード例 #1
0
        public static void AuditAutoCrudMetadataFilter(AutoCrudMetadata meta)
        {
            foreach (var applyAttr in meta.AutoApplyAttrs)
            {
                switch (applyAttr.Name)
                {
                case Behavior.AuditQuery:
                    meta.Add(new AutoFilterAttribute(
                                 QueryTerm.Ensure, nameof(AuditBase.DeletedDate), SqlTemplate.IsNull));
                    break;

                case Behavior.AuditCreate:
                case Behavior.AuditModify:
                    if (applyAttr.Name == Behavior.AuditCreate)
                    {
                        meta.Add(new AutoPopulateAttribute(nameof(AuditBase.CreatedDate))
                        {
                            Eval = "utcNow"
                        });
                        meta.Add(new AutoPopulateAttribute(nameof(AuditBase.CreatedBy))
                        {
                            Eval = "userAuthName"
                        });
                    }
                    meta.Add(new AutoPopulateAttribute(nameof(AuditBase.ModifiedDate))
                    {
                        Eval = "utcNow"
                    });
                    meta.Add(new AutoPopulateAttribute(nameof(AuditBase.ModifiedBy))
                    {
                        Eval = "userAuthName"
                    });
                    break;

                case Behavior.AuditDelete:
                case Behavior.AuditSoftDelete:
                    if (applyAttr.Name == Behavior.AuditSoftDelete)
                    {
                        meta.SoftDelete = true;
                    }

                    meta.Add(new AutoPopulateAttribute(nameof(AuditBase.DeletedDate))
                    {
                        Eval = "utcNow"
                    });
                    meta.Add(new AutoPopulateAttribute(nameof(AuditBase.DeletedBy))
                    {
                        Eval = "userAuthName"
                    });
                    break;
                }
            }
        }