文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
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
    }

 
   
 


 
 
  
  

 

 

 

相关阅读 更多 +
排行榜 更多 +
三角符文第一章下载

三角符文第一章下载

角色扮演 下载
嘀嘀动画官方正版下载

嘀嘀动画官方正版下载

趣味娱乐 下载
像素世界僵尸危机安卓版

像素世界僵尸危机安卓版

飞行射击 下载