XAF 14.1 DC 實現自定審計日誌信息

因爲一個系統的須要,須要在日誌中加入自定義的信息,而且須要根據須要過濾顯示其中的部分操做記錄入修改,刪除等,其餘的不顯示,具體的實現方法以下:session

1、須要繼承 AuditDataItemPersistent,具體代碼以下:日誌

        public MyAuditDataItemPersistent(DevExpress.Xpo.Session session)
            : base(session)
        {

        }
        [XafDisplayName("修改標題")]
        public string PropertyCaption
        {
            get
            {
                if (AuditedObject != null)
                {
                    try
                    {
                        var caption = CaptionHelper.GetMemberCaption(AuditedObject.Target.GetType(), PropertyName);
                        return caption;
                    }
                    catch { }
                }

                return string.Empty;
            }


        }
    }

 2、在WinApplication.cs中設置Audit的存儲對象爲MyAuditDataItemPersistent對象

3、blog

    [XafDisplayName("修改日誌")]
    IList<MyAuditDataItemPersistent>Xt_Order_Review_Detail_Audit { get; }

    [DomainLogic(typeof(Xt_Order_Review_Detail_Dc))]
    public class ContactLogic
    {
        private static XPCollection<MyAuditDataItemPersistent> _changeHistory;
        public static IList<MyAuditDataItemPersistent> Get_Xt_Order_Review_Detail_Audit(Xt_Order_Review_Detail_Dc obj, IObjectSpace os)
        {
            
            var source = AuditedObjectWeakReference.GetAuditTrail(((XPObjectSpace)os).Session, obj);
            if (source != null)
            {
                try
                {
                    _changeHistory = new XPCollection<MyAuditDataItemPersistent>(((XPObjectSpace)os).Session, source);
                    _changeHistory.Filter = CriteriaOperator.Parse("OperationType='ObjectChanged'");
                }
                catch { }

            }
            return _changeHistory;
             //return (MyAuditDataItemPersistent)DevExpress.Persistent.BaseImpl.AuditedObjectWeakReference.GetAuditTrail(((XPObjectSpace)os).Session, obj);
        }
相關文章
相關標籤/搜索