文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Server-Side Timestamping in the Audit Trail System (XAF时间戳在审核中的应用代码)

Server-Side Timestamping in the Audit Trail System (XAF时间戳在审核中的应用代码)

时间:2010-10-08  来源:EricLi

代码:BusinessObjects.cs using System;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Xpo;
using DevExpress.Persistent.AuditTrail;

namespace AuditDemo.Module {
    [DefaultClassOptions]
    public class Album : BaseObject {
        public Album(Session session) : base(session) { }
        private string name;
        public string Name {
            get {
                return name;
            }
            set {
                SetPropertyValue("Name", ref name, value);
            }
        }
        private int year;
        public int Year {
            get {
                return year;
            }
            set {
                SetPropertyValue("Year", ref year, value);
            }
        }
        private Artist artist;
        [Association("Artist-Albums")]
        public Artist Artist {
            get {
                return artist;
            }
            set {
                SetPropertyValue("Artist", ref artist, value);
            }
        }
        private XPCollection<AuditDataItemPersistent> auditTrail;
        public XPCollection<AuditDataItemPersistent> AuditTrail {
            get {
                if(auditTrail == null) {
                    auditTrail = AuditedObjectWeakReference.GetAuditTrail(Session, this);
                }
                return auditTrail;
            }
        }
    }
    [DefaultClassOptions]
    public class Artist : BaseObject {
        public Artist(Session session) : base(session) { }
        private string name;
        public string Name {
            get {
                return name;
            }
            set {
                SetPropertyValue("Name", ref name, value);
            }
        }
        [Association("Artist-Albums")]
        public XPCollection<Album> Albums {
            get {
                return GetCollection<Album>("Albums");
            }
        }
        private XPCollection<AuditDataItemPersistent> auditTrail;
        public XPCollection<AuditDataItemPersistent> AuditTrail {
            get {
                if(auditTrail == null) {
                    auditTrail = AuditedObjectWeakReference.GetAuditTrail(Session, this);
                }
                return auditTrail;
            }
        }
    }
}

 

代码:MSSqlServerTimestampStrategy.cs using System;
using System.Data.SqlClient;
using DevExpress.Xpo;
using DevExpress.Persistent.AuditTrail;

namespace AuditDemo.Module {
    public class MSSqlServerTimestampStrategy : IAuditTimestampStrategy{
        DateTime cachedTimeStamp;
        #region IAuditTimeStampStrategy Members
        public DateTime GetTimestamp(AuditDataItem auditDataItem) {
            return cachedTimeStamp;
        }
        public void OnBeginSaveTransaction(Session session) {
            SqlCommand command = new SqlCommand("select getdate()", (SqlConnection)session.Connection);
            cachedTimeStamp = (DateTime)command.ExecuteScalar();
        }
        #endregion
    }
}

 

代码:TimestampService.asmx.cs using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;

namespace TimestampWebService {
    [WebService(Namespace = "http://localhost/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    public class TimestampService : System.Web.Services.WebService {
        [WebMethod]
        public DateTime GetTime() {
            return DateTime.Now;
        }
    }

 
   
 

 

 

代码:WebServiceTimestampStrategy.cs using System;
using DevExpress.Persistent.AuditTrail;
using DevExpress.Xpo;
using AuditDemo.Module.TimestampWebService;

namespace AuditDemo.Module {
    public class WebServiceTimestampStrategy : IAuditTimestampStrategy {
        DateTime cachedTimeStamp;
        #region IAuditTimeStampStrategy Members
        public DateTime GetTimestamp(AuditDataItem auditDataItem) {
            return cachedTimeStamp;
        }
        public void OnBeginSaveTransaction(Session session) {
            try {
                TimestampService service = new TimestampService();
                cachedTimeStamp = service.GetTime();
            }
            catch {
                throw new Exception("Cannot access the TimeStampWebService. Make sure it's running.");
            }
        }
        #endregion
    }

 
   
 


 
 
  
  

 

 

 

相关阅读 更多 +
排行榜 更多 +
特殊变种人学院

特殊变种人学院

体育竞技 下载
狂野破坏王

狂野破坏王

体育竞技 下载
迷宫拳击手

迷宫拳击手

体育竞技 下载